/* ============ DESIGN TOKENS ============ */
:root{
  --ink:#1A1A2E;
  --paper:#FAF7F1;
  --paper-deep:#F1ECE1;
  --orange:#E86A2A;
  --orange-deep:#C8501A;
  --green:#1B6B4A;
  --green-deep:#154F38;
  --stone:#8B8478;
  --stone-light:#B8B0A0;
  --hairline:#E4DFD3;
  --white:#FFFFFF;
  --serif:'Fraunces',Georgia,serif;
  --sans:'General Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  --radius-sm:6px;
  --radius-md:14px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
img{max-width:100%;display:block;}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px;}

.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
@media(max-width:720px){.wrap{padding:0 20px;}}

/* ============ ROUTE RAIL (fil conducteur) ============ */
.route-rail{
  position:fixed;left:0;top:0;bottom:0;width:3px;
  background:var(--hairline);z-index:5;display:none;opacity:0;transition:opacity .3s;
}
.route-rail-fill{
  position:absolute;top:0;left:0;width:100%;background:var(--orange);
  height:0%;transition:height .15s linear;
}
@media(min-width:1240px){.route-rail{display:block;left:calc(50% - 590px);}}

/* ============ PAGE ROUTING ============ */
.page{display:none;}
.page.active{display:block;}

/* ============ NAV ============ */
.nav{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 32px;background:rgba(250,247,241,0.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .25s, padding .25s;
}
.nav.scrolled{border-bottom-color:var(--hairline);padding:14px 32px;}
@media(max-width:720px){.nav{padding:18px 20px;}.nav.scrolled{padding:12px 20px;}}
.nav-logo{font-family:var(--serif);font-size:24px;font-weight:600;letter-spacing:-0.02em;color:var(--ink);-webkit-tap-highlight-color:transparent;}
.nav-logo em{font-style:normal;color:var(--orange);}
.nav-links{display:flex;gap:36px;align-items:center;}
@media(max-width:900px){.nav-links{display:none;}}
.nav-link{font-size:15px;color:var(--stone);transition:color .15s;}
.nav-link:hover{color:var(--ink);}
.nav-cta{
  font-size:14px;font-weight:600;color:var(--white);background:var(--ink);
  padding:11px 22px;border-radius:100px;transition:background .15s;
}
.nav-cta:hover{background:var(--orange-deep);}
.nav-toggle{display:none;flex-direction:column;gap:5px;padding:8px;}
@media(max-width:900px){.nav-toggle{display:flex;}}
.nav-toggle span{width:22px;height:2px;background:var(--ink);}

.mnav{position:fixed;inset:0;background:var(--paper);z-index:200;display:flex;flex-direction:column;padding:24px 24px 40px;transform:translateX(100%);transition:transform .3s ease;}
.mnav.open{transform:translateX(0);}
.mnav-close{align-self:flex-end;font-size:28px;padding:10px;}
.mnav-links{display:flex;flex-direction:column;gap:6px;margin-top:20px;}
.mnav-links a{font-family:var(--serif);font-size:30px;padding:14px 0;border-bottom:1px solid var(--hairline);}
.mnav-cta{margin-top:28px;text-align:center;background:var(--ink);color:var(--white);padding:16px;border-radius:100px;font-weight:600;}

/* ============ TYPE SCALE ============ */
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-0.01em;color:var(--ink);}
.eyebrow{font-size:15px;color:var(--stone);font-weight:500;}
.lede{font-size:19px;color:var(--stone);line-height:1.6;max-width:52ch;}

/* ============ HERO ============ */
.hero{padding:64px 0 90px;}
.hero-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;align-items:center;}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:36px;}}
.hero h1{font-size:clamp(38px,5vw,64px);line-height:1.04;margin:18px 0 22px;}
.hero-photo-wrap{position:relative;}
.hero-photo{border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4/5;box-shadow:0 24px 60px -20px rgba(26,26,46,0.28);}
.hero-photo img{width:100%;height:100%;object-fit:cover;}
.hero-tag{
  position:absolute;bottom:-18px;left:-18px;background:var(--white);
  padding:14px 18px;border-radius:var(--radius-sm);box-shadow:0 12px 30px -8px rgba(26,26,46,0.2);
  font-size:14px;font-weight:600;display:flex;align-items:center;gap:10px;
}
@media(max-width:900px){.hero-tag{left:12px;bottom:-14px;}}
.hero-tag-dot{width:9px;height:9px;border-radius:50%;background:var(--green);}
.hero-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;}
.btn-primary{background:var(--ink);color:var(--white);padding:16px 30px;border-radius:100px;font-weight:600;font-size:16px;transition:background .15s, transform .15s;display:inline-block;}
.btn-primary:hover{background:var(--orange-deep);transform:translateY(-1px);}
.btn-secondary{padding:16px 8px;font-weight:600;font-size:16px;color:var(--ink);border-bottom:2px solid var(--ink);}
.proof-strip{display:flex;align-items:center;gap:14px;margin-top:38px;}
.proof-avatars{display:flex;}
.proof-avatars span{width:34px;height:34px;border-radius:50%;border:2.5px solid var(--paper);margin-left:-10px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;}
.proof-avatars span:first-child{margin-left:0;}
.proof-text{font-size:14px;color:var(--stone);}
.proof-text strong{color:var(--ink);}

