:root{
  --navy:#1A1A2E;
  --navy-deep:#141422;
  --or:#C8A96E;
  --or-soft:#d8bd88;
  --ivoire:#F7F5F1;
  --charbon:#3D3A35;
  --lin:#E8E2D9;
  --gris:#888888;
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,Helvetica,sans-serif;
  --logo-navy:url("images/vol-suspendu.png");
  --logo-gold:url("images/nuit-doree.png");
  --ease:cubic-bezier(.19,1,.22,1);
  --wrap:1240px;
  --pad:clamp(20px,5vw,64px);
}

*{margin:0;padding:0;box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  font-family:var(--sans);
  color:var(--charbon);
  background:var(--ivoire);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

body.locked{overflow:hidden;height:100vh}

body.menu-open{overflow:hidden}

img{max-width:100%;display:block}

a{color:inherit;text-decoration:none}

::selection{background:var(--or);color:var(--navy)}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}

/* ---------- Type ---------- */
.eyebrow{
  font-family:var(--sans);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--or);
  font-weight:700;
  display:inline-flex;align-items:center;gap:.7em;
}

.eyebrow::before{content:"";width:26px;height:1px;background:var(--or);display:inline-block}

.on-light .eyebrow{color:#8a6f3d}

.on-light .eyebrow::before{background:#8a6f3d}

h2.h{
  font-family:var(--serif);
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.015em;
  font-size:clamp(2rem,5vw,3.6rem);
  color:var(--navy);
}

.on-dark h2.h{color:var(--ivoire)}

.lead{
  font-size:clamp(1.05rem,1.6vw,1.3rem);
  line-height:1.65;
  max-width:52ch;
  color:var(--charbon);
}

.on-dark .lead{color:#cfcbd6}

/* ---------- Section ---------- */
.section{padding-block:clamp(84px,12vw,168px);position:relative}

.section--ivoire{background:var(--ivoire)}

.section--lin{background:var(--lin)}

.section--navy{background:var(--navy);color:var(--ivoire)}

.section--navy.on-dark{}

.hairline{height:1px;background:linear-gradient(90deg,transparent,rgba(200,169,110,.5),transparent);border:0}

/* ---------- Reveal utilities ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .95s ease,transform .95s var(--ease);transition-delay:var(--d,0s)}

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

.line-mask{overflow:hidden;display:block}

.line-mask>.li{display:block;transform:translateY(115%);transition:transform 1s var(--ease);transition-delay:var(--d,0s)}

.line-mask.in>.li{transform:translateY(0)}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:900;
  transition:background .5s var(--ease),box-shadow .5s var(--ease),padding .5s var(--ease);
  padding-block:22px;
}

.site-header.scrolled{
  background:rgba(247,245,241,.9);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 1px 0 rgba(26,26,46,.08),0 18px 40px -30px rgba(26,26,46,.5);
  padding-block:14px;
}

.header-row{display:flex;align-items:center;justify-content:space-between;gap:24px}

.brand{display:inline-flex;align-items:center;gap:13px}

.brand-mark{
  width:38px;height:36px;
  background-image:var(--logo-gold);
  background-size:contain;background-repeat:no-repeat;background-position:center;
  transition:opacity .3s;
}

.scrolled .brand-mark{background-image:var(--logo-navy)}

.brand-name{
  font-family:var(--serif);font-size:1.18rem;letter-spacing:.01em;color:var(--ivoire);
  transition:color .4s var(--ease);
}

.scrolled .brand-name{color:var(--navy)}

.nav{display:flex;align-items:center;gap:34px}

.nav a{
  font-size:.82rem;letter-spacing:.02em;color:rgba(247,245,241,.82);
  position:relative;padding:4px 0;transition:color .3s;
}

.scrolled .nav a{color:var(--charbon)}

.nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:var(--or);transform:scaleX(0);transform-origin:right;
  transition:transform .45s var(--ease);
}

.nav a:hover::after{transform:scaleX(1);transform-origin:left}

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

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

.nav-cta{
  font-size:.8rem;letter-spacing:.02em;
  width: 200px;
  text-align: center;
  border:1px solid rgba(200,169,110,.55);
  color:var(--or)!important;padding:10px 20px;border-radius:100px;
  transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease);
}

.nav-cta::after{display:none}

.nav-cta:hover{background:var(--or);color:var(--navy)!important;border-color:var(--or)}

.scrolled .nav-cta{border-color:rgba(26,26,46,.25);color:var(--navy)!important}

.scrolled .nav-cta:hover{background:var(--navy);color:var(--ivoire)!important;border-color:var(--navy)}

.burger{display:none;width:40px;height:40px;position:relative;background:none;border:0;cursor:pointer;z-index:1000}

.burger span{position:absolute;left:8px;right:8px;height:1.5px;background:var(--ivoire);transition:transform .4s var(--ease),opacity .3s,background .4s}

.scrolled .burger span{background:var(--navy)}

.menu-open .burger span{background:var(--ivoire)}

.burger span:nth-child(1){top:15px}

.burger span:nth-child(2){top:23px}

.burger.open span:nth-child(1){top:19px;transform:rotate(45deg)}

.burger.open span:nth-child(2){top:19px;transform:rotate(-45deg)}

.menu{
  position:fixed;inset:0;z-index:950;background:var(--navy);
  display:flex;flex-direction:column;justify-content:center;padding:0 var(--pad);
  clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease);
  pointer-events:none;
}

.menu.open{clip-path:inset(0 0 0 0);pointer-events:auto}

.menu a{
  font-family:var(--serif);font-size:clamp(2rem,9vw,3.4rem);color:var(--ivoire);
  padding:.18em 0;line-height:1.15;opacity:0;transform:translateY(20px);
  transition:opacity .5s var(--ease),transform .5s var(--ease),color .3s;
}

.menu.open a{opacity:1;transform:none}

.menu.open a:nth-child(1){transition-delay:.12s}

.menu.open a:nth-child(2){transition-delay:.18s}

.menu.open a:nth-child(3){transition-delay:.24s}

.menu.open a:nth-child(4){transition-delay:.30s}

.menu.open a:nth-child(5){transition-delay:.36s}

.menu.open a:nth-child(6){transition-delay:.42s}

.menu a:hover{color:var(--or)}

.menu-foot{margin-top:48px;color:rgba(207,203,214,.6);font-size:.85rem;letter-spacing:.02em}

.menu-close{
  position:absolute;top:26px;left:var(--pad);
  display:inline-flex;align-items:center;gap:10px;
  background:none;border:0;cursor:pointer;
  color:rgba(247,245,241,.75);
  font-family:var(--sans);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  padding:8px 4px;
  transition:color .3s;
}

.menu-close:hover{color:var(--or)}

.menu-close svg{transition:transform .3s var(--ease)}

.menu-close:hover svg{transform:translateX(-4px)}

/* ---------- Hero ---------- */
.hero{
  position:relative;background:var(--navy);color:var(--ivoire);
  min-height:100svh;display:flex;align-items:center;overflow:hidden;
  padding-top:120px;padding-bottom:60px;
}

.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 80% 10%,rgba(200,169,110,.10),transparent 60%);pointer-events:none}

.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;width:100%;position:relative;z-index:2}

