:root{
  --bg:#F7F2EA;
  --bg-alt:#EFE3D3;
  --ink:#1C1A17;
  --ink-soft:#5C5650;
  --green:#1C1A17;      /* repurposed: near-black, used for deep UI elements */
  --green-deep:#0F0E0C;
  --clay:#A63D25;       /* primary accent: warm terracotta/brick */
  --clay-deep:#7C2C1A;
  --gold:#C79A4B;
  --line: rgba(28,26,23,0.15);
  --serif: "Fraunces", "Iowan Old Style", serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}

/* Header */
header.site{
  position:sticky; top:0; z-index:50;
  background:rgba(250,247,240,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 28px; max-width:1120px; margin:0 auto;
}
.brand{
  font-family:var(--serif); font-size:22px; font-weight:600;
  letter-spacing:0.01em; text-decoration:none; color:var(--ink);
}
.nav-links{display:flex; gap:30px; list-style:none; margin:0; padding:0;}
.nav-links a{text-decoration:none; font-size:15px; color:var(--ink-soft); transition:color .2s;}
.nav-links a:hover, .nav-links a.active{color:var(--green-deep);}
.nav-cta{
  background:var(--green); color:#fff; padding:9px 18px; border-radius:3px;
  text-decoration:none; font-size:14.5px; transition:background .2s;
}
.nav-cta:hover{background:var(--green-deep);}
.nav-toggle{display:none; background:none; border:none; font-size:26px; color:var(--ink); cursor:pointer;}

@media (max-width:760px){
  .nav-links{
    position:absolute; top:100%; left:0; right:0; background:var(--bg);
    flex-direction:column; padding:14px 28px; gap:16px;
    border-bottom:1px solid var(--line);
    display:none;
  }
  .nav-links.open{display:flex;}
  .nav-toggle{display:block;}
}

/* Hero */
.hero{
  display:grid; grid-template-columns:1.1fr 0.9fr; align-items:center; gap:48px;
  padding:70px 28px 90px; max-width:1120px; margin:0 auto;
}
.hero h1{
  font-family:var(--serif); font-weight:600; font-size:clamp(38px,5.4vw,64px);
  line-height:1.06; margin:0 0 22px; color:var(--green-deep);
}
.hero p.lede{font-size:19px; color:var(--ink-soft); max-width:46ch; margin:0 0 30px;}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
.btn{
  display:inline-block; padding:13px 26px; border-radius:3px; text-decoration:none;
  font-size:15.5px; font-weight:500; transition:all .2s; border:1px solid transparent;
}
.btn-primary{background:var(--clay); color:#fff;}
.btn-primary:hover{background:#8a4319;}
.btn-ghost{border-color:var(--ink); color:var(--ink);}
.btn-ghost:hover{background:var(--ink); color:var(--bg);}
.hero-media{
  position:relative; border-radius:4px; overflow:hidden; aspect-ratio:4/5;
  background:linear-gradient(160deg, #3A342C, #17140F);
}
.media-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.hero-media .tag{
  position:absolute; bottom:18px; left:18px; background:rgba(250,247,240,0.92);
  color:var(--green-deep); padding:9px 14px; font-size:13.5px; border-radius:3px;
  font-family:var(--serif);
}

/* Sections */
section{padding:70px 0;}
.section-alt{background:var(--bg-alt);}
h2.section-title{
  font-family:var(--serif); font-weight:600; font-size:clamp(28px,3.6vw,40px);
  color:var(--green-deep); margin:0 0 14px; max-width:20ch;
}
p.section-lede{color:var(--ink-soft); max-width:58ch; font-size:17px; margin:0 0 44px;}
hr.rule{border:none; border-top:1px solid var(--line); margin:0;}

/* Grid of offers */
.offers{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); align-items:stretch;}
.offer{padding:34px 30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column;}
.offer .btn{margin-top:auto; align-self:flex-start;}
.offer:nth-child(3n){border-right:none;}
.offer h3{font-family:var(--serif); font-size:22px; margin:0 0 10px; color:var(--green-deep);}
.offer p{color:var(--ink-soft); font-size:15.5px; margin:0 0 16px;}
.offer .price{font-family:var(--serif); font-size:19px; color:var(--clay); margin-bottom:14px;}
.offer .btn{width:100%; text-align:center; padding:11px 20px; font-size:14.5px;}
@media (max-width:760px){
  .offers{grid-template-columns:1fr;}
  .offer{border-right:none;}
  .hero{grid-template-columns:1fr;}
}

/* Steps (legitimate sequence) */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:36px; margin-top:10px;}
.step{border-left:2px solid var(--green); padding-left:20px;}
.step .num{font-family:var(--serif); font-size:15px; color:var(--clay);}
.step h4{font-family:var(--serif); font-size:20px; margin:10px 0 8px; color:var(--green-deep);}
.step p{color:var(--ink-soft); font-size:15px; margin:0;}
@media (max-width:760px){.steps{grid-template-columns:1fr;}}

/* Quote */
.quote{
  font-family:var(--serif); font-size:clamp(22px,2.6vw,30px);
  line-height:1.5; max-width:760px; color:var(--green-deep); margin:0 auto; text-align:center;
}
.quote-by{text-align:center; margin-top:18px; color:var(--ink-soft); font-size:14.5px;}

/* Forms */
.form-card{
  background:#fff; border:1px solid var(--line); border-radius:4px; padding:36px;
  max-width:520px;
}
.field{margin-bottom:18px;}
.field label{display:block; font-size:14px; color:var(--ink-soft); margin-bottom:6px;}
.field input, .field textarea{
  width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:3px;
  font-family:var(--sans); font-size:15px; background:var(--bg); color:var(--ink);
}
.field textarea{min-height:110px; resize:vertical;}
.field input:focus, .field textarea:focus{outline:2px solid var(--green); outline-offset:1px;}
.hp{position:absolute; left:-9999px;}
.form-msg{margin-top:14px; font-size:14.5px;}
.form-msg.ok{color:var(--green-deep);}
.form-msg.err{color:var(--clay);}

footer.site{
  border-top:1px solid var(--line); padding:44px 28px; margin-top:40px;
}
.footer-inner{
  max-width:1120px; margin:0 auto; display:flex; justify-content:space-between;
  flex-wrap:wrap; gap:20px; color:var(--ink-soft); font-size:14.5px;
}
.footer-inner a{text-decoration:none; color:var(--ink-soft);}
.footer-inner nav{display:flex; gap:20px;}

.page-hero{padding:60px 28px 20px; max-width:900px; margin:0 auto;}
.page-hero h1{font-family:var(--serif); font-size:clamp(32px,4.8vw,50px); color:var(--green-deep); margin:0 0 16px;}
.page-hero p{color:var(--ink-soft); font-size:18px; max-width:60ch;}

.retreat-block{display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; padding:60px 0;}
.retreat-media{aspect-ratio:1/1; border-radius:4px; overflow:hidden; position:relative; background:linear-gradient(150deg,#3A342C,#17140F);}
@media (max-width:760px){.retreat-block{grid-template-columns:1fr;}}

/* Ornament / moon motif */
.ornament{font-size:20px; color:var(--clay); display:block; margin-bottom:18px;}

/* Opening quote block (esprit Chandra Yoga) */
.opening-quote{padding:80px 28px 40px; text-align:center; max-width:720px; margin:0 auto;}
.opening-quote p{
  font-family:var(--serif); font-size:clamp(21px,2.4vw,27px);
  line-height:1.55; color:var(--green-deep); margin:0 0 16px;
}
.opening-quote span{font-size:14px; color:var(--ink-soft); letter-spacing:0.02em;}

/* Trust line */
.trust-line{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:22px 0; text-align:center; color:var(--ink-soft); font-size:15px;
}
.trust-line strong{color:var(--green-deep); font-weight:600;}

/* Testimonials (esprit Clarisse Ernoux) */
.testimonials{display:grid; grid-template-columns:repeat(3,1fr); gap:30px;}
.testimonial{background:#fff; border:1px solid var(--line); border-radius:4px; padding:28px;}
.testimonial p{font-size:15.5px; color:var(--ink); margin:0 0 16px; line-height:1.6;}
.testimonial .by{font-family:var(--serif); color:var(--green-deep); font-size:15px;}
@media (max-width:760px){.testimonials{grid-template-columns:1fr;}}

/* Lead magnet band */
.lead-magnet{
  background:var(--green-deep); color:#FAF7F0; border-radius:6px;
  padding:46px 40px; display:grid; grid-template-columns:1.3fr 1fr; gap:30px; align-items:center;
}
.lead-magnet h2{font-family:var(--serif); font-size:clamp(24px,3vw,32px); margin:0 0 10px; color:#fff;}
.lead-magnet p{color:#D8DED9; margin:0; font-size:15.5px;}
.lead-magnet .field label{color:#D8DED9;}
.lead-magnet .field input{background:#fff;}
@media (max-width:760px){.lead-magnet{grid-template-columns:1fr;}}

/* ---------- RESET 21 jours : composants vente ---------- */

.badge{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--bg-alt); border:1px solid var(--line); border-radius:100px;
  padding:8px 16px; font-size:13.5px; color:var(--ink-soft); letter-spacing:0.02em;
  margin-bottom:20px;
}
.badge .dot{width:7px; height:7px; border-radius:50%; background:var(--clay); display:inline-block;}

.hero-reset{
  display:grid; grid-template-columns:1.05fr 0.95fr; gap:50px; align-items:center;
  max-width:1160px; margin:0 auto; padding:56px 28px 60px;
}
.hero-reset h1{
  font-family:var(--serif); font-weight:700; font-size:clamp(36px,5vw,58px);
  line-height:1.05; margin:0 0 20px; color:var(--ink);
}
.hero-reset .lede{font-size:18.5px; color:var(--ink-soft); max-width:48ch; margin:0 0 28px;}
.hero-reset .media{
  position:relative; border-radius:6px; overflow:hidden; aspect-ratio:4/5;
  background:var(--ink);
}
@media (max-width:820px){ .hero-reset{grid-template-columns:1fr;} }

.price-line{display:flex; align-items:baseline; gap:12px; margin:0 0 24px;}
.price-line .amount{font-family:var(--serif); font-size:34px; font-weight:700; color:var(--clay-deep);}
.price-line .old{font-size:16px; color:var(--ink-soft); text-decoration:line-through;}
.price-line .unit{font-size:14.5px; color:var(--ink-soft);}

.btn-lg{padding:16px 32px; font-size:16.5px; border-radius:4px;}

/* Inclus / ce que vous obtenez */
.includes{display:grid; grid-template-columns:1fr 1fr; gap:14px 28px; margin:24px 0;}
.includes li{list-style:none; display:flex; gap:10px; align-items:flex-start; font-size:15.5px; color:var(--ink);}
.includes li::before{content:"✓"; color:var(--clay); font-weight:700; flex-shrink:0;}
@media (max-width:600px){ .includes{grid-template-columns:1fr;} }

/* Semaines du programme */
.weeks{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line);}
.week{padding:32px 28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);}
.week .n{font-family:var(--serif); font-size:13px; letter-spacing:0.08em; color:var(--clay); text-transform:uppercase;}
.week h4{font-family:var(--serif); font-size:21px; margin:10px 0 8px; color:var(--ink);}
.week p{color:var(--ink-soft); font-size:15px; margin:0;}
@media (max-width:760px){ .weeks{grid-template-columns:1fr;} }

/* Carte inscription / cohorte */
.enroll-card{
  background:var(--ink); color:var(--bg); border-radius:8px; padding:44px 40px;
  display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:center;
}
.enroll-card h2{font-family:var(--serif); font-size:clamp(24px,3vw,32px); margin:0 0 14px; color:#fff;}
.enroll-card p{color:#D8D4CE; font-size:15.5px; margin:0 0 18px;}
.enroll-card .field label{color:#D8D4CE;}
.enroll-card .field input, .enroll-card .field textarea{background:#fff; border-color:transparent;}
.enroll-card .form-card{background:transparent; border:none; padding:0; max-width:none;}
@media (max-width:820px){ .enroll-card{grid-template-columns:1fr;} }

/* FAQ accordion */
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  padding:20px 0; font-family:var(--serif); font-size:17px; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; color:var(--ink); list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+"; font-size:22px; color:var(--clay);}
.faq-item[open] summary::after{content:"–";}
.faq-item p{color:var(--ink-soft); font-size:15px; padding:0 0 20px; margin:0; max-width:65ch;}

/* Sticky bottom CTA (mobile-friendly) */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:60;
  background:var(--ink); color:#fff; padding:14px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  box-shadow:0 -6px 20px rgba(0,0,0,0.15);
}
.sticky-cta span{font-size:14.5px; color:#D8D4CE;}
.sticky-cta a{background:var(--clay); color:#fff; padding:11px 20px; border-radius:4px; text-decoration:none; font-size:14.5px; white-space:nowrap;}
body{padding-bottom:64px;}

/* Retraites : coming soon + galerie passée */
.coming-soon{
  background:var(--bg-alt); border-radius:6px; padding:48px 40px; text-align:center; max-width:640px; margin:0 auto 60px;
}
.coming-soon .badge{margin-bottom:16px;}
.coming-soon h2{font-family:var(--serif); font-size:clamp(24px,3vw,32px); margin:0 0 12px;}
.coming-soon p{color:var(--ink-soft); font-size:16px; margin:0 0 24px;}

.past-gallery{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.past-gallery .g-item{aspect-ratio:3/4; border-radius:5px; overflow:hidden;}
.past-gallery .g-item img{width:100%; height:100%; object-fit:cover; display:block;}
@media (max-width:760px){ .past-gallery{grid-template-columns:repeat(2,1fr);} }
