/* ==========================================================================
   Sollicitation personnalisée · feuille de style
   Marque : « Dans le cadre. Hors du commun. » (voir branding/plateforme-de-marque.html)
   Modes : html.anim (animations) · html.calme (réduites) · html.is-intro (ouverture)
   ========================================================================== */

@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-garamond-latin-300-normal.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-garamond-latin-300-italic.woff2) format("woff2");font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-garamond-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(../fonts/instrument-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(../fonts/instrument-sans-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(../fonts/instrument-sans-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Cinzel";src:url(../fonts/cinzel-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --encre:#121113; --nuit:#1B1A1D; --velin:#F4EFE6; --papier:#FBF8F2;
  --laiton:#B8975A; --laiton-p:#8A6D35; --laiton-clair:#D6C29A;
  --vert:#1E3A32; --vert-p:#152A24; --cire:#8E3325;
  --pierre:#6E695F; --pierre-clair:#A9A399; --gris-clair:#D8D1C4;
  --ligne:rgba(18,17,19,.13); --ligne-claire:rgba(244,239,230,.14);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gravure:"Cinzel",var(--serif);
  --ease:cubic-bezier(.16,1,.3,1);
  --marge:max(20px,6vw);
  --entete:84px;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{background:var(--encre);-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{font-variant-numeric:lining-nums;font-feature-settings:'lnum';background:var(--velin);color:var(--encre);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;text-rendering:optimizeLegibility}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
::selection{background:var(--laiton);color:var(--encre)}
:focus-visible{outline:2px solid var(--laiton);outline-offset:4px}
.conteneur{padding:0 var(--marge);max-width:1680px;margin:0 auto}
.evitement{position:fixed;left:16px;top:-80px;z-index:300;background:var(--velin);color:var(--encre);padding:12px 18px;font-weight:500}
.evitement:focus{top:16px}

/* Thèmes de section */
[data-theme="sombre"]{background:var(--encre);color:var(--velin)}
[data-theme="vert"]{background:var(--vert);color:var(--velin)}
[data-theme="clair"]{background:var(--velin);color:var(--encre)}

/* ---------- Typographie ---------- */
.lab{font:500 11.5px/1.5 var(--gravure);letter-spacing:.22em;text-transform:uppercase;color:var(--laiton-p)}
[data-theme="sombre"] .lab,[data-theme="vert"] .lab,.intro .lab,.menu .lab{color:var(--laiton)}
h2{font:300 clamp(44px,6.2vw,104px)/.98 var(--serif);letter-spacing:-.015em;margin-top:22px}
h2 em,h1 em{font-style:italic;font-weight:300}
[data-theme="clair"] h2 em{color:var(--laiton-p)}
[data-theme="sombre"] h2 em,[data-theme="vert"] h2 em{color:var(--laiton-clair)}
.romain{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid currentColor;border-radius:50%;margin-right:12px;font-size:10px;letter-spacing:0;vertical-align:middle}
.acte-intro{font-size:18px;line-height:1.65;max-width:520px;margin-top:28px}
[data-theme="sombre"] .acte-intro,[data-theme="vert"] .acte-intro{color:var(--gris-clair)}
[data-theme="clair"] .acte-intro{color:#3F3B35}
.split-ligne{overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}

/* ---------- Boutons et liens ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:17px 30px;font:500 15px/1 var(--sans);letter-spacing:.02em;white-space:nowrap;transition:background-color .5s var(--ease),color .5s var(--ease),border-color .5s var(--ease);isolation:isolate}
.btn span{position:relative;z-index:1;display:inline-block}
.btn::before,.btn::after{content:"";position:absolute;width:12px;height:12px;border:1.5px solid var(--laiton);transition:transform .6s var(--ease);pointer-events:none}
.btn::before{top:-6px;left:-6px;border-right:0;border-bottom:0}
.btn::after{bottom:-6px;right:-6px;border-left:0;border-top:0}
.btn:hover::before{transform:translate(-4px,-4px)}
.btn:hover::after{transform:translate(4px,4px)}
.btn-plein{background:var(--velin);color:var(--encre)}
.btn-plein:hover{background:var(--laiton-clair)}
[data-theme="clair"] .btn-plein{background:var(--encre);color:var(--velin)}
[data-theme="clair"] .btn-plein:hover{background:var(--vert)}
.btn-cadre{border:1px solid currentColor}
[data-theme="sombre"] .btn-cadre:hover,.entete .btn-cadre:hover{background:var(--velin);color:var(--encre);border-color:var(--velin)}
[data-theme="clair"] .btn-cadre:hover,.entete.sur-clair .btn-cadre:hover{background:var(--encre);color:var(--velin);border-color:var(--encre)}
.btn-grand{padding:24px 46px;font-size:17px}
.lien-trace{position:relative;display:inline-block;padding:4px 0;font-size:15px;font-weight:500}
.lien-trace::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--laiton);transform:scaleX(0);transform-origin:right;transition:transform .7s var(--ease)}
.lien-trace:hover::after,.lien-clair::after{transform:scaleX(1);transform-origin:left}
.lien-clair:hover::after{transform:scaleX(0);transform-origin:right}

/* Image encadrée : les quatre repères de la marque */
.cadre-img{position:relative;overflow:visible}
.cadre-img>img{width:100%;height:100%;object-fit:cover}
.cadre-img::before,.cadre-img::after{content:"";position:absolute;z-index:2;width:28px;height:28px;border:1.5px solid var(--laiton);pointer-events:none}
.cadre-img::before{top:-14px;left:-14px;border-right:0;border-bottom:0}
.cadre-img::after{bottom:-14px;right:-14px;border-left:0;border-top:0}
.masque{overflow:hidden;width:100%;height:100%}
.anim .cadre-img::before{opacity:0;transform:translate(16px,16px);transition:opacity .9s var(--ease) .35s,transform 1.2s var(--ease) .35s}
.anim .cadre-img::after{opacity:0;transform:translate(-16px,-16px);transition:opacity .9s var(--ease) .35s,transform 1.2s var(--ease) .35s}
.anim .cadre-img.vu::before,.anim .cadre-img.vu::after{opacity:1;transform:none}

/* ---------- Ouverture « le cadre s'ouvre » ---------- */
.intro{display:none}
.is-intro .intro{display:block;position:fixed;inset:0;z-index:200;color:var(--velin);animation:secours-intro 0s 8s forwards;overflow:hidden}
.is-intro body{overflow:hidden}
.intro-trou{position:absolute;left:50%;top:50%;width:0;height:0;transform:translate(-50%,-50%);box-shadow:0 0 0 200vmax var(--encre)}
.intro-cadre{position:absolute;left:50%;top:50%;width:190px;height:190px;transform:translate(-50%,-50%)}
.intro-cadre .c{position:absolute;width:34px;height:34px;border:1.5px solid var(--laiton)}
.intro-cadre .c1{top:0;left:0;border-right:0;border-bottom:0}
.intro-cadre .c2{top:0;right:0;border-left:0;border-bottom:0}
.intro-cadre .c3{bottom:0;right:0;border-left:0;border-top:0}
.intro-cadre .c4{bottom:0;left:0;border-right:0;border-top:0}
.intro-mono{position:absolute;left:50%;top:50%;width:150px;height:150px;transform:translate(-50%,-50%);clip-path:inset(18% 18% 18% 18%)}
.intro-bas{position:absolute;left:var(--marge);right:var(--marge);bottom:34px;display:flex;justify-content:space-between;align-items:end}
.intro-compte{font:300 15px var(--serif);letter-spacing:.1em;color:var(--gris-clair)}
.intro-compte b{font-weight:300;font-size:44px;color:var(--velin);letter-spacing:0;font-variant-numeric:tabular-nums}
@keyframes secours-intro{to{opacity:0;visibility:hidden}}

/* ---------- En-tête ---------- */
.entete{position:fixed;z-index:80;top:0;left:0;right:0;height:var(--entete);padding:0 var(--marge);display:flex;align-items:center;gap:40px;color:var(--velin);transition:transform .7s var(--ease),color .5s,background-color .5s,backdrop-filter .5s}
.entete::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .5s;background:rgba(18,17,19,.62);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-bottom:1px solid var(--ligne-claire)}
.entete.defile::before{opacity:1}
.entete.sur-clair{color:var(--encre)}
.entete.sur-clair::before{background:rgba(244,239,230,.74);border-color:var(--ligne)}
.entete.cache{transform:translateY(-102%)}
.menu-ouvert .entete{transform:none;color:var(--velin)}
.menu-ouvert .entete::before{opacity:0}
.entete-logo{position:relative;display:block;height:46px;width:228px;flex:none}
.entete-logo img{position:absolute;inset:0;height:100%;width:auto;transition:opacity .5s}
.logo-encre{opacity:0}
.entete.sur-clair .logo-encre{opacity:1}
.entete.sur-clair .logo-velin{opacity:0}
.menu-ouvert .entete .logo-velin{opacity:1}
.menu-ouvert .entete .logo-encre{opacity:0}
.entete-nav{display:flex;gap:34px;margin-left:auto}
.entete-nav a{font-size:14.5px;font-weight:500}
.entete-rdv{padding:13px 22px;font-size:14px}
.burger{display:none;position:relative;width:46px;height:46px;margin-left:auto}
.burger span{position:absolute;left:11px;right:11px;height:1.5px;background:currentColor;transition:transform .6s var(--ease),top .6s var(--ease)}
.burger span:first-child{top:18px}
.burger span:last-child{top:27px}
.menu-ouvert .burger span:first-child{top:22px;transform:rotate(45deg)}
.menu-ouvert .burger span:last-child{top:22px;transform:rotate(-45deg)}

/* ---------- Menu plein écran ---------- */
.menu{position:fixed;inset:0;z-index:70;background:var(--encre);color:var(--velin);display:grid;grid-template-columns:1fr 1.2fr;padding:calc(var(--entete) + 4vh) var(--marge) 40px;gap:6vw}
.menu[hidden]{display:none}
.menu-images{position:relative;overflow:hidden}
.menu-images img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .9s var(--ease),transform 1.4s var(--ease)}
.menu-images img.is-on{opacity:.9;transform:none}
.menu-liens{display:flex;flex-direction:column;justify-content:center}
.menu-liens a{display:flex;align-items:baseline;gap:22px;font:300 clamp(42px,6.4vw,92px)/1.12 var(--serif);border-bottom:1px solid var(--ligne-claire);padding:6px 0;transition:color .4s,padding .6s var(--ease)}
.menu-liens a:hover,.menu-liens a:focus-visible{color:var(--laiton-clair);padding-left:18px}
.menu-liens small{font:500 11px var(--gravure);letter-spacing:.2em;color:var(--laiton);min-width:26px}
.menu-pied{grid-column:1/-1;display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;font-size:14px;color:var(--gris-clair)}

/* ---------- Curseur, rail, grain ---------- */
.curseur{display:none}
@media (hover:hover) and (pointer:fine){
  .anim .curseur{display:block;position:fixed;left:0;top:0;z-index:250;pointer-events:none;mix-blend-mode:difference}
  .curseur-point{position:absolute;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff}
  .curseur-anneau{position:absolute;width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(255,255,255,.55);border-radius:50%;display:grid;place-items:center;transition:width .5s var(--ease),height .5s var(--ease),margin .5s var(--ease),background-color .4s,border-color .4s}
  .curseur-anneau em{font:500 10px var(--gravure);letter-spacing:.16em;font-style:normal;color:#000;opacity:0;transition:opacity .3s}
  .curseur.survol .curseur-anneau{width:64px;height:64px;margin:-32px 0 0 -32px;border-color:#fff}
  .curseur.libelle .curseur-anneau{width:86px;height:86px;margin:-43px 0 0 -43px;background:#fff}
  .curseur.libelle .curseur-anneau em{opacity:1}
  .curseur.libelle .curseur-point{opacity:0}
}
.rail{position:fixed;z-index:60;right:calc(var(--marge) * .38);top:50%;transform:translateY(-50%);height:210px;width:12px;mix-blend-mode:difference;color:#fff;display:none;opacity:0;transition:opacity .6s}
.rail.visible{opacity:1}
@media (min-width:1180px){.anim .rail{display:block}}
.rail::before,.rail-jauge{content:"";position:absolute;left:5px;top:0;width:1px;height:100%;background:rgba(255,255,255,.28)}
.rail-jauge{background:#fff;transform-origin:top;transform:scaleY(0)}
.rail ol{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between}
.rail li{position:relative;left:-12px;width:36px;text-align:right;font:500 9px/1 var(--gravure);letter-spacing:.1em;opacity:.45;transition:opacity .4s;transform:translateX(-10px)}
.rail li.is-on{opacity:1}
.grain{position:fixed;inset:-100%;z-index:90;pointer-events:none;opacity:.075;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 1.2 -0.1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.anim .grain{animation:grain 1.1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-7%,4%)}40%{transform:translate(5%,-6%)}60%{transform:translate(-4%,-3%)}80%{transform:translate(6%,5%)}100%{transform:translate(0,0)}}

/* ---------- 01 · Accueil ---------- */
.accueil{position:relative;height:100svh;min-height:640px;overflow:hidden}
.accueil-media{position:absolute;inset:0}
.accueil-diapos,.accueil-gl{position:absolute;inset:0;width:100%;height:100%}
.diapo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s var(--ease),transform 7s linear;transform:scale(1.06)}
.diapo.is-on{opacity:1;transform:scale(1)}
.accueil-gl{opacity:0;transition:opacity .8s}
.gl-pret .accueil-gl{opacity:1}
.voile{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,17,19,.66) 0%,rgba(18,17,19,.2) 24%,rgba(18,17,19,.34) 52%,rgba(18,17,19,.92) 100%),linear-gradient(90deg,rgba(18,17,19,.62) 0%,rgba(18,17,19,.18) 55%,rgba(18,17,19,0) 80%)}
.accueil-contenu{position:absolute;z-index:2;left:var(--marge);right:var(--marge);bottom:calc(120px + 5vh)}
.accueil-titre{font:300 clamp(58px,10.4vw,196px)/.9 var(--serif);letter-spacing:-.025em}
.accueil-sur{display:block;margin-bottom:30px;max-width:640px;text-shadow:0 1px 14px rgba(0,0,0,.7)}
.accueil-titre .ligne{display:block;overflow:hidden;padding-bottom:.07em;margin-bottom:-.07em}
.accueil-titre .ligne>span{display:inline-block}
.accueil-titre .l2{padding-left:.9em}
.accueil-titre em{color:var(--laiton-clair)}
.anim .accueil-titre .ligne>span{transform:translateY(112%)}
.anim:not(.pret) .accueil-titre .ligne>span{animation:secours 0s 3s forwards}
@keyframes secours{to{transform:none;opacity:1}}
.accueil-bas{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-top:40px}
.accueil-texte{max-width:500px;font-size:18px;color:var(--gris-clair)}
.accueil-actions{display:flex;align-items:center;gap:34px;flex:none}
.accueil-metiers{position:absolute;z-index:2;left:var(--marge);right:var(--marge);bottom:32px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border-top:1px solid var(--ligne-claire);padding-top:16px}
.accueil-metiers li{position:relative;display:flex;gap:14px;align-items:baseline;opacity:.45;transition:opacity .6s}
.accueil-metiers .t{text-shadow:0 1px 12px rgba(0,0,0,.5)}
.accueil-metiers li.is-on{opacity:1}
.accueil-metiers .n{font:500 10px var(--gravure);letter-spacing:.18em;color:var(--laiton)}
.accueil-metiers .t{font-size:14px;font-weight:500}
.accueil-metiers i{position:absolute;left:0;top:-17px;height:1px;width:100%;background:var(--laiton);transform-origin:left;transform:scaleX(0)}
.accueil-defiler{position:absolute;z-index:2;right:calc(var(--marge) * .4);top:50%;transform:translateY(-50%);writing-mode:vertical-rl;display:flex;align-items:center;gap:16px;font:500 10px var(--gravure);letter-spacing:.24em;color:var(--gris-clair)}
.accueil-defiler i{width:1px;height:70px;background:linear-gradient(var(--laiton),transparent);transform-origin:top;animation:defiler 2.4s var(--ease) infinite}
@keyframes defiler{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.calme .accueil-defiler i{animation:none}

/* ---------- 02 · Manifeste ---------- */
.manifeste{padding:24vh 0 20vh}
.manifeste-texte{font:300 clamp(32px,4.4vw,74px)/1.13 var(--serif);letter-spacing:-.01em;max-width:1280px;margin-top:30px}
.manifeste-texte .mot{opacity:.16}
.calme .manifeste-texte .mot{opacity:1}
.manifeste-dates{display:grid;grid-template-columns:1fr 1.15fr;gap:7vw;margin-top:20vh;align-items:start}
.manifeste-h2{font-size:clamp(38px,4.2vw,70px);margin-top:0}
.dates li{display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:30px;padding:30px 0;border-top:1px solid var(--ligne);align-items:baseline}
.dates li:last-child{border-bottom:1px solid var(--ligne)}
.dates b{font:300 clamp(54px,5vw,82px)/1 var(--serif);color:var(--laiton-p);font-variant-numeric:lining-nums tabular-nums;font-feature-settings:'lnum','tnum'}
.dates p{font-size:17px;color:#3F3B35;max-width:440px}

/* ---------- 03 · Professions ---------- */
.metiers{position:relative;overflow:hidden}
.metiers-piste{display:flex;align-items:stretch;width:max-content;will-change:transform;padding-right:4vw}
.metier{flex:none;width:88vw;height:100vh;min-height:640px;display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center;padding:calc(var(--entete) + 4vh) 5vw 8vh}
.metier-intro{width:62vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-left:var(--marge);gap:0}
.metier-intro h2{font-size:clamp(52px,7vw,124px)}
.metier-intro-texte{font-size:19px;color:var(--gris-clair);max-width:480px;margin-top:34px}
.metier-indice{display:flex;align-items:center;gap:18px;margin-top:9vh;font:500 10.5px var(--gravure);letter-spacing:.22em;color:var(--laiton)}
.metier-indice i{width:90px;height:1px;background:var(--laiton);position:relative}
.metier-indice i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid var(--laiton);border-right:1px solid var(--laiton);transform:rotate(45deg)}
.metier-img{height:min(74vh,760px);width:100%}
.metier-img .masque{position:relative}
.metier-img img{width:100%;height:100%;object-fit:cover}
.anim .metier-img img{transform:scale(1.18)}
.metier-texte{max-width:520px}
.metier-n{display:flex;align-items:center;gap:16px;font:500 11px var(--gravure);letter-spacing:.2em;color:var(--laiton)}
.metier-n::after{content:"";width:60px;height:1px;background:var(--laiton)}
.metier-texte h3{font:300 clamp(52px,5.8vw,108px)/.95 var(--serif);letter-spacing:-.02em;margin:22px 0 14px}
.metier-texte .lab{margin-bottom:28px}
.metier-texte>p:not(.lab):not(.metier-mots){font-size:17.5px;color:var(--gris-clair)}
.metier-mots{margin-top:30px;padding-top:18px;border-top:1px solid var(--ligne-claire);font-size:13.5px;letter-spacing:.04em;color:var(--laiton-clair)}

/* ---------- 04 · Plongée ---------- */
.spirale-scene{position:relative;height:100vh;min-height:620px;overflow:hidden;display:grid;place-items:center;background:var(--encre)}
.spirale-img{position:absolute;inset:-12%;will-change:transform}
.spirale-img img{width:100%;height:100%;object-fit:cover;filter:brightness(.5) contrast(1.05)}
.spirale-texte{position:relative;z-index:2;text-align:center;padding:0 var(--marge)}
.spirale-titre{font:300 clamp(52px,8.6vw,156px)/1 var(--serif);letter-spacing:-.02em;margin-top:26px}
.spirale-titre span{display:block}
.spirale-titre em{color:var(--laiton-clair)}
.spirale-sous{font-size:19px;color:var(--gris-clair);margin-top:34px}
.spirale::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,rgba(18,17,19,0) 30%,rgba(18,17,19,.75) 100%)}
.spirale{position:relative}

/* ---------- 05 · Acte I · le site ---------- */
.acte-site-scene{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.24fr);gap:5vw;align-items:center;min-height:100vh;padding:calc(var(--entete) + 3vh) var(--marge) 5vh}
.acte-site-gauche h2{font-size:clamp(44px,5vw,88px)}
.etapes-site{margin-top:5vh;counter-reset:e}
.etapes-site li{display:grid;grid-template-columns:48px 1fr;padding:15px 0;border-top:1px solid var(--ligne);transition:opacity .5s}
.etapes-site li:last-child{border-bottom:1px solid var(--ligne)}
.etapes-site li>span{font:500 10.5px/2.6 var(--gravure);letter-spacing:.14em;color:var(--laiton-p)}
.etapes-site h3{font:400 27px/1.2 var(--serif)}
.etapes-site p{font-size:15px;color:#3F3B35;max-width:430px;overflow:hidden;transition:max-height .7s var(--ease),opacity .5s,margin .5s}
.anim .epingle-site .etapes-site li{opacity:.32}
.anim .epingle-site .etapes-site li.is-on{opacity:1}
.anim .epingle-site .etapes-site li p{max-height:0;opacity:0}
.anim .epingle-site .etapes-site li.is-on p{max-height:90px;opacity:1;margin-top:4px}
.acte-site-droite{position:relative;height:min(76vh,760px);min-height:520px}
.navigateur{position:relative;height:100%;background:#fff;border:1px solid rgba(18,17,19,.12);border-radius:12px;overflow:hidden;box-shadow:0 60px 120px -50px rgba(18,17,19,.55),0 20px 40px -30px rgba(18,17,19,.35)}
.nav-barre{height:42px;background:#ECE6DB;display:flex;align-items:center;gap:7px;padding:0 16px;border-bottom:1px solid rgba(18,17,19,.08)}
.nav-barre i{width:10px;height:10px;border-radius:50%;background:#D3CABA}
.nav-url{margin-left:18px;flex:1;max-width:340px;background:#fff;border-radius:20px;padding:5px 16px;font-size:12px;color:#5b574f}
.nav-ecran{position:relative;height:calc(100% - 42px);overflow:hidden;background:var(--papier)}
.maq{position:absolute;left:0;right:0;top:0;will-change:transform;font-size:13px;color:var(--encre)}
.maq small{display:block;font:500 8.5px var(--gravure);letter-spacing:.2em;text-transform:uppercase;color:var(--laiton-p);margin-bottom:10px}
.maq em{font-style:italic}
.maq-entete{display:flex;align-items:center;gap:22px;padding:14px 24px;border-bottom:1px solid var(--ligne);background:var(--papier);font-size:11px;color:#4a463f}
.maq-entete b{font:500 17px var(--serif);color:var(--encre);margin-right:auto}
.maq-entete b em{font-weight:400;color:var(--vert)}
.maq-bouton{display:inline-block;background:var(--vert);color:var(--velin);padding:8px 14px;font-size:10.5px;font-weight:500;letter-spacing:.04em}
.maq-accueil{position:relative;height:320px;overflow:hidden}
.maq-accueil img{width:100%;height:100%;object-fit:cover}
.maq-accueil::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(21,42,36,.86),rgba(21,42,36,0) 70%)}
.maq-accueil div{position:absolute;z-index:1;left:26px;bottom:24px;color:var(--velin)}
.maq-accueil small{color:var(--laiton-clair)}
.maq-accueil strong{display:block;font:400 34px/1.02 var(--serif);max-width:380px}
.maq-bloc{padding:26px 26px}
.maq-office p{font:400 19px/1.35 var(--serif);max-width:460px}
.maq-associes{background:#F3EDE2}
.maq-portraits{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.maq-portraits img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 20%}
.maq-portraits figcaption{font-size:10.5px;line-height:1.35;margin-top:8px;color:#4a463f}
.maq-portraits i{color:var(--laiton-p)}
.maq-expertises ul{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
.maq-expertises li{padding:9px 0;border-top:1px solid var(--ligne);font:400 18px var(--serif)}
.maq-rdv{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--vert);color:var(--velin);margin:6px 26px 26px}
.maq-rdv strong{font:400 22px var(--serif)}
.maq-rdv .maq-bouton{background:var(--velin);color:var(--vert)}
.serp{position:absolute;inset:0;background:#fff;padding:38px 40px;opacity:0;visibility:hidden;font-family:Arial,Helvetica,sans-serif}
.serp-recherche{display:flex;align-items:center;gap:14px;height:46px;border:1px solid #dfe1e5;border-radius:24px;padding:0 20px;box-shadow:0 1px 6px rgba(32,33,36,.18);max-width:560px;font-size:16px;color:#202124}
.serp-loupe{position:relative;width:14px;height:14px;border:2px solid #9aa0a6;border-radius:50%;flex:none}
.serp-loupe::after{content:"";position:absolute;width:7px;height:2px;background:#9aa0a6;right:-7px;bottom:-3px;transform:rotate(45deg)}
.serp-caret{width:1.5px;height:20px;background:#202124;animation:clignote 1s steps(1) infinite;margin-left:-12px}
@keyframes clignote{50%{opacity:0}}
.serp-resultat{position:relative;margin-top:34px;max-width:560px;padding:18px 20px;opacity:0}
.serp-resultat::before,.serp-resultat::after{content:"";position:absolute;width:18px;height:18px;border:1.5px solid var(--laiton)}
.serp-resultat::before{top:0;left:0;border-right:0;border-bottom:0}
.serp-resultat::after{bottom:0;right:0;border-left:0;border-top:0}
.serp-resultat small{display:block;font-size:12.5px;color:#202124}
.serp-resultat b{display:block;font-size:20px;font-weight:400;color:#1a0dab;margin:4px 0 5px}
.serp-resultat p{font-size:14px;line-height:1.5;color:#4d5156}
.serp-resultat span{display:block;margin-top:8px;font-size:13.5px;color:#1a0dab}
.serp-info{margin:18px 0 0 4px;font-size:13px;color:#70757a}
.serp-autres{margin-top:26px;max-width:560px;display:grid;gap:26px}
.serp-autres div{display:grid;gap:8px;padding:0 20px}
.serp-autres i{display:block;height:10px;border-radius:5px;background:#eceef1}
.serp-autres i:nth-child(1){width:34%;height:8px}
.serp-autres i:nth-child(2){width:72%;height:14px;background:#e3e6f3}
.serp-autres i:nth-child(3){width:92%}
.serp-autres i:nth-child(4){width:64%}
.telephone{position:absolute;right:-3.5vw;bottom:-7vh;width:176px;height:356px;border-radius:30px;background:#141315;padding:9px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);border:1px solid #2a292c}
.tel-ecran{height:100%;border-radius:22px;overflow:hidden;background:var(--papier);display:flex;flex-direction:column;gap:6px;text-align:center;align-items:center}
.tel-ecran img{width:100%;height:56%;object-fit:cover}
.tel-ecran b{font:500 19px var(--serif);margin-top:10px}
.tel-ecran em{font:italic 13px var(--serif);color:var(--laiton-p)}
.tel-ecran .maq-bouton{margin-top:8px}

/* ---------- 06 · Acte II · la parole ---------- */
.acte-parole{padding:22vh 0 20vh;overflow:hidden}
.acte-parole-grille{display:grid;grid-template-columns:1.1fr 1fr;gap:6vw;align-items:end}
.acte-parole h2{font-size:clamp(44px,5vw,88px)}
.livrables{display:grid;grid-template-columns:1fr 1fr;gap:0 34px}
.livrables li{display:flex;align-items:baseline;gap:16px;padding:16px 0;border-top:1px solid var(--ligne-claire)}
.livrables b{font:300 58px/1 var(--serif);color:var(--laiton);min-width:36px;font-variant-numeric:lining-nums;font-feature-settings:'lnum'}
.livrables span{font-size:14.5px;color:var(--gris-clair)}
.texte-loi{margin-top:44px;padding-left:24px;border-left:1px solid var(--laiton);max-width:540px}
.texte-loi p{font:italic 300 24px/1.35 var(--serif);color:var(--velin)}
.texte-loi cite{display:block;font-style:normal;font-size:13px;color:var(--pierre-clair);margin-top:14px}
.acte-parole-visuel{position:relative;margin-top:9vh}
.parole-mois{display:grid;grid-template-columns:1fr minmax(0,520px);gap:6vw;align-items:center;margin-top:8vh}
.parole-mois .texte-loi{margin-top:0}
.parole-mois .calendrier{margin:0}
.eventail{position:relative;height:460px;perspective:1800px}
.post{position:absolute;left:50%;top:50%;width:230px;height:288px;margin:-144px 0 0 -115px;background:var(--nuit);border:1px solid var(--ligne-claire);padding:22px;display:flex;flex-direction:column;justify-content:space-between;transform-origin:50% 130%;box-shadow:0 40px 60px -30px rgba(0,0,0,.7);background-size:cover;background-position:center}
.post header{display:flex;align-items:center;justify-content:space-between}
.post header img{width:34px}
.post header span{font:500 8.5px var(--gravure);letter-spacing:.2em;text-transform:uppercase;color:var(--laiton)}
.post strong{font:300 26px/1.08 var(--serif);position:relative}
.post{transition:translate .6s var(--ease)}
.post:hover{translate:0 -18px;z-index:7}
.post strong em{color:var(--laiton-clair)}
.post-img{background-color:var(--nuit)}
.post-img::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,17,19,.92) 20%,rgba(18,17,19,.2))}
.post-img header{position:relative}
.post:nth-child(1){transform:translateX(-215%) rotate(-12deg)}
.post:nth-child(2){transform:translateX(-129%) rotate(-7deg)}
.post:nth-child(3){transform:translateX(-43%) rotate(-2deg)}
.post:nth-child(4){transform:translateX(43%) rotate(2deg)}
.post:nth-child(5){transform:translateX(129%) rotate(7deg)}
.post:nth-child(6){transform:translateX(215%) rotate(12deg)}
.calendrier{margin:40px auto 0;max-width:520px;background:var(--nuit);border:1px solid var(--ligne-claire);padding:22px 24px}
.cal-tete{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.cal-legende{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--pierre-clair)}
.cal-legende i{width:8px;height:8px;border-radius:50%;background:var(--laiton);margin-left:10px}
.cal-legende i.n{background:var(--cire);box-shadow:0 0 0 1px var(--laiton-clair)}
.cal-grille{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal-grille span{position:relative;aspect-ratio:1.25;border:1px solid rgba(244,239,230,.07);font-size:10px;color:var(--pierre-clair);padding:4px 6px;transition:background-color .6s,border-color .6s,color .6s}
.cal-grille span.jour{font:500 8.5px var(--gravure);letter-spacing:.1em;border:0;aspect-ratio:auto;text-align:center;padding:0 0 4px}
.cal-grille span.vide{border-color:transparent}
.cal-grille span::after{content:"";position:absolute;right:6px;bottom:6px;width:7px;height:7px;border-radius:50%;background:var(--laiton);transform:scale(0);transition:transform .6s var(--ease)}
.cal-grille span.nl::after{background:var(--cire);box-shadow:0 0 0 1px var(--laiton-clair)}
.cal-grille span.on{background:rgba(184,151,90,.12);border-color:rgba(184,151,90,.45);color:var(--velin)}
.cal-grille span.on::after{transform:scale(1)}

/* ---------- 07 · Acte III · le lien ---------- */
.acte-lien{padding:22vh 0 18vh;overflow:hidden}
.acte-lien-tete{display:grid;grid-template-columns:1.1fr 1fr;gap:6vw;align-items:end}
.acte-lien h2{font-size:clamp(44px,5.4vw,96px)}
.frise{margin-top:12vh}
.frise-onglets{display:flex;flex-wrap:wrap;gap:8px}
.frise-onglets button{font:500 10.5px var(--gravure);letter-spacing:.16em;text-transform:uppercase;padding:13px 18px;border:1px solid var(--ligne);transition:background-color .4s,color .4s,border-color .4s}
.frise-onglets button:hover{border-color:var(--encre)}
.frise-onglets button[aria-selected="true"]{background:var(--encre);color:var(--velin);border-color:var(--encre)}
.frise-ligne{position:relative;margin-top:60px}
.frise-trait{position:absolute;left:0;top:0;width:100%;height:40px;overflow:visible}
.frise-trait path{fill:none;stroke:var(--encre);stroke-width:1.2}
.frise-lettres{position:absolute;left:0;right:0;top:15px;height:10px;background:radial-gradient(circle,var(--laiton) 2px,transparent 2.6px) 0 50%/22px 10px repeat-x;opacity:.9}
.frise-jalons{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:62px}
.frise-jalons li{position:relative}
.frise-jalons li::before{content:"";position:absolute;left:0;top:-54px;width:17px;height:17px;border-radius:50%;background:var(--velin);border:1.5px solid var(--encre);box-shadow:0 0 0 6px var(--velin)}
.frise-jalons b{display:block;font:500 10.5px var(--gravure);letter-spacing:.2em;color:var(--laiton-p)}
.frise-jalons span{display:block;font:400 clamp(22px,2vw,30px)/1.15 var(--serif);margin-top:10px;max-width:240px}
.frise-legende{display:flex;align-items:center;gap:12px;margin-top:40px;font-size:14px;color:var(--pierre)}
.frise-legende i{width:7px;height:7px;border-radius:50%;background:var(--laiton);flex:none}
.acte-lien-images{display:grid;grid-template-columns:1.55fr 1fr;gap:4.5vw;align-items:end;margin-top:14vh}
.acte-lien-images figure{overflow:visible}
.acte-lien-images figure:first-child{height:min(68vh,720px)}
.acte-lien-images figure:last-child{height:min(46vh,480px);margin-bottom:10vh}
.acte-lien-images .masque img{width:100%;height:112%;object-fit:cover}

/* ---------- 08 · Le cadre ---------- */
.cadre{position:relative;overflow:hidden;padding:24vh 0 18vh}
.cadre-fond{position:absolute;inset:-15% 0;pointer-events:none}
.cadre-fond img{width:100%;height:100%;object-fit:cover;opacity:.2;filter:grayscale(.35)}
.cadre-fond::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--vert) 0%,rgba(30,58,50,.6) 30%,rgba(30,58,50,.75) 70%,var(--vert) 100%)}
.cadre .conteneur{position:relative}
.cadre-tete{max-width:1000px}
.cadre h2{font-size:clamp(46px,6vw,104px)}
.textes{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:11vh}
.texte{display:flex;flex-direction:column;background:rgba(18,17,19,.3);border:1px solid var(--ligne-claire);padding:32px 28px;min-height:390px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.texte h3{font:300 36px/1.05 var(--serif);margin-bottom:18px}
.texte>p:not(.refs){font-size:15.5px;color:var(--gris-clair)}
.refs{margin-top:auto;padding-top:20px;border-top:1px solid rgba(184,151,90,.35);font-size:12.5px;line-height:1.55;color:var(--laiton-clair)}
.texte .refs{margin-top:auto}
.texte>p:not(.refs){margin-bottom:26px}
.engagements{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:9vh}
.engagements li{padding-top:18px;border-top:1px solid rgba(184,151,90,.55);font:400 23px/1.25 var(--serif)}
.engagements span{display:block;font:500 10.5px var(--gravure);letter-spacing:.2em;color:var(--laiton);margin-bottom:10px}
.cadre-note{margin-top:48px;font-size:13px;color:var(--pierre-clair)}

/* ---------- 09 · Offres ---------- */
.offres{padding:22vh 0 20vh}
.offres-tete{display:grid;grid-template-columns:1.1fr 1fr;gap:6vw;align-items:end}
.cartes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:11vh;align-items:start}
.carte{position:relative;display:flex;flex-direction:column;background:var(--papier);border:1px solid var(--ligne);padding:40px 34px 34px;overflow:hidden;transition:box-shadow .8s var(--ease)}
.carte:hover{box-shadow:0 50px 90px -60px rgba(18,17,19,.5)}
.carte::before,.carte::after{content:"";position:absolute;width:22px;height:22px;border:1.5px solid var(--laiton);transition:transform .7s var(--ease),opacity .5s;opacity:0}
.carte::before{top:14px;left:14px;border-right:0;border-bottom:0;transform:translate(-8px,-8px)}
.carte::after{bottom:14px;right:14px;border-left:0;border-top:0;transform:translate(8px,8px)}
.carte:hover::before,.carte:hover::after{opacity:1;transform:none}
.carte-halo{position:absolute;left:var(--x,50%);top:var(--y,0);width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(184,151,90,.2),rgba(184,151,90,0) 62%);transform:translate(-50%,-50%);opacity:0;transition:opacity .6s;pointer-events:none}
.carte:hover .carte-halo{opacity:1}
.carte>*:not(.carte-halo){position:relative}
.carte header h3{font:400 clamp(32px,2.6vw,42px)/1.05 var(--serif);margin:14px 0 6px}
.carte header p{font-size:14.5px;color:var(--pierre)}
.prix{margin:30px 0 26px;padding:22px 0;border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne)}
.prix small{display:block;font:500 10px var(--gravure);letter-spacing:.2em;text-transform:uppercase;color:var(--laiton-p)}
.prix b{display:block;font:300 clamp(54px,4.6vw,76px)/1.05 var(--serif);letter-spacing:-.02em;margin:6px 0 4px;white-space:nowrap;font-feature-settings:'lnum'}
.prix span{font-size:13px;color:var(--pierre)}
.carte ul li{position:relative;padding:9px 0 9px 24px;border-bottom:1px dashed var(--ligne);font-size:14.5px;line-height:1.45}
.carte ul li::before{content:"";position:absolute;left:0;top:18px;width:11px;height:1.5px;background:var(--laiton)}
.carte-note{font-size:12.5px;color:var(--pierre);margin:18px 0 28px}
.carte .btn{margin-top:auto;width:100%}
.carte-vedette{background:var(--encre);color:var(--velin);border-color:var(--encre)}
.carte-vedette .lab{color:var(--laiton)}
.carte-vedette header p,.carte-vedette .prix span,.carte-vedette .carte-note{color:var(--pierre-clair)}
.carte-vedette .prix,.carte-vedette ul li{border-color:var(--ligne-claire)}
.carte-vedette .prix small{color:var(--laiton)}
.carte-vedette .btn-plein{background:var(--velin);color:var(--encre)}
.carte-vedette .btn-plein:hover{background:var(--laiton-clair)}

/* ---------- 10 · Méthode ---------- */
.methode{padding:22vh 0 16vh}
.methode-grille{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;align-items:start}
.methode-gauche{position:sticky;top:calc(var(--entete) + 6vh)}
.methode-gauche h2{font-size:clamp(44px,4.8vw,84px)}
.methode-img{height:min(52vh,540px);margin-top:7vh;width:78%}
.methode-img .masque img{height:112%;width:100%;object-fit:cover;object-position:center 35%}
.methode-etapes{position:relative;padding-left:84px;padding-top:4vh}
.methode-filet{position:absolute;left:24px;top:4vh;bottom:9vh;width:1px;background:var(--ligne-claire)}
.methode-filet i{position:absolute;inset:0;background:var(--laiton);transform-origin:top;transform:scaleY(0)}
.calme .methode-filet i{transform:none}
.methode-etapes li{position:relative;padding-bottom:10vh;transition:opacity .6s}
.anim .methode-etapes li{opacity:.3}
.anim .methode-etapes li.is-on{opacity:1}
.methode-etapes .n{position:absolute;left:-84px;top:0;width:49px;height:49px;border-radius:50%;border:1px solid var(--laiton);background:var(--encre);display:grid;place-items:center;font:500 11px var(--gravure);letter-spacing:.1em;color:var(--laiton)}
.methode-etapes h3{font:300 clamp(34px,3vw,48px)/1.05 var(--serif)}
.methode-etapes p{font-size:17px;color:var(--gris-clair);max-width:470px;margin-top:12px}
.methode-suite .n{background:var(--laiton);color:var(--encre);font-size:18px}

/* ---------- 11 · Questions ---------- */
.questions{padding:22vh 0 20vh}
.questions-grille{display:grid;grid-template-columns:.8fr 1.2fr;gap:6vw;align-items:start}
.questions h2{font-size:clamp(44px,5vw,88px);position:sticky;top:calc(var(--entete) + 6vh)}
.faq-item{border-top:1px solid var(--ligne)}
.faq-item:last-child{border-bottom:1px solid var(--ligne)}
.faq-item h3{font:inherit}
.faq-item button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:30px;padding:26px 0;text-align:left;font:400 clamp(21px,1.7vw,26px)/1.25 var(--serif);transition:color .3s}
.faq-item button:hover{color:var(--laiton-p)}
.faq-item button i{position:relative;flex:none;width:22px;height:22px}
.faq-item button i::before,.faq-item button i::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:var(--laiton-p);transition:transform .6s var(--ease)}
.faq-item button i::after{transform:rotate(90deg)}
.faq-item button[aria-expanded="true"] i::after{transform:rotate(0)}
.faq-item button[aria-expanded="true"] i::before{transform:rotate(180deg)}
.faq-rep{height:0;overflow:hidden;transition:height .7s var(--ease)}
.faq-rep p{padding:0 70px 30px 0;font-size:16.5px;color:#3F3B35;max-width:760px}
.no-js .faq-rep{height:auto}

/* ---------- 12 · Rendez-vous ---------- */
.rdv-scene{position:relative;height:100vh;min-height:700px;overflow:hidden;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#23201d 0%,var(--encre) 70%)}
.rdv-porte{position:absolute;inset:0;z-index:3;display:flex;perspective:2200px;pointer-events:none}
.rdv-invite{position:absolute;z-index:4;left:50%;bottom:10vh;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--velin);text-shadow:0 2px 18px rgba(0,0,0,.7);pointer-events:none;text-align:center}
.rdv-invite strong{font:300 clamp(34px,3.4vw,54px)/1 var(--serif)}
.rdv-invite strong em{color:var(--laiton-clair)}
.rdv-invite i{width:1px;height:54px;background:linear-gradient(var(--laiton),transparent);animation:defiler 2.4s var(--ease) infinite}
.calme .rdv-invite,.no-js .rdv-invite{display:none}
.battant{position:relative;width:50%;height:100%;overflow:hidden;will-change:transform}
.battant img{position:absolute;top:0;width:200%;max-width:none;height:100%;object-fit:cover}
.battant.gauche img{left:0}
.battant.droit img{right:0}
.battant.gauche{transform-origin:left center}
.battant.droit{transform-origin:right center}
.battant::after{content:"";position:absolute;top:0;bottom:0;width:120px}
.battant.gauche::after{right:0;background:linear-gradient(90deg,transparent,rgba(0,0,0,.45))}
.battant.droit::after{left:0;background:linear-gradient(270deg,transparent,rgba(0,0,0,.45))}
.calme .rdv-porte,.no-js .rdv-porte{z-index:0;opacity:.16}
.rdv-contenu{position:relative;z-index:2;text-align:center;max-width:900px;padding:0 var(--marge)}
.rdv-titre{font:300 clamp(60px,9.6vw,172px)/.9 var(--serif);letter-spacing:-.025em;margin-top:24px}
.rdv-titre span{display:block}
.rdv-titre em{display:inline-block}
.rdv-titre em{color:var(--laiton-clair)}
.rdv-texte{font-size:19px;color:var(--gris-clair);max-width:560px;margin:34px auto 0}
.rdv-faits{display:flex;justify-content:center;gap:44px;margin:40px 0 50px;flex-wrap:wrap}
.rdv-faits li{font-size:14px;color:var(--pierre-clair)}
.rdv-faits b{display:block;font:300 32px/1.1 var(--serif);color:var(--laiton-clair);font-feature-settings:'lnum'}
.rdv-alt{margin-top:34px;font-size:14.5px;color:var(--pierre-clair)}
.rdv-alt a{color:var(--velin);margin-left:6px}

/* ---------- Pied de page ---------- */
.pied{position:relative;overflow:hidden;padding:15vh 0 36px}
.pied .conteneur{position:relative;z-index:1}
.pied-haut{display:flex;justify-content:space-between;align-items:end;gap:30px;flex-wrap:wrap;padding-bottom:56px;border-bottom:1px solid var(--ligne-claire)}
.pied-logo{height:64px;width:auto}
.pied-signature{font:300 clamp(34px,3.8vw,62px)/1 var(--serif)}
.pied-signature em{color:var(--laiton-clair)}
.pied-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:54px 0}
.pied-grille .lab{margin-bottom:16px}
.pied-grille a,.pied-grille span{display:block;font-size:14.5px;line-height:2.1;color:var(--gris-clair)}
.pied-grille a:hover{color:var(--laiton-clair)}
.pied-bas{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:24px;border-top:1px solid var(--ligne-claire);font-size:12.5px;color:var(--pierre-clair)}
.pied-filigrane{position:absolute;right:-6vw;bottom:-9vw;width:44vw;opacity:.035;pointer-events:none}

/* Bandeau cookies (information, non bloquant) */
.bandeau{position:fixed;z-index:85;left:var(--marge);bottom:28px;width:min(440px,calc(100vw - 40px));padding:30px 30px 26px;background:rgba(18,17,19,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--ligne-claire);color:var(--velin);box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
.bandeau[hidden]{display:none}
.bandeau-cadre::before,.bandeau-cadre::after{content:"";position:absolute;width:18px;height:18px;border:1.5px solid var(--laiton)}
.bandeau-cadre::before{top:-7px;left:-7px;border-right:0;border-bottom:0}
.bandeau-cadre::after{bottom:-7px;right:-7px;border-left:0;border-top:0}
.bandeau-titre{font:300 30px/1.08 var(--serif);margin:12px 0 12px}
.bandeau-titre em{font-style:italic;color:var(--laiton-clair)}
.bandeau-texte{font-size:14px;line-height:1.6;color:var(--gris-clair)}
.bandeau-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:22px}
.bandeau-actions .btn{padding:14px 24px;font-size:14px}
.bandeau-actions .btn-cadre:hover{background:var(--velin);color:var(--encre);border-color:var(--velin)}
.bandeau-actions .lien-trace{font-size:13.5px}
.pied-mouvement{font-size:12.5px;color:var(--pierre-clair);border-bottom:1px solid var(--ligne-claire);padding-bottom:2px;transition:color .3s,border-color .3s}
.pied-mouvement:hover{color:var(--laiton-clair);border-color:var(--laiton)}

/* Barre de rendez-vous (téléphone) */
.barre-rdv{display:none}

/* ---------- Tablette ---------- */
@media (max-width:1180px){
  .entete-nav{display:none}
  .entete-rdv{margin-left:auto}
  .burger{display:block;margin-left:0}
  .textes{grid-template-columns:1fr 1fr}
  .texte{min-height:320px}
  .engagements{grid-template-columns:1fr 1fr}
  .cartes{grid-template-columns:1fr 1fr}
  .cartes .carte-vedette{grid-column:1/-1}
  .carte-vedette ul{columns:2;column-gap:34px}
  .carte-vedette ul li{break-inside:avoid}
  .telephone{right:-1vw}
  .post:nth-child(1){transform:translateX(-133%) rotate(-12deg)}
  .post:nth-child(2){transform:translateX(-80%) rotate(-7deg)}
  .post:nth-child(3){transform:translateX(-27%) rotate(-2deg)}
  .post:nth-child(4){transform:translateX(27%) rotate(2deg)}
  .post:nth-child(5){transform:translateX(80%) rotate(7deg)}
  .post:nth-child(6){transform:translateX(133%) rotate(12deg)}
}

/* ---------- Téléphone ---------- */
@media (max-width:900px){
  :root{--entete:68px}
  body{font-size:16px}
  .entete{gap:16px}
  .entete-logo{height:38px;width:188px}
  .entete-rdv{display:none}
  .burger{margin-left:auto}
  .menu{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;gap:28px}
  .menu-images{height:26vh}
  .rail{display:none!important}
  .accueil{min-height:600px}
  .accueil-contenu{bottom:calc(96px + 4vh)}
  .voile{background:linear-gradient(180deg,rgba(18,17,19,.62) 0%,rgba(18,17,19,.42) 30%,rgba(18,17,19,.62) 58%,rgba(18,17,19,.95) 100%)}
  .accueil-titre{font-size:clamp(50px,15vw,90px)}
  .accueil-titre .l2{padding-left:0}
  .accueil-sur{font-size:10px;letter-spacing:.18em;margin-bottom:22px;max-width:320px}
  .accueil-bas{flex-direction:column;align-items:start;gap:26px;margin-top:26px}
  .accueil-texte{font-size:16px}
  .accueil-actions{gap:24px;flex-wrap:wrap}
  .accueil-metiers{grid-template-columns:1fr 1fr;gap:10px 18px;bottom:22px}
  .accueil-metiers .t{font-size:12.5px}
  .accueil-metiers i{top:-11px}
  .accueil-metiers li:nth-child(n+3) i{display:none}
  .accueil-defiler{display:none}
  .manifeste{padding:15vh 0 13vh}
  .manifeste-dates{grid-template-columns:1fr;margin-top:12vh;gap:40px}
  .dates li{grid-template-columns:1fr;gap:8px;padding:24px 0}
  .metiers-piste{display:block;width:auto}
  .metier,.metier-intro{width:auto;height:auto;min-height:0;grid-template-columns:1fr;gap:36px;padding:12vh var(--marge) 0}
  .metier-intro{padding-top:15vh}
  .metier:last-child{padding-bottom:14vh}
  .metier-img{height:62vh}
  .metier-indice{display:none}
  .spirale-scene{height:100svh}
  .acte-site-scene{grid-template-columns:1fr;min-height:0;padding:15vh var(--marge) 14vh;gap:9vh}
  .acte-site-droite{height:560px;min-height:0}
  .maq{animation:maq-defile 26s var(--ease) infinite alternate}
  .anim .maq{animation:maq-defile 26s var(--ease) infinite alternate}
  @keyframes maq-defile{0%,8%{transform:translateY(0)}92%,100%{transform:translateY(calc(-100% + 518px))}}
  .maq-accueil{height:240px}
  .maq-accueil strong{font-size:27px}
  .maq-entete span:not(.maq-bouton){display:none}
  .serp,.telephone{display:none}
  .acte-parole{padding:15vh 0}
  .acte-parole-grille{grid-template-columns:1fr;gap:6vh}
  .acte-parole-visuel{margin-top:4vh}
  .eventail{height:380px;transform:scale(.72);margin:-40px 0}
  .parole-mois{grid-template-columns:1fr;gap:6vh;margin-top:4vh}
  .post:nth-child(1){transform:translateX(-64%) rotate(-12deg)}
  .post:nth-child(2){transform:translateX(-39%) rotate(-7deg)}
  .post:nth-child(3){transform:translateX(-13%) rotate(-2deg)}
  .post:nth-child(4){transform:translateX(13%) rotate(2deg)}
  .post:nth-child(5){transform:translateX(39%) rotate(7deg)}
  .post:nth-child(6){transform:translateX(64%) rotate(12deg)}
  .livrables{grid-template-columns:1fr 1fr;gap:0 20px}
  .livrables b{font-size:46px}
  .acte-lien{padding:15vh 0}
  .acte-lien-tete{grid-template-columns:1fr;gap:10px}
  .frise-trait,.frise-lettres{display:none}
  .frise-jalons{grid-template-columns:1fr;gap:0;padding:28px 0 0 34px;border-left:1px solid var(--encre);margin-left:8px}
  .frise-jalons li{padding:0 0 30px}
  .frise-jalons li::before{left:-43px;top:2px}
  .acte-lien-images{grid-template-columns:1fr;gap:8vh}
  .acte-lien-images figure:first-child{height:48vh}
  .acte-lien-images figure:last-child{height:40vh;margin:0 0 0 18%}
  .cadre{padding:15vh 0 13vh}
  .textes,.engagements{grid-template-columns:1fr}
  .texte{min-height:0}
  .offres{padding:15vh 0}
  .offres-tete{grid-template-columns:1fr;gap:10px}
  .cartes{grid-template-columns:1fr}
  .carte-vedette ul{columns:1}
  .carte{padding:34px 24px 28px}
  .methode{padding:15vh 0 8vh}
  .methode-grille{grid-template-columns:1fr;gap:8vh}
  .methode-gauche{position:static}
  .methode-img{width:100%;height:44vh}
  .methode-etapes{padding-left:68px}
  .methode-etapes .n{left:-68px;width:44px;height:44px}
  .methode-filet{left:22px}
  .methode-etapes li{padding-bottom:7vh}
  .questions{padding:15vh 0}
  .questions-grille{grid-template-columns:1fr;gap:40px}
  .questions h2{position:static}
  .faq-rep p{padding-right:0}
  .rdv-scene{height:100svh;min-height:640px}
  .rdv-faits{gap:26px}
  .btn-grand{padding:20px 30px;font-size:16px}
  .pied-grille{grid-template-columns:1fr 1fr}
  .pied{padding-bottom:110px}
  .barre-rdv{display:flex;position:fixed;z-index:65;left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateY(160%);transition:transform .7s var(--ease);box-shadow:0 20px 40px -12px rgba(0,0,0,.5)}
  .barre-rdv.visible{transform:none}
  .bandeau-ouvert .barre-rdv{transform:translateY(160%)}
  .bandeau{left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:auto;padding:24px 22px 22px}
  .bandeau-titre{font-size:26px}
  .barre-rdv::before,.barre-rdv::after{display:none}
  .grain{opacity:.06}
}
@media (max-width:420px){
  .accueil-actions .lien-trace{display:none}
  .pied-grille{grid-template-columns:1fr}
}

/* ---------- Mode calme : tout est visible, rien n'est épinglé ---------- */
.calme .accueil-titre .ligne>span{transform:none}
.calme .metier-img img{transform:none}
@media (prefers-reduced-motion:reduce){
  .calme *,.calme *::before,.calme *::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