/* ============ STATS BAND ============ */
.stats-band{background:var(--ink);padding:52px 0;}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;text-align:center;}
@media(max-width:720px){.stats-grid{grid-template-columns:1fr;gap:32px;}}
.stat-num{font-family:var(--serif);font-size:44px;color:var(--white);font-weight:600;}
.stat-num em{font-style:normal;color:var(--orange);}
.stat-label{font-size:14px;color:var(--stone-light);margin-top:6px;}

/* ============ ETAPES (le parcours) ============ */
.sec-etapes{padding:120px 0 60px;}
.sec-head{max-width:640px;margin-bottom:80px;}
.sec-head h2{font-size:clamp(30px,3.6vw,44px);margin-top:14px;}
.step{
  display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;
  margin-bottom:130px;position:relative;
}
.step:last-child{margin-bottom:0;}
.step.reverse .step-photo{order:2;}
.step.reverse .step-text{order:1;}
@media(max-width:860px){
  .step,.step.reverse{grid-template-columns:1fr;gap:28px;}
  .step .step-photo,.step.reverse .step-photo{order:1;}
  .step .step-text,.step.reverse .step-text{order:2;}
  .step{margin-bottom:70px;}
}
.step-node{
  position:absolute;left:-39px;top:50%;transform:translateY(-50%);
  width:14px;height:14px;border-radius:50%;background:var(--paper);
  border:3px solid var(--orange);z-index:2;
}
@media(max-width:1240px){.step-node{display:none;}}
.step-photo{border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4/5;box-shadow:0 20px 50px -18px rgba(26,26,46,0.22);}
.step-photo img{width:100%;height:100%;object-fit:cover;}
.step-num{font-family:var(--serif);font-size:15px;color:var(--orange);font-weight:600;}
.step-text h3{font-size:clamp(24px,2.6vw,32px);margin:10px 0 16px;line-height:1.15;}
.step-text p{color:var(--stone);font-size:16.5px;line-height:1.65;max-width:46ch;}
.step-tag{display:inline-block;margin-top:20px;font-size:13px;font-weight:600;padding:8px 16px;border-radius:100px;}
.tag-free{background:#E8F1EC;color:var(--green-deep);}
.tag-guide{background:#FBE7DB;color:var(--orange-deep);}

/* ============ FONDATEURS ============ */
.sec-fondateurs{padding:100px 0;background:var(--paper-deep);}
.founders-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:56px;}
@media(max-width:720px){.founders-grid{grid-template-columns:1fr;gap:44px;}}
.founder-avatar{width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--serif);font-size:28px;font-weight:600;margin-bottom:20px;}
.founder-name{font-size:18px;font-weight:600;}
.founder-role{font-size:13px;font-weight:600;margin:3px 0 16px;}
.founder-quote{font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.5;color:var(--ink);}

/* ============ PRICING TEASER ============ */
.sec-pricing{padding:100px 0;}
.pricing-card{
  background:var(--ink);border-radius:20px;padding:56px;
  display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center;color:var(--white);
}
@media(max-width:760px){.pricing-card{grid-template-columns:1fr;padding:36px 28px;}}
.pricing-card h2{color:var(--white);font-size:clamp(26px,3vw,36px);}
.pricing-card p{color:var(--stone-light);margin-top:14px;font-size:16px;max-width:44ch;}
.price-box{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);border-radius:14px;padding:28px;text-align:center;}
.price-num{font-family:var(--serif);font-size:40px;color:var(--orange);}
.price-sub{font-size:13px;color:var(--stone-light);margin-top:4px;}