.hero-top{
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(207,203,214,.7);
  border-top:1px solid rgba(200,169,110,.28);padding-top:18px;margin-bottom:clamp(40px,7vw,88px);
}

.hero-title{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(3rem,8.5vw,7rem);line-height:1.0;letter-spacing:-.025em;
  margin-bottom:34px;
}

.hero-title .li{padding-bottom:.04em}

.hero-title .accent{color:var(--or)}

.hero-lead{color:#d3cfda;font-size:clamp(1.05rem,1.5vw,1.28rem);max-width:44ch;margin-bottom:40px}

.hero-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center}

.btn{
  display:inline-flex;align-items:center;gap:.7em;
  font-size:.9rem;letter-spacing:.02em;font-weight:700;
  padding:16px 28px;border-radius:100px;border:1px solid transparent;cursor:pointer;
  transition:transform .4s var(--ease),background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease);
}

.btn .arw{transition:transform .4s var(--ease)}

.btn:hover .arw{transform:translateX(5px)}

.btn--gold{background:var(--or);color:var(--navy)}

.btn--gold:hover{background:var(--or-soft)}

.btn--ghost{border-color:rgba(207,203,214,.35);color:var(--ivoire)}

.btn--ghost:hover{border-color:var(--or);color:var(--or)}

.btn--navy{background:var(--navy);color:var(--ivoire)}

.btn--navy:hover{background:var(--navy-deep)}

.hero-bird{
  justify-self:end;align-self:center;
  width:min(46vw,560px);aspect-ratio:480/448;
  background-image:var(--logo-gold);background-size:contain;background-repeat:no-repeat;background-position:center;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.35));
  opacity:0;transform:translateY(30px) scale(.97);
  transition:opacity 1.4s var(--ease) .3s,transform 1.6s var(--ease) .3s;
}

.hero-bird.in{opacity:1;transform:none}

.scroll-cue{
  position:absolute;left:var(--pad);bottom:26px;z-index:3;
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(207,203,214,.55);
  display:flex;align-items:center;gap:10px;
}

.scroll-cue .bar{width:1px;height:34px;background:linear-gradient(var(--or),transparent);animation:cue 2.4s var(--ease) infinite}

@keyframes cue{0%{transform:scaleY(.2);transform-origin:top}40%{transform:scaleY(1);transform-origin:top}60%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(.2);transform-origin:bottom}}

