:root{
    --noir:#0a0908;--noir-2:#11100d;--noir-3:#16140f;
    --or:#c9a227;--or-clair:#e9cd72;--or-pale:#f6e8bd;
    --argent:#c4c9d1;--argent-fonce:#82878f;--creme:#f4eee1;--ligne:#221f1a;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{background:var(--noir);color:var(--creme);font-family:'Manrope',sans-serif;font-weight:300;overflow-x:hidden}
  ::selection{background:var(--or);color:var(--noir)}
  a{color:inherit}
  img{display:block}
  body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.05;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

  /* topbar */
  .topbar{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;
    padding:18px 44px;transition:background .4s,padding .4s,box-shadow .4s;background:linear-gradient(180deg,rgba(10,9,8,.92),transparent)}
  .topbar.solid{background:rgba(8,7,6,.96);padding:12px 44px;box-shadow:0 1px 0 rgba(201,162,39,.18),0 16px 40px rgba(0,0,0,.5)}
  .logo{display:flex;align-items:center;gap:14px;text-decoration:none}
  .logo img{height:104px;width:auto;filter:drop-shadow(0 2px 10px rgba(0,0,0,.6))}
  .nav{display:flex;gap:6px;align-items:center}
  .nav a{color:var(--argent);text-decoration:none;font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:10px 15px;transition:color .3s}
  .nav a:hover,.nav a.active{color:var(--or-clair)}
  .nav a.cta{border:1px solid var(--or);color:var(--or-clair);margin-left:10px}
  .nav a.cta:hover{background:var(--or);color:var(--noir)}
  .burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
  .burger span{width:26px;height:2px;background:var(--or-clair);transition:.3s}
  .mobile-nav{position:fixed;inset:0;z-index:55;background:rgba(8,7,6,.98);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;opacity:0;pointer-events:none;transition:opacity .4s}
  .mobile-nav.open{opacity:1;pointer-events:auto}
  .mobile-nav a{color:var(--creme);text-decoration:none;font-family:'Libre Caslon Display',serif;font-size:30px;padding:12px;letter-spacing:.03em}
  .mobile-nav a:hover{color:var(--or-clair)}

  /* hero */
  .hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:130px 24px 96px;position:relative;
    background:radial-gradient(ellipse 80% 55% at 50% 115%, rgba(201,162,39,.13), transparent 60%),var(--noir)}
  .kicker{font-size:12px;letter-spacing:.5em;text-transform:uppercase;color:var(--or-clair);display:inline-flex;align-items:center;gap:16px;font-weight:500;opacity:0;animation:rise .9s .1s cubic-bezier(.2,.7,.2,1) forwards}
  .kicker::before,.kicker::after{content:'';width:42px;height:1px;background:var(--or)}
  .mot{font-family:'Anton',sans-serif;font-size:clamp(66px,14.5vw,236px);line-height:.95;letter-spacing:.015em;text-transform:uppercase;margin:28px 0 6px;
    background-size:cover;background-position:50% 35%;
    -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1px rgba(201,162,39,.35);
    animation:pan 18s ease-in-out infinite alternate, riseClip 1.2s .25s cubic-bezier(.2,.7,.2,1) both;filter:drop-shadow(0 18px 50px rgba(0,0,0,.55))}
  @keyframes pan{from{background-position:50% 22%}to{background-position:50% 58%}}
  @keyframes riseClip{from{opacity:0;transform:translateY(40px) scale(.985)}to{opacity:1;transform:none}}
  .ital{font-family:'Libre Caslon Display',serif;font-size:clamp(28px,4.6vw,60px);color:var(--creme);letter-spacing:.04em;opacity:0;animation:rise 1s .5s cubic-bezier(.2,.7,.2,1) forwards}
  .ital em{font-style:normal;color:var(--or-clair)}
  .sub{max-width:640px;margin-top:26px;font-size:16.5px;line-height:1.85;color:var(--argent-fonce);opacity:0;animation:rise 1s .65s cubic-bezier(.2,.7,.2,1) forwards}
  .sub strong{color:var(--argent);font-weight:500}
  .ctas{display:flex;gap:18px;margin-top:40px;flex-wrap:wrap;justify-content:center;opacity:0;animation:rise 1s .8s cubic-bezier(.2,.7,.2,1) forwards}
  .btn{padding:17px 38px;font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;font-weight:600;transition:all .35s;cursor:pointer;border:0;display:inline-block}
  .btn-or{background:linear-gradient(120deg,var(--or),var(--or-clair));color:var(--noir);box-shadow:0 10px 34px rgba(201,162,39,.25)}
  .btn-or:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(201,162,39,.42)}
  .btn-ghost{border:1px solid #3a3933;color:var(--argent);background:transparent}
  .btn-ghost:hover{border-color:var(--or);color:var(--or-clair)}
  .scrolldown{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);width:1px;height:60px;background:linear-gradient(180deg,var(--or),transparent);opacity:0;animation:rise 1s 1.1s forwards}
  .scrolldown::before{content:'';position:absolute;top:0;left:-2.5px;width:6px;height:6px;border-radius:50%;background:var(--or-clair);animation:drop 2.2s ease-in-out infinite}
  @keyframes drop{0%{top:0;opacity:1}80%{top:52px;opacity:0}100%{top:0;opacity:0}}
  @keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

  /* marquee */
  .marquee-wrap{margin:0;position:relative;z-index:5}
  .marquee-band{background:linear-gradient(90deg,var(--or) 0%,var(--or-clair) 50%,var(--or) 100%);box-shadow:0 16px 44px rgba(0,0,0,.45)}
  .marquee{overflow:hidden;white-space:nowrap;padding:15px 0}
  .marquee .track{display:inline-block;animation:slide 28s linear infinite;font-family:'Anton',sans-serif;font-size:20px;letter-spacing:.14em;text-transform:uppercase;color:var(--noir)}
  .marquee .track i{font-family:'Libre Caslon Display',serif;font-style:normal;font-size:22px;letter-spacing:.02em;text-transform:none}
  .marquee .track span{margin:0 22px}
  @keyframes slide{to{transform:translateX(-50%)}}

  /* parallax */
  .parallax{margin-top:0;min-height:74vh;position:relative;display:flex;align-items:center;justify-content:center;
    background-size:cover;background-position:center 40%;background-attachment:fixed}
  .parallax .frame{position:absolute;inset:34px;border:1px solid rgba(233,205,114,.4);pointer-events:none}
  .parallax blockquote{max-width:1120px;text-align:center;padding:0 24px}
  .parallax blockquote p{font-family:'Libre Caslon Display',serif;font-size:clamp(15px,4.2vw,52px);line-height:1.4;color:var(--creme);text-shadow:0 4px 30px rgba(0,0,0,.7);white-space:nowrap}
  .parallax blockquote p em{font-style:normal;color:var(--or-clair)}
  .parallax blockquote small{display:block;margin-top:24px;font-size:12px;letter-spacing:.42em;text-transform:uppercase;color:var(--or-clair);font-weight:500}

  /* sections */
  .wrap{max-width:1240px;margin:0 auto;padding:0 44px}
  .sec{padding:128px 0}
  .eyebrow{font-size:12px;letter-spacing:.5em;text-transform:uppercase;color:var(--or-clair);font-weight:500}
  .h2{font-family:'Libre Caslon Display',serif;font-size:clamp(30px,4.4vw,48px);line-height:1.18;color:var(--creme);font-weight:400;margin-top:18px}
  .h2 em{font-style:normal;color:var(--or-clair)}
  .lead{font-size:16.5px;line-height:1.85;color:var(--argent-fonce);max-width:620px;margin-top:20px}
  .lead strong{color:var(--argent);font-weight:500}

  .metier{background:linear-gradient(180deg,var(--noir),var(--noir-2))}
  .metier .head{text-align:center;max-width:920px;margin:0 auto 56px}
  .metier .head .lead{margin-left:auto;margin-right:auto}
  .offres{display:grid;grid-template-columns:1fr 1fr;gap:30px}
  .offre{position:relative;border:1px solid var(--ligne);background:rgba(22,20,15,.5);padding:48px 42px;transition:border-color .4s,transform .4s,box-shadow .4s;overflow:hidden}
  .offre::before{content:'';position:absolute;top:0;left:0;width:0;height:3px;background:linear-gradient(90deg,var(--or),var(--or-clair));transition:width .5s}
  .offre:hover{border-color:rgba(201,162,39,.4);transform:translateY(-4px);box-shadow:0 24px 60px rgba(0,0,0,.45)}
  .offre:hover::before{width:100%}
  .offre .num{font-family:'Anton',sans-serif;font-size:13px;letter-spacing:.2em;color:var(--or)}
  .offre h3{font-family:'Libre Caslon Display',serif;font-size:30px;font-weight:400;color:var(--creme);margin:14px 0 16px}
  .offre p{font-size:15.5px;line-height:1.8;color:var(--argent-fonce)}
  .offre .tag{display:inline-block;margin-top:22px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--or-clair);border:1px solid rgba(201,162,39,.35);padding:8px 16px}
  .note-delai{text-align:center;margin-top:42px;font-family:'Libre Caslon Display',serif;font-size:clamp(20px,2.4vw,28px);color:var(--argent);letter-spacing:.02em}
  .note-delai em{font-style:normal;color:var(--or-clair)}

  .neige{background:var(--noir);position:relative}
  .neige .head{text-align:center;max-width:920px;margin:0 auto 56px}
  .neige .head .lead{margin:20px auto 0}
  .gal{display:grid;grid-template-columns:1.15fr 1fr;grid-template-rows:auto auto;gap:22px}
  .gal figure{position:relative;overflow:hidden;border:1px solid rgba(201,162,39,.22)}
  .gal figure.big{grid-row:1 / span 2}
  .gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
  .gal figure:hover img{transform:scale(1.06)}
  .gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 24px;background:linear-gradient(0deg,rgba(8,7,6,.88),transparent);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--or-pale);font-weight:500}

  .cibles{background:linear-gradient(180deg,var(--noir-2),var(--noir))}
  .cibles .head{margin-bottom:56px}
  .grid-cibles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ligne);border:1px solid var(--ligne)}
  .cible{background:var(--noir);padding:40px 34px;transition:background .4s}
  .cible:hover{background:var(--noir-3)}
  .cible .ic{font-family:'Anton',sans-serif;font-size:14px;color:var(--or);letter-spacing:.1em}
  .cible h3{font-size:15px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--creme);margin:14px 0 12px}
  .cible p{font-size:14.5px;line-height:1.7;color:var(--argent-fonce)}

  .savoir{padding:128px 0;background:var(--noir)}
  .savoir .grid{display:grid;grid-template-columns:1fr 1.1fr;gap:88px;align-items:center;max-width:1240px;margin:0 auto;padding:0 44px}
  .arche{position:relative}
  .arche img{width:100%;display:block;aspect-ratio:4/5;object-fit:cover;border-radius:300px 300px 14px 14px;box-shadow:0 30px 80px rgba(0,0,0,.55)}
  .arche::before{content:'';position:absolute;inset:-18px;border:1px solid rgba(201,162,39,.5);border-radius:320px 320px 20px 20px;pointer-events:none;transition:inset .5s cubic-bezier(.2,.7,.2,1)}
  .arche:hover::before{inset:-10px}
  .arche figcaption{position:absolute;left:50%;bottom:-17px;transform:translateX(-50%);background:var(--noir);border:1px solid var(--or);color:var(--or-clair);font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;font-weight:600;padding:11px 24px;white-space:nowrap}
  .liste{margin-top:38px;display:flex;flex-direction:column}
  .liste .item{display:flex;align-items:baseline;gap:22px;padding:20px 4px;border-top:1px solid var(--ligne)}
  .liste .item:last-child{border-bottom:1px solid var(--ligne)}
  .liste .n{font-family:'Anton',sans-serif;font-size:15px;color:var(--or);letter-spacing:.1em;min-width:34px}
  .liste h3{font-size:15px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--creme);min-width:210px}
  .liste span{font-size:14.5px;color:var(--argent-fonce);line-height:1.6}

  .partenaires{background:linear-gradient(180deg,var(--noir),var(--noir-2));text-align:center}
  .partenaires .head{max-width:920px;margin:0 auto 56px}
  .partenaires .head .lead{margin:20px auto 0}
  .part-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
  .part{display:block;text-decoration:none;border:1px solid var(--ligne);padding:42px 30px;background:rgba(22,20,15,.4);transition:border-color .4s,transform .4s,background .4s}
  .part:hover{border-color:rgba(201,162,39,.45);transform:translateY(-4px);background:rgba(22,20,15,.8)}
  .part .pk{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--or)}
  .part h3{font-family:'Libre Caslon Display',serif;font-size:25px;font-weight:400;color:var(--creme);margin:14px 0 12px}
  .part p{font-size:14px;line-height:1.7;color:var(--argent-fonce);min-height:62px}
  .part .go{display:inline-block;margin-top:16px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--or-clair)}
  .center-cta{text-align:center;margin-top:50px}

  /* CTA band */
  .cta-band{background:var(--noir);text-align:center;position:relative;overflow:hidden}
  .cta-band::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 50% 0%,rgba(201,162,39,.12),transparent 60%);pointer-events:none}
  .cta-band .h2{margin:0 auto}
  .cta-band .lead{margin:20px auto 0}

  /* contact */
  .contact{background:var(--noir);position:relative;overflow:hidden}
  .contact::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 80% 10%,rgba(201,162,39,.1),transparent 60%);pointer-events:none}
  .contact .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;position:relative}
  .contact .lead{max-width:none}
  .form{margin-top:34px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .form .full{grid-column:1 / -1}
  .field label{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--argent-fonce);margin-bottom:9px}
  .field input,.field textarea{width:100%;background:#2c2820;border:1px solid #3a352b;color:var(--creme);padding:14px 16px;font-family:'Manrope',sans-serif;font-size:15px;transition:border-color .3s,background .3s}
  .field input:focus,.field textarea:focus{outline:0;border-color:var(--or);background:#332e25}
  .field textarea{resize:vertical;min-height:120px}
  .form-success{display:none;border:1px solid var(--or);background:rgba(201,162,39,.08);padding:40px 30px;text-align:center;margin-top:34px}
  .form-success.show{display:block;animation:rise .6s both}
  .form-success h3{font-family:'Libre Caslon Display',serif;font-size:30px;font-weight:400;color:var(--or-clair);margin-bottom:12px}
  .form-success p{color:var(--argent);font-size:15px;line-height:1.7}
  .coords{border:1px solid var(--ligne);padding:40px 38px;background:rgba(22,20,15,.5);align-self:start}
  .coords h3{font-family:'Libre Caslon Display',serif;font-size:26px;font-weight:400;color:var(--creme);margin-bottom:22px}
  .coords .row{display:flex;gap:14px;padding:14px 0;border-top:1px solid var(--ligne);font-size:15px;color:var(--argent);line-height:1.6}
  .coords .row:first-of-type{border-top:0}
  .coords .row .lbl{min-width:90px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--or-clair);padding-top:3px}
  .coords a{color:var(--argent);text-decoration:none}
  .coords a:hover{color:var(--or-clair)}
  .coords .map-btn{display:inline-block;margin-top:22px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--or-clair);border:1px solid rgba(201,162,39,.4);padding:12px 20px;text-decoration:none;transition:.3s}
  .coords .map-btn:hover{background:var(--or);color:var(--noir)}
  .socials{display:flex;gap:14px;margin-top:24px}
  .socials a{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ligne);color:var(--argent);text-decoration:none;font-size:12px;letter-spacing:.1em;transition:.3s}
  .socials a:hover{border-color:var(--or);color:var(--or-clair)}

  /* sub-page header */
  .page-header{padding:172px 24px 86px;text-align:center;position:relative;background:radial-gradient(ellipse 70% 60% at 50% 0%,rgba(201,162,39,.12),transparent 60%),var(--noir);border-bottom:1px solid var(--ligne)}
  .page-header .eyebrow{display:block}
  .page-header h1{font-family:'Libre Caslon Display',serif;font-size:clamp(30px,4.2vw,52px);font-weight:400;line-height:1.12;color:var(--creme);margin-top:16px}
  .page-header h1 em{font-style:normal;color:var(--or-clair)}
  .page-header p{max-width:620px;margin:22px auto 0;color:var(--argent-fonce);font-size:16.5px;line-height:1.8}
  .crumb{margin-top:26px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--argent-fonce)}
  .crumb a{color:var(--or-clair);text-decoration:none}

  /* prose / legal */
  .prose{max-width:840px;margin:0 auto;padding:78px 44px 96px}
  .prose .meta{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--argent-fonce);margin-bottom:34px}
  .prose h2{font-family:'Libre Caslon Display',serif;font-weight:400;font-size:28px;color:var(--creme);margin:46px 0 14px}
  .prose h2:first-of-type{margin-top:0}
  .prose h3{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--or-clair);margin:26px 0 10px}
  .prose p,.prose li{font-size:15.5px;line-height:1.85;color:var(--argent)}
  .prose p{margin-bottom:14px}
  .prose ul{margin:0 0 16px 22px}.prose li{margin-bottom:8px}
  .prose a{color:var(--or-clair);text-decoration:none;border-bottom:1px solid rgba(201,162,39,.4)}
  .prose strong{color:var(--creme);font-weight:600}
  .prose table{width:100%;border-collapse:collapse;margin:8px 0 22px}
  .prose th,.prose td{border:1px solid var(--ligne);padding:11px 14px;text-align:left;font-size:14px;color:var(--argent);vertical-align:top}
  .prose th{color:var(--or-clair);font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-size:11.5px}

  /* footer */
  footer{background:var(--noir-2);border-top:1px solid var(--ligne);padding:54px 44px 40px}
  .foot{max-width:1240px;margin:0 auto;display:flex;flex-wrap:wrap;gap:30px;justify-content:space-between;align-items:center}
  .foot img{height:60px;opacity:.95}
  .foot nav{display:flex;gap:22px;flex-wrap:wrap}
  .foot nav a{color:var(--argent-fonce);text-decoration:none;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;transition:color .3s}
  .foot nav a:hover{color:var(--or-clair)}
  .copy{text-align:center;margin-top:34px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#4a4842}
  .copy a{color:#6b675e;text-decoration:none}

  /* cookie banner */
  .cookie{position:fixed;left:20px;right:20px;bottom:20px;z-index:80;max-width:560px;margin:0 auto;background:rgba(13,12,10,.97);border:1px solid var(--or);padding:22px 24px;display:none;box-shadow:0 20px 60px rgba(0,0,0,.6)}
  .cookie.show{display:block}
  .cookie p{font-size:13.5px;color:var(--argent);line-height:1.65;margin-bottom:16px}
  .cookie a{color:var(--or-clair)}
  .cookie .row{display:flex;gap:12px;flex-wrap:wrap}
  .cookie button{padding:11px 22px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;border:1px solid var(--ligne);background:transparent;color:var(--argent);font-family:'Manrope',sans-serif}
  .cookie button:hover{border-color:var(--or);color:var(--or-clair)}
  .cookie button.acc{background:linear-gradient(120deg,var(--or),var(--or-clair));color:var(--noir);border:0;font-weight:600}

  .reveal{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}
  .reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}.reveal.d3{transition-delay:.3s}.reveal.d4{transition-delay:.4s}

  @media(max-width:980px){
    .nav{display:none}.burger{display:flex}.topbar,.topbar.solid{padding:16px 22px}
    .wrap{padding:0 22px}
    .offres,.grid-cibles,.part-grid,.contact .grid,.savoir .grid,.gal{grid-template-columns:1fr}
    .savoir .grid{gap:48px;padding:0 22px}.gal figure.big{grid-row:auto}
    .parallax{background-attachment:scroll}.form{grid-template-columns:1fr}
    .prose{padding:70px 22px 76px}
    /* rythme vertical mobile harmonisé (sections moins aérées sur petit écran) */
    .sec,.savoir{padding:74px 0}
    .hero{padding:118px 22px 72px}
    .page-header{padding:124px 22px 58px}
    .metier .head,.neige .head,.partenaires .head,.cibles .head{margin-bottom:40px}
    /* liste process : empilée proprement (titre pleine largeur, description dessous) */
    .liste h3{min-width:0}
    .liste .item{flex-wrap:wrap;gap:8px 16px}
    .liste .item span:not(.n){flex:1 1 100%;padding-left:50px}
    .savoir-txt p,.savoir-txt .lead{max-width:none}
  }
  @media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}