/* ============ FAQ ============ */
.sec-faq{padding:100px 0;max-width:760px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--hairline);}
.faq-item summary{cursor:pointer;padding:24px 4px;font-weight:600;font-size:17px;list-style:none;display:flex;justify-content:space-between;align-items:center;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';font-size:22px;color:var(--stone);font-weight:400;flex-shrink:0;margin-left:16px;}
.faq-item[open] summary::after{content:'−';}
.faq-item p{padding:0 4px 24px;color:var(--stone);font-size:16px;line-height:1.65;max-width:60ch;}

/* ============ WAITLIST ============ */
.sec-waitlist{padding:100px 0 120px;}
.wl-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
@media(max-width:860px){.wl-grid{grid-template-columns:1fr;gap:40px;}}
.wl-grid h2{font-size:clamp(28px,3.4vw,42px);margin:14px 0 16px;}
.wl-form{display:flex;flex-direction:column;gap:12px;}
.wl-input,.wl-select{
  width:100%;border:1.5px solid var(--hairline);border-radius:100px;
  padding:15px 22px;font-size:15px;font-family:inherit;background:var(--white);color:var(--ink);
}
.wl-input:focus,.wl-select:focus{border-color:var(--orange);}
.wl-row{display:flex;gap:10px;}
@media(max-width:520px){.wl-row{flex-direction:column;}}
.wl-hint{font-size:13px;color:var(--stone-light);padding:0 8px;}
.wl-submit{background:var(--orange);color:var(--white);padding:17px;border-radius:100px;font-weight:600;font-size:16px;margin-top:6px;transition:background .15s;}
.wl-submit:hover{background:var(--orange-deep);}
.wl-note{font-size:13px;color:var(--stone-light);text-align:center;}
.wl-photo{border-radius:var(--radius-md);overflow:hidden;aspect-ratio:16/11;}
.wl-photo img{width:100%;height:100%;object-fit:cover;}

/* ============ FOOTER ============ */
footer{background:var(--ink);color:var(--stone-light);padding:70px 0 30px;}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,0.1);}
@media(max-width:760px){.footer-top{grid-template-columns:1fr 1fr;}}
.footer-logo{font-family:var(--serif);font-size:22px;color:var(--white);font-weight:600;}
.footer-logo em{font-style:normal;color:var(--orange);}
.footer-tagline{margin-top:14px;font-size:14px;line-height:1.6;max-width:32ch;}
.footer-col-title{color:var(--white);font-size:13px;font-weight:600;margin-bottom:16px;}
.fl{display:block;color:var(--stone-light);font-size:14px;margin-bottom:11px;transition:color .15s;}
.fl:hover{color:var(--white);}
.footer-bottom{display:flex;justify-content:space-between;padding-top:26px;font-size:13px;color:var(--stone);flex-wrap:wrap;gap:10px;}

/* ============ ABOUT / LEGAL PAGES ============ */
.page-hero{padding:70px 0 50px;border-bottom:1px solid var(--hairline);}
.page-hero h1{font-size:clamp(32px,4.4vw,52px);margin-top:14px;}
.page-date{font-size:13px;color:var(--stone-light);margin-top:10px;display:block;}
.legal-body{max-width:720px;margin:0 auto;padding:60px 32px 100px;}
.legal-sec{padding:26px 0;border-bottom:1px solid var(--hairline);}
.legal-sec-title{font-family:var(--serif);font-size:20px;font-weight:600;margin-bottom:14px;}
.legal-txt{color:var(--stone);font-size:16px;line-height:1.7;}
.legal-list{margin:10px 0 10px 20px;color:var(--stone);font-size:16px;line-height:1.8;}
.legal-hl{background:var(--paper-deep);border-radius:var(--radius-sm);padding:20px 24px;font-size:15px;line-height:1.7;}

.about-body{max-width:720px;margin:0 auto;padding:64px 32px 100px;}
.about-body p{font-size:18px;line-height:1.75;color:var(--ink);margin-bottom:26px;}
.about-body p.stone{color:var(--stone);font-size:16px;}
.about-quote{font-family:var(--serif);font-style:italic;font-size:24px;line-height:1.5;padding:36px 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);margin:44px 0;}

/* ============ BLOG ============ */
.blog-hero{padding:70px 0 50px;border-bottom:1px solid var(--hairline);}
.blog-hero h1{font-size:clamp(32px,4.4vw,52px);margin-top:14px;}
.blog-list{max-width:820px;margin:0 auto;padding:60px 32px 100px;display:flex;flex-direction:column;gap:0;}
.blog-card{display:grid;grid-template-columns:220px 1fr;gap:28px;padding:32px 0;border-bottom:1px solid var(--hairline);align-items:center;}
@media(max-width:640px){.blog-card{grid-template-columns:1fr;gap:16px;}}
.blog-card-img{border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:4/3;}
.blog-card-img img{width:100%;height:100%;object-fit:cover;}
.blog-card-cat{font-size:12px;font-weight:600;color:var(--orange-deep);text-transform:uppercase;letter-spacing:0.03em;}
.blog-card h2{font-size:22px;margin:8px 0 8px;line-height:1.2;}
.blog-card p{color:var(--stone);font-size:15px;line-height:1.55;}
.blog-card-meta{font-size:13px;color:var(--stone-light);margin-top:10px;}

.article-body{max-width:700px;margin:0 auto;padding:60px 32px 40px;}
.article-cat{font-size:13px;font-weight:600;color:var(--orange-deep);text-transform:uppercase;letter-spacing:0.03em;}
.article-body h1{font-size:clamp(30px,4.4vw,44px);margin:14px 0 18px;line-height:1.1;}
.article-meta{font-size:14px;color:var(--stone-light);padding-bottom:34px;border-bottom:1px solid var(--hairline);margin-bottom:34px;}
.article-content{font-size:18px;line-height:1.75;color:var(--ink);}
.article-content p{margin-bottom:24px;}
.article-content h2{font-size:26px;margin:44px 0 18px;}
.article-content h3{font-size:20px;margin:32px 0 14px;}
.article-content ul,.article-content ol{margin:0 0 24px 22px;color:var(--ink);}
.article-content li{margin-bottom:10px;line-height:1.6;}
.article-content strong{font-weight:600;}
.article-cta{background:var(--paper-deep);border-radius:16px;padding:32px;margin:44px 0;text-align:center;}
.article-cta h3{margin-top:0;font-size:20px;}
.article-cta p{color:var(--stone);margin-bottom:18px;}