/* ---------- Marquee ---------- */
.marquee{
  background:var(--navy-deep);color:var(--ivoire);
  padding-block:26px;overflow:hidden;position:relative;
  border-top:1px solid rgba(200,169,110,.18);border-bottom:1px solid rgba(200,169,110,.18);
}

.marquee-track{display:flex;width:max-content;animation:scroll 34s linear infinite}

.marquee:hover .marquee-track{animation-play-state:paused}

.marquee-item{
  font-family:var(--serif);font-size:clamp(1.4rem,3vw,2.3rem);letter-spacing:.01em;
  display:inline-flex;align-items:center;white-space:nowrap;padding-inline:0;color:rgba(247,245,241,.92);
}

.marquee-item .sep{color:var(--or);margin-inline:.65em;font-size:.7em;transform:translateY(-2px)}

@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- Manifesto ---------- */
.manifesto{background:var(--ivoire)}

.manifesto .statement{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(1.7rem,4.2vw,3.4rem);line-height:1.16;letter-spacing:-.01em;color:var(--navy);
  max-width:20ch;
}

.manifesto .statement .g{color:var(--or)}

.manifesto .sig{margin-top:40px;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gris)}

.manifesto-grid{display:grid;grid-template-columns:1fr;gap:0}

/* ---------- Services ---------- */
.svc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:clamp(40px,6vw,72px);flex-wrap:wrap}

.svc-head .lead{max-width:34ch}

.svc-list{border-top:1px solid rgba(26,26,46,.14)}

.svc{
  display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,72px);
  padding-block:clamp(34px,4.5vw,58px);border-bottom:1px solid rgba(26,26,46,.14);
  position:relative;
}

.svc::before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;background:linear-gradient(90deg,rgba(200,169,110,.08),transparent 55%);opacity:0;transition:opacity .5s var(--ease);pointer-events:none}

.svc:hover::before{opacity:1}

.svc-num{font-family:var(--sans);font-weight:700;font-size:clamp(1.1rem,1.4vw,1.35rem);color:var(--or);letter-spacing:.04em;padding-top:.35em}

.svc-body{max-width:70ch}

.svc-title{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3.4vw,2.9rem);color:var(--navy);line-height:1.05;letter-spacing:-.01em;margin-bottom:18px;transition:transform .5s var(--ease)}

.svc:hover .svc-title{transform:translateX(8px)}

.svc-tags{display:flex;flex-wrap:wrap;gap:8px 10px;margin-bottom:20px}

.svc-tags span{
  font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);
  border:1px solid rgba(26,26,46,.2);border-radius:100px;padding:5px 12px;font-weight:700;
}

.svc-desc{font-size:1.02rem;color:var(--charbon);max-width:60ch}

.svc-desc a{color:var(--or);border-bottom:1px solid rgba(200,169,110,.4);transition:border-color .3s}

.svc-desc a:hover{border-color:var(--or)}

/* ---------- Timeline (dark) ---------- */
.tl-head{max-width:60ch;margin-bottom:clamp(44px,6vw,80px)}

.tl-head .lead{margin-top:24px;color:#cfcbd6}

.tl{position:relative;display:grid;gap:0;border-top:1px solid rgba(200,169,110,.25)}

.tl-item{
  display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:clamp(20px,4vw,56px);
  padding-block:clamp(24px,3.4vw,40px);border-bottom:1px solid rgba(200,169,110,.18);align-items:baseline;
}

.tl-date{font-family:var(--serif);font-size:clamp(1.15rem,1.8vw,1.6rem);color:var(--or)}

.tl-text{color:#dedbe4;font-size:1.05rem;max-width:56ch}

.tl-text b{color:var(--ivoire);font-weight:700}

.tl-note{margin-top:34px;font-size:.85rem;line-height:1.6;color:rgba(207,203,214,.7);max-width:70ch}

.tl-note a{color:var(--or);border-bottom:1px solid rgba(200,169,110,.4);transition:border-color .3s}

.tl-note a:hover{border-color:var(--or)}

/* ---------- Methode ---------- */
.method-head{margin-bottom:clamp(40px,6vw,72px);max-width:52ch}

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.5vw,36px)}

.step{padding-top:26px;border-top:1px solid rgba(26,26,46,.18)}

.step-n{font-weight:700;font-size:.78rem;letter-spacing:.14em;color:var(--or);margin-bottom:16px}

.step-t{font-family:var(--serif);font-size:1.5rem;color:var(--navy);line-height:1.1;margin-bottom:12px}

.step-d{font-size:.96rem;color:var(--charbon)}

/* ---------- CTA ---------- */
.cta{position:relative;background:var(--navy);color:var(--ivoire);overflow:hidden;text-align:left}

.cta-bird{
  position:absolute;right:-6%;top:50%;transform:translateY(-50%);
  width:min(60vw,720px);aspect-ratio:480/448;
  background-image:var(--logo-gold);background-size:contain;background-repeat:no-repeat;background-position:center;
  opacity:.07;pointer-events:none;
}

.cta-inner{position:relative;z-index:2;max-width:44ch}

.cta h2{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4.4vw,3.4rem);
  line-height:1.1;letter-spacing:-.01em;color:var(--ivoire);margin-bottom:22px;
}

.cta p{color:#cfcbd6;font-size:1.1rem;max-width:46ch;margin-bottom:34px}

.cta-contact{margin-top:52px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;max-width:760px}

.cc-block .cc-label{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--or);margin-bottom:8px}

.cc-block a,.cc-block p{color:var(--ivoire);font-size:1rem;line-height:1.5}

.cc-block a{border-bottom:1px solid transparent;transition:border-color .3s}

.cc-block a:hover{border-color:var(--or)}

/* ---------- Big statement band ---------- */
.bigline{background:var(--navy-deep);padding-block:clamp(60px,10vw,120px);overflow:hidden}

.bigline .bl{
  font-family:var(--serif);font-weight:400;line-height:1;letter-spacing:-.02em;color:var(--ivoire);
  font-size:clamp(2.4rem,10vw,8.5rem);
}

.bigline .bl .g{color:var(--or)}

/* ---------- Footer ---------- */
.footer{background:var(--navy-deep);color:#cfcbd6;padding-block:64px 40px;border-top:1px solid rgba(200,169,110,.18)}

.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:56px}

.foot-brand .brand-mark{width:44px;height:42px;background-image:var(--logo-gold);margin-bottom:18px}

.foot-brand .brand-name{font-family:var(--serif);color:var(--ivoire);font-size:1.35rem;display:block;margin-bottom:14px}

.foot-brand p{font-size:.92rem;max-width:34ch;color:rgba(207,203,214,.75)}

.foot-col h4{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--or);margin-bottom:18px;font-weight:700}

.foot-col a,.foot-col p{display:block;font-size:.94rem;color:rgba(207,203,214,.85);margin-bottom:11px;transition:color .3s}

.foot-col a:hover{color:var(--or)}

.foot-bottom{border-top:1px solid rgba(200,169,110,.14);padding-top:26px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.8rem;color:rgba(207,203,214,.6);letter-spacing:.02em}

/* ---------- Custom cursor ---------- */
body.has-cursor{cursor:none}

body.has-cursor a,body.has-cursor button{cursor:none}

.cursor-dot{position:fixed;left:0;top:0;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--or);z-index:9999;pointer-events:none}

.cursor-ring{position:fixed;left:0;top:0;z-index:9998;pointer-events:none}

.cursor-ring__inner{display:block;width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(200,169,110,.7);border-radius:50%;transition:transform .3s var(--ease),opacity .3s,background .3s}

.cursor-hover .cursor-ring__inner{transform:scale(1.7);background:rgba(200,169,110,.08)}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .nav{display:none}
  .burger{display:block}
  .hero-grid{grid-template-columns:1fr}
  .hero-bird{grid-row:1;justify-self:center;width:min(62vw,320px);opacity:.9;margin-bottom:10px}
  .hero{min-height:auto;padding-top:130px;padding-bottom:80px}
  .steps{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:640px){
  .hero-top{flex-direction:column;gap:6px}
  .svc{grid-template-columns:1fr;gap:14px}
  .svc-num{padding-top:0}
  .tl-item{grid-template-columns:1fr;gap:6px}
  .steps{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .cta-bird{opacity:.05}
  .scroll-cue{display:none}
}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .line-mask>.li{transform:none}
  .marquee-track{animation:none;transform:none}
}

/* ---------- Page hero (dérivé du hero index, mêmes jetons) ---------- */
.page-hero{
  position:relative;background:var(--navy);color:var(--ivoire);
  overflow:hidden;
  padding-top:clamp(150px,18vw,220px);padding-bottom:clamp(70px,9vw,120px);
}

.page-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 80% 10%,rgba(200,169,110,.10),transparent 60%);pointer-events:none}

.page-hero .wrap{position:relative;z-index:2}

.page-hero h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(2.5rem,6.5vw,4.8rem);line-height:1.04;letter-spacing:-.02em;
  max-width:22ch;margin-bottom:30px;
}

.page-hero h1 .accent{color:var(--or)}

.page-hero .hero-lead{color:#d3cfda;font-size:clamp(1.05rem,1.5vw,1.28rem);max-width:52ch;margin-bottom:0}

.page-hero .page-bird{
  position:absolute;right:-6%;top:50%;transform:translateY(-50%);
  width:min(50vw,560px);aspect-ratio:480/448;
  background-image:var(--logo-gold);background-size:contain;background-repeat:no-repeat;background-position:center;
  opacity:.07;pointer-events:none;
}

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.7em;
  font-size:.9rem;letter-spacing:.02em;font-weight:700;
  padding:16px 28px;border-radius:100px;border:1px solid transparent;cursor:pointer;
  transition:transform .4s var(--ease),background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease);
}

/* ---------- Services / étapes (repris d'index) ---------- */
.svc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:clamp(40px,6vw,72px);flex-wrap:wrap}

/* ---------- Timeline (repris d'index) ---------- */
.tl-head{max-width:60ch;margin-bottom:clamp(44px,6vw,80px)}

/* ---------- Steps (repris d'index) ---------- */
.method-head{margin-bottom:clamp(40px,6vw,72px);max-width:52ch}

.step-duree{margin-top:14px;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);border:1px solid rgba(26,26,46,.2);border-radius:100px;padding:5px 12px;font-weight:700;display:inline-block}

/* ---------- Liste à puces (construite avec les jetons existants) ---------- */
.liste{list-style:none}

.liste li{position:relative;padding-left:30px;margin-bottom:16px;font-size:1.02rem;color:var(--charbon);max-width:66ch}

.liste li::before{content:"\25C6";position:absolute;left:0;top:.42em;font-size:.6em;color:var(--or)}

.liste li b{color:var(--navy);font-weight:700}

.on-dark .liste li{color:#dedbe4}

.on-dark .liste li b{color:var(--ivoire)}

/* ---------- Positionnement : couvre / ne couvre pas ---------- */
.pos-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);margin-top:clamp(36px,5vw,56px)}

.pos-col{padding-top:26px;border-top:1px solid rgba(26,26,46,.18)}

.pos-col h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;color:var(--navy);line-height:1.1;margin-bottom:20px}

/* ---------- Tarification ---------- */
.prix-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,72px);align-items:start}

.prix-encart{padding:clamp(26px,3.5vw,44px);border:1px solid rgba(26,26,46,.18);background:var(--ivoire)}

.prix-encart .cc-label{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:#8a6f3d;margin-bottom:10px;font-weight:700}

.prix-encart p{font-size:1.02rem;color:var(--charbon);margin-bottom:16px}

.prix-encart p:last-child{margin-bottom:0}

/* ---------- CTA (repris d'index) ---------- */
.cta{position:relative;background:var(--navy);color:var(--ivoire);overflow:hidden;text-align:left}

/* ---------- Footer (repris d'index) ---------- */
.footer{background:var(--navy-deep);color:#cfcbd6;padding-block:64px 40px;border-top:1px solid rgba(200,169,110,.18)}

/* ---------- Custom cursor (repris d'index) ---------- */
body.has-cursor{cursor:none}

/* ---------- Responsive (repris d'index) ---------- */
@media(max-width:980px){
  .nav{display:none}
  .burger{display:block}
  .steps{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .prix-grid{grid-template-columns:1fr}
}

@media(max-width:640px){
  .svc{grid-template-columns:1fr;gap:14px}
  .svc-num{padding-top:0}
  .tl-item{grid-template-columns:1fr;gap:6px}
  .steps{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .cta-bird{opacity:.05}
  .pos-grid{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .line-mask>.li{transform:none}
}

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.7em;
  font-size:.9rem;letter-spacing:.02em;font-weight:700;
  padding:16px 28px;border-radius:100px;border:1px solid transparent;cursor:pointer;
  transition:transform .4s var(--ease),background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease);
  font-family:var(--sans);
}

.btn--line{background:transparent;border-color:rgba(26,26,46,.25);color:var(--navy)}

.btn--line:hover{border-color:var(--navy)}

.btn--sm{padding:12px 22px;font-size:.85rem}

.btn[disabled]{opacity:.45;cursor:not-allowed}

/* ---------- En-tête de page ---------- */
.page-head{
  position:relative;background:var(--navy);color:var(--ivoire);
  padding-top:clamp(150px,20vw,210px);padding-bottom:clamp(60px,9vw,110px);
  overflow:hidden;
}

.page-head::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 80% 10%,rgba(200,169,110,.10),transparent 60%);pointer-events:none}

.page-head .inner{position:relative;z-index:2}

.page-head h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(2.4rem,6.5vw,5rem);line-height:1.02;letter-spacing:-.02em;
  margin:26px 0 28px;
}

.page-head h1 .accent{color:var(--or)}

.page-head .lead{color:#d3cfda;margin-bottom:18px;max-width:60ch}

.page-head .attribution{
  font-size:.88rem;color:rgba(207,203,214,.75);max-width:72ch;line-height:1.65;
}

.link-or{color:var(--or);border-bottom:1px solid rgba(200,169,110,.4);transition:border-color .3s}

.link-or:hover{border-color:var(--or)}

/* ---------- Diagnostic ---------- */
.diag-shell{max-width:880px;margin-inline:auto}

.diag-card{
  background:#fff;border:1px solid rgba(26,26,46,.12);border-radius:14px;
  padding:clamp(26px,4.5vw,52px);
  box-shadow:0 34px 70px -52px rgba(26,26,46,.4);
}

.diag-progress{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}

.diag-step{
  font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  padding:6px 13px;border-radius:100px;border:1px solid rgba(26,26,46,.16);color:var(--gris);
}

.diag-step.active{background:var(--navy);color:var(--ivoire);border-color:var(--navy)}

.diag-step.done{border-color:rgba(138,111,61,.55);color:#8a6f3d}

.diag-qid{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#8a6f3d;font-weight:700;margin-bottom:12px}

.diag-title{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(1.35rem,2.8vw,2rem);line-height:1.22;color:var(--navy);margin-bottom:8px;
}

.diag-instr{font-size:.85rem;color:var(--gris);margin-bottom:22px}

.diag-opts{display:grid;gap:10px;margin-bottom:22px}

.diag-opt{
  display:flex;gap:14px;align-items:flex-start;
  border:1px solid rgba(26,26,46,.15);border-radius:10px;padding:14px 16px;
  cursor:pointer;background:#fff;
  transition:border-color .3s,background .3s;
}

.diag-opt:hover{border-color:var(--or)}

.diag-opt.selected{border-color:#8a6f3d;background:rgba(200,169,110,.09)}

.diag-opt input{margin-top:5px;accent-color:#8a6f3d;flex:0 0 auto}

.diag-opt .lbl{font-size:.97rem;color:var(--charbon);line-height:1.5}

.diag-opt .vis{
  display:inline-block;margin-left:8px;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  color:#8a6f3d;border:1px solid rgba(138,111,61,.4);border-radius:100px;padding:2px 8px;font-weight:700;
  vertical-align:middle;white-space:nowrap;
}

.diag-hint{
  border-left:2px solid var(--or);background:rgba(200,169,110,.07);
  padding:14px 18px;margin-bottom:22px;border-radius:0 8px 8px 0;
  font-size:.9rem;color:var(--charbon);
}

.diag-hint summary{cursor:pointer;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#8a6f3d}

.diag-hint[open] summary{margin-bottom:10px}

.diag-hint p{margin-bottom:10px}

.diag-hint p:last-child{margin-bottom:0}

.diag-hint ul{margin:0 0 10px 18px}

.diag-hint li{margin-bottom:6px}

.diag-src{font-size:.74rem;letter-spacing:.04em;color:var(--gris);margin-bottom:26px}

.diag-error{color:#8a2f2f;font-size:.85rem;margin-bottom:16px;display:none}

.diag-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid rgba(26,26,46,.1);padding-top:24px}

/* Intro */
.diag-def{
  font-family:var(--serif);font-size:1.05rem;line-height:1.7;color:var(--navy);
  border-left:2px solid var(--or);padding:4px 0 4px 20px;margin:22px 0;
}

.diag-note{font-size:.9rem;color:var(--charbon);margin-bottom:26px;max-width:70ch}

/* Résultats */
.res-kicker{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#8a6f3d;font-weight:700;margin-bottom:12px}

.res-title{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,3vw,2.2rem);color:var(--navy);line-height:1.15;margin-bottom:18px}

.res-badges{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}

.res-badge{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:8px 16px;border-radius:100px}

.res-badge--risk{background:var(--navy);color:var(--or)}

.res-badge--alert{background:#5c1f1f;color:#f2dede}

.res-badge--neutral{border:1px solid rgba(26,26,46,.25);color:var(--navy)}

.res-group{margin-top:34px}

.res-group>h3{
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#8a6f3d;font-weight:700;
  margin-bottom:6px;
}

.res-item{border-top:1px solid rgba(26,26,46,.12);padding:20px 0}

.res-item h4{font-family:var(--serif);font-weight:400;font-size:1.2rem;color:var(--navy);margin-bottom:6px;line-height:1.25}

.res-item p{font-size:.94rem;line-height:1.65}

.res-item .src{font-size:.72rem;letter-spacing:.05em;color:var(--gris);margin-top:8px}

.res-empty{font-size:.95rem;padding:18px 0;border-top:1px solid rgba(26,26,46,.12)}

.res-cta{
  margin-top:44px;background:var(--navy);border-radius:14px;color:var(--ivoire);
  padding:clamp(26px,4vw,44px);position:relative;overflow:hidden;
}

.res-cta::after{content:"";position:absolute;inset:0;background:radial-gradient(110% 100% at 85% 0%,rgba(200,169,110,.14),transparent 60%);pointer-events:none}

.res-cta>*{position:relative;z-index:2}

.res-cta h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.2;margin-bottom:12px}

.res-cta p{color:#cfcbd6;font-size:.98rem;max-width:54ch;margin-bottom:24px}

.res-metho{margin-top:34px;font-size:.82rem;line-height:1.7;color:var(--gris);border-top:1px solid rgba(26,26,46,.1);padding-top:22px}

.res-metho a{color:#8a6f3d;border-bottom:1px solid rgba(138,111,61,.4)}

.res-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

body.has-cursor a,body.has-cursor button,body.has-cursor label{cursor:none}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .nav{display:none}
  .burger{display:block}
  .foot-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:640px){
  .foot-grid{grid-template-columns:1fr}
  .diag-actions{flex-direction:column-reverse;align-items:stretch}
  .diag-actions .btn{justify-content:center}
}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

h2.h{
  font-family:var(--serif);
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.015em;
  font-size:clamp(1.7rem,4vw,2.8rem);
  color:var(--navy);
}

/* ---------- Section ---------- */
.section{padding-block:clamp(64px,9vw,120px);position:relative}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .95s ease,transform .95s var(--ease);transition-delay:var(--d,0s)}

.nav-cta{
  font-size:.8rem;letter-spacing:.02em;
  width:100px;text-align:center;
  border:1px solid rgba(200,169,110,.55);
  color:var(--or)!important;padding:10px 20px;border-radius:100px;
  transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease);
}

/* ---------- Page hero (compact) ---------- */
.phero{
  position:relative;background:var(--navy);color:var(--ivoire);overflow:hidden;
  padding-top:clamp(140px,18vh,186px);padding-bottom:clamp(52px,8vw,96px);
}

.phero::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 85% 0%,rgba(200,169,110,.10),transparent 60%);pointer-events:none}

.phero-bird{
  position:absolute;right:-8%;top:52%;transform:translateY(-50%);
  width:min(52vw,540px);aspect-ratio:480/448;
  background-image:var(--logo-gold);background-size:contain;background-repeat:no-repeat;background-position:center;
  opacity:.06;pointer-events:none;
}

.phero-inner{position:relative;z-index:2;max-width:60ch}

.crumb{
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(207,203,214,.6);margin-bottom:26px;display:flex;gap:.7em;align-items:center;flex-wrap:wrap;
}

.crumb a{color:rgba(207,203,214,.78);transition:color .3s}

.crumb a:hover{color:var(--or)}

.crumb .sepx{color:var(--or)}

.phero h1{
  font-family:var(--serif);font-weight:400;line-height:1.02;letter-spacing:-.02em;
  font-size:clamp(2.6rem,7vw,4.8rem);color:var(--ivoire);margin-bottom:22px;
}

.phero .sub{color:#cfcbd6;font-size:clamp(1rem,1.4vw,1.2rem);max-width:54ch}

/* ---------- Legal content ---------- */
.legal-head{margin-bottom:clamp(40px,6vw,64px)}

.legal{border-top:1px solid rgba(26,26,46,.14)}

.legal-item{
  display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:clamp(18px,4vw,64px);
  padding-block:clamp(28px,3.8vw,50px);border-bottom:1px solid rgba(26,26,46,.14);align-items:start;
}

.legal-key{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.3rem,2vw,1.75rem);
  color:var(--navy);line-height:1.1;letter-spacing:-.01em;
}

.legal-val{color:var(--charbon);font-size:1.04rem;max-width:64ch}

.legal-val p{margin-bottom:14px}

.legal-val p:last-child{margin-bottom:0}

.legal-val a{color:#8a6f3d;border-bottom:1px solid rgba(138,111,61,.4);transition:border-color .3s,color .3s}

.legal-val a{color:#8a6f3d;border-bottom:1px solid rgba(200,169,110,.4);transition:border-color .3s}

.legal-val a:hover{border-color:#8a6f3d}

.legal-val strong{color:var(--navy);font-weight:700}

.idcard span{display:block}

.idcard span+span{margin-top:4px}

.dp-note a{color:#8a6f3d;border-bottom:1px solid rgba(200,169,110,.4);transition:border-color .3s}

.dp-note a:hover{border-color:#8a6f3d}

.ph{
  display:inline-block;color:#8a6f3d;background:rgba(200,169,110,.15);
  border:1px solid rgba(200,169,110,.45);border-radius:4px;
  padding:1px 9px;font-size:.88em;font-family:var(--sans);white-space:nowrap;
}

/* ---------- Big statement band ---------- */
.bigline{background:var(--navy-deep);padding-block:clamp(52px,8vw,104px);overflow:hidden}

.bigline .bl{
  font-family:var(--serif);font-weight:400;line-height:1;letter-spacing:-.02em;color:var(--ivoire);
  font-size:clamp(2rem,8vw,7rem);
}

@media(max-width:640px){
  .legal-item{grid-template-columns:1fr;gap:8px}
  .foot-grid{grid-template-columns:1fr}
  .phero-bird{opacity:.05}
}

/* ---------- Bandeau cookies ---------- */
#cookie-banner{
  display:none;
  position:fixed; bottom:0; left:0; right:0;
  background:var(--navy, #1A1A2E);
  color:var(--ivoire, #F7F5F1);
  padding:22px clamp(20px,5vw,64px);
  z-index:9999;
  flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px;
  font-family:var(--sans, Arial, Helvetica, sans-serif);
  border-top:1px solid rgba(200,169,110,.5);
}
#cookie-banner p{
  margin:0; max-width:640px;
  font-size:.88rem; line-height:1.5;
  color:rgba(247,245,241,.85);
}
#cookie-banner .cookie-actions{display:flex; gap:10px; flex-shrink:0;}
#cookie-banner button{
  padding:10px 22px;
  border-radius:100px;
  font-family:var(--sans, Arial, Helvetica, sans-serif);
  font-size:.82rem; letter-spacing:.02em;
  cursor:pointer;
  transition:background .4s cubic-bezier(.19,1,.22,1), color .4s cubic-bezier(.19,1,.22,1), border-color .4s cubic-bezier(.19,1,.22,1);
}
#cookie-refuse{
  background:transparent; color:var(--ivoire, #F7F5F1);
  border:1px solid rgba(247,245,241,.4);
}
#cookie-refuse:hover{border-color:var(--or, #C8A96E); color:var(--or, #C8A96E);}
#cookie-accept{
  background:var(--or, #C8A96E); color:var(--navy, #1A1A2E);
  border:1px solid var(--or, #C8A96E);
}
#cookie-accept:hover{background:var(--or-soft, #d8bd88); border-color:var(--or-soft, #d8bd88);}
@media (max-width:640px){
  #cookie-banner{flex-direction:column; align-items:flex-start;}
  #cookie-banner .cookie-actions{width:100%;}
  #cookie-banner button{flex:1;}
}

/* ---------- Page contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:start}
@media (max-width:860px){
  .contact-grid{grid-template-columns:1fr;gap:40px}
}

/* ---------- Formulaire de contact ---------- */
.contact-form{
  display:grid;
  gap:20px;
  max-width:560px;
}
.cf-row{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.cf-row label{
  font-family:var(--sans);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(207,203,214,.75);
}
.on-light .cf-row label{color:#8a6f3d}
.cf-row input,
.cf-row textarea{
  font-family:var(--sans);
  font-size:1rem;
  color:var(--ivoire);
  background:rgba(247,245,241,.06);
  border:1px solid rgba(247,245,241,.22);
  border-radius:2px;
  padding:13px 16px;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.on-light .cf-row input,
.on-light .cf-row textarea{
  color:var(--charbon);
  background:rgba(26,26,46,.03);
  border-color:rgba(26,26,46,.16);
}
.cf-row input:focus,
.cf-row textarea:focus{
  outline:none;
  border-color:var(--or);
  background:rgba(247,245,241,.1);
}
.on-light .cf-row input:focus,
.on-light .cf-row textarea:focus{background:rgba(26,26,46,.05)}
.cf-row textarea{resize:vertical;min-height:120px}

/* Honeypot anti-spam : masqué visuellement mais lisible par les robots simples, sans display:none (contourné par certains) */
.cf-hp{
  position:absolute;
  left:-9999px;
  width:1px;height:1px;
  overflow:hidden;
}

.contact-form .btn{
  justify-self:start;
  border:none;
  cursor:pointer;
  font:inherit;
}

.cf-status{
  font-size:.85rem;
  min-height:1.2em;
  margin:0;
}
.cf-status[data-state="ok"]{color:#8fbf8f}
.cf-status[data-state="error"]{color:#d99a9a}
.on-light .cf-status[data-state="ok"]{color:#3f7a3f}
.on-light .cf-status[data-state="error"]{color:#a03f3f}

/* ---------- Visuel section contact (même animation que le hero-bird) ---------- */
.contact-grid-hero{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:40px;
  align-items:center;
}
@media (max-width:860px){
  .contact-grid-hero{grid-template-columns:1fr}
}

.contact-bird{
  justify-self:end;align-self:center;
  width:min(46vw,560px);aspect-ratio:480/448;
  background-image:url("images/vol-suspendu.png");
  background-size:contain;background-repeat:no-repeat;background-position:center;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.35));
  opacity:0;transform:translateY(30px) scale(.97);
  transition:opacity 1.4s var(--ease) .3s,transform 1.6s var(--ease) .3s;
}
.contact-bird.in{opacity:1;transform:none}

@media (max-width:860px){
  .contact-bird{grid-row:1;justify-self:center;width:min(62vw,320px);opacity:.9;margin-bottom:10px}
}
