/* =====================================================================
   ORÉCIME — Landing page
   HTML / CSS / JS natifs · aucune dépendance · aucune mise à jour requise
   Charte : vert minéral #19302C · ivoire #F7F3EB · pierre #D8D0C2 · laiton #B7A27D
   Typo : EB Garamond (titres) · Inter (texte)
   ===================================================================== */

/* ---------- Polices locales ---------- */
@font-face{font-family:"EB Garamond";src:url(assets/fonts/eb-garamond-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(assets/fonts/eb-garamond-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(assets/fonts/eb-garamond-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(assets/fonts/eb-garamond-latin-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url(assets/fonts/inter-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url(assets/fonts/inter-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url(assets/fonts/inter-latin-600-normal.woff2) format("woff2");font-weight:600 700;font-display:swap}

/* ---------- Jetons ---------- */
:root{
  --green:#19302C; --green-2:#24423B; --deep:#102622; --deeper:#0B1C19;
  --ivory:#F7F3EB; --chalk:#FBF8F2; --linen:#F1ECE3; --sand:#ECE6DC; --stone:#D8D0C2;
  --brass:#B7A27D; --brass-ink:#7A6A4F; --brass-light:#D9C7A3;
  --ink:#222A29; --muted:#53625D; --hair:#E2DBCF;
  --serif:"EB Garamond",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --page:min(1320px,calc(100% - 112px));
  --header-h:88px;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-expo:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.76,0,.24,1);
  --ease-soft:cubic-bezier(.33,1,.68,1);
  --t-hover:200ms; --t-ui:300ms; --t-reveal:900ms; --t-open:1300ms;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
img,svg{display:block;max-width:100%}
[hidden]{display:none!important}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--serif);font-weight:400}
::selection{background:var(--brass);color:var(--deep)}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.container{width:var(--page);margin-inline:auto}
.micro{font-size:11px;text-transform:uppercase;letter-spacing:.2em;font-weight:600}
.skip{position:fixed;left:16px;top:-60px;z-index:300;background:var(--green);color:var(--ivory);padding:12px 18px;transition:top .2s}
.skip:focus{top:16px}
.linklike{font-size:inherit;text-decoration:underline;text-underline-offset:4px;text-decoration-color:currentColor;cursor:pointer}
.cover-image{width:100%;height:100%;object-fit:cover;display:block}
body.is-locked{overflow:hidden}

/* Grain photo très léger pour la matière "papier" */
.grain{position:fixed;inset:-50%;z-index:250;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* =====================================================================
   LOADER
   ===================================================================== */
.loader{display:none}
.js .loader{display:flex;position:fixed;inset:0;z-index:400;background:var(--green);color:var(--ivory);flex-direction:column;align-items:center;justify-content:center;clip-path:inset(0 0 0 0);transition:clip-path 1s var(--ease-in-out)}
.js .loader.is-out{clip-path:inset(0 0 100% 0)}
.js .loader.is-gone{display:none}
.loader__inner{display:flex;flex-direction:column;align-items:center;gap:18px;transition:transform .9s var(--ease-in-out),opacity .5s}
.loader.is-out .loader__inner{transform:translateY(-60px);opacity:0}
.loader__mark{width:96px;height:96px;overflow:visible}
.lm-ring{fill:var(--ivory);fill-opacity:0;stroke:var(--ivory);stroke-width:1.2;stroke-dasharray:1;stroke-dashoffset:1;animation:lm-draw 1.1s var(--ease-in-out) forwards,lm-fill .5s .8s ease forwards}
.lm-leaf{fill:var(--brass);transform-origin:70px 75px;transform:scale(.4) rotate(-30deg);opacity:0;animation:lm-leaf .9s .55s var(--ease-expo) forwards}
.lm-swoosh{fill:var(--ivory);opacity:0;animation:lm-fade .5s 1s ease forwards}
@keyframes lm-draw{to{stroke-dashoffset:0}}
@keyframes lm-fill{to{fill-opacity:1;stroke-opacity:0}}
@keyframes lm-leaf{to{transform:none;opacity:1}}
@keyframes lm-fade{to{opacity:1}}
.loader__word{display:flex;gap:.06em;font-family:var(--serif);font-size:44px;letter-spacing:.12em;overflow:hidden;line-height:1.1}
.loader__word span{display:inline-block;transform:translateY(110%);animation:lw-up .8s var(--ease-expo) forwards;animation-delay:calc(.35s + var(--i,0) * 55ms)}
.loader__word span:nth-child(1){--i:0}.loader__word span:nth-child(2){--i:1}.loader__word span:nth-child(3){--i:2}.loader__word span:nth-child(4){--i:3}.loader__word span:nth-child(5){--i:4}.loader__word span:nth-child(6){--i:5}.loader__word span:nth-child(7){--i:6}
@keyframes lw-up{to{transform:none}}
.loader__sub{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--brass-light);opacity:0;animation:lm-fade .6s .9s ease forwards}
.loader__foot{position:absolute;left:0;right:0;bottom:40px;display:flex;align-items:center;justify-content:space-between;gap:24px;width:var(--page);margin:auto;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#C9D2CA}
.loader__count{font-family:var(--serif);font-size:28px;letter-spacing:0;color:var(--ivory);min-width:80px;font-variant-numeric:tabular-nums}
.loader__bar{flex:1;height:1px;background:rgba(247,243,235,.18);position:relative;overflow:hidden}
.loader__bar i{position:absolute;inset:0;background:var(--brass);transform-origin:left;transform:scaleX(0)}

/* =====================================================================
   CURSEUR (souris uniquement)
   ===================================================================== */
.cursor{display:none}
@media (hover:hover) and (pointer:fine){
  .has-cursor .cursor{display:block;position:fixed;inset:0;pointer-events:none;z-index:350}
  .cursor__dot,.cursor__ring{position:fixed;left:0;top:0;border-radius:50%;pointer-events:none;will-change:transform}
  .cursor__dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--brass)}
  .cursor__ring{width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(183,162,125,.75);display:flex;align-items:center;justify-content:center;transition:width .35s var(--ease-out),height .35s var(--ease-out),margin .35s var(--ease-out),background .35s,border-color .35s}
  .cursor.is-link .cursor__ring{width:62px;height:62px;margin:-31px 0 0 -31px;background:rgba(183,162,125,.16)}
  .cursor.is-label .cursor__ring{width:92px;height:92px;margin:-46px 0 0 -46px;background:var(--green);border-color:var(--green)}
  .cursor__label{font-style:normal;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ivory);font-weight:600;opacity:0;transition:opacity .25s}
  .cursor.is-label .cursor__label{opacity:1}
  .cursor.is-hidden .cursor__dot,.cursor.is-hidden .cursor__ring{opacity:0}
}

/* =====================================================================
   BANDEAU HAUT
   ===================================================================== */
.topstrip{background:var(--deep);color:#E7E6DB;font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;padding:9px 0;overflow:hidden;white-space:nowrap}
.topstrip__track{display:inline-flex;align-items:center;gap:22px;animation:marquee 46s linear infinite;padding-left:22px}
.topstrip__track i{width:4px;height:4px;background:var(--brass);transform:rotate(45deg);flex:none}
@keyframes marquee{to{transform:translateX(-50%)}}

/* =====================================================================
   EN-TÊTE
   ===================================================================== */
.header{height:var(--header-h);background:rgba(247,243,235,.94);border-bottom:1px solid rgba(25,48,44,.1);position:sticky;top:0;z-index:60;backdrop-filter:saturate(1.2) blur(14px);-webkit-backdrop-filter:saturate(1.2) blur(14px);transition:transform .5s var(--ease-out),height .4s var(--ease-out),box-shadow .4s}
.header.is-scrolled{--header-h:72px;box-shadow:0 10px 30px -20px rgba(16,38,34,.35)}
.header.is-hidden{transform:translateY(-100%)}
.nav{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;min-width:230px}
.brand-icon{width:42px;height:42px;flex:none;transition:transform .6s var(--ease-out)}
.brand-leaf{transform-origin:70px 75px;transition:transform .8s var(--ease-expo)}
.brand:hover .brand-leaf{transform:rotate(-14deg)}
.brand:hover .brand-icon{transform:rotate(8deg)}
.brand-text{display:flex;flex-direction:column}
.brand-name{font-family:var(--serif);font-size:31px;line-height:.9;letter-spacing:.05em;font-weight:500;color:var(--green)}
.brand-caption{font-size:7.5px;font-weight:600;letter-spacing:.18em;margin-top:7px;white-space:nowrap;text-transform:uppercase;color:var(--green)}
.nav-menu{display:flex;align-items:center;gap:40px;font-size:13px;font-weight:500;color:var(--green)}
/* Effet "roulement" sur les liens */
.roll{position:relative;display:inline-block;overflow:hidden;padding:4px 0}
.roll span{display:inline-block;transition:transform .45s var(--ease-out)}
.roll span::after{content:attr(data-text);position:absolute;left:0;top:100%;color:var(--brass-ink)}
.roll:hover span,.roll:focus-visible span{transform:translateY(-100%)}
.roll::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}
.roll:hover::after,.roll.is-active::after{transform:scaleX(1);transform-origin:left}
.nav-actions{display:flex;align-items:center;gap:10px}
.progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none}
.progress i{position:absolute;inset:0;background:var(--brass);transform-origin:left;transform:scaleX(0)}

/* Burger */
.burger{display:none;position:relative;width:46px;height:46px;border:1px solid var(--hair);background:var(--chalk);color:var(--green);z-index:80}
.burger span{position:absolute;left:13px;right:13px;height:1.5px;background:currentColor;transition:transform .45s var(--ease-out),top .45s var(--ease-out)}
.burger span:first-child{top:18px}.burger span:last-child{top:26px}
.burger[aria-expanded="true"]{background:transparent;border-color:rgba(247,243,235,.35);color:var(--ivory)}
.burger[aria-expanded="true"] span:first-child{top:22px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{top:22px;transform:rotate(-45deg)}

/* Menu plein écran */
.menu-overlay{position:fixed;inset:0;z-index:70;background:var(--green);color:var(--ivory);padding-top:calc(var(--header-h) + 30px);overflow:auto;clip-path:circle(0 at var(--mx,calc(100% - 50px)) var(--my,44px));transition:clip-path .8s var(--ease-in-out);visibility:hidden}
.menu-overlay.is-open{clip-path:circle(150% at var(--mx,calc(100% - 50px)) var(--my,44px));visibility:visible}
/* En-tête au-dessus du menu ouvert */
.menu-open .header{z-index:75;background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transform:none}
.menu-open .brand-name,.menu-open .brand-caption{color:var(--ivory)}
.menu-open .brand-icon path:not(.brand-leaf){fill:var(--ivory)}
.menu-open .progress{opacity:0}
body.menu-open .call-fab.is-visible,body.menu-open .call-fab{opacity:0;pointer-events:none}
.brand-name,.brand-caption{transition:color .4s}
.menu-overlay__inner{display:flex;flex-direction:column;min-height:calc(100% - 30px);justify-content:space-between;gap:40px;padding-bottom:40px}
.menu-overlay__links{display:flex;flex-direction:column}
.menu-overlay__links a{font-family:var(--serif);font-size:clamp(38px,9vw,64px);line-height:1.15;padding:8px 0;border-bottom:1px solid rgba(247,243,235,.12);display:flex;align-items:baseline;gap:18px;opacity:0;transform:translateY(30px);transition:opacity .5s,transform .7s var(--ease-expo),color .2s}
.menu-overlay__links a small{font-family:var(--sans);font-size:11px;letter-spacing:.2em;color:var(--brass);min-width:24px}
.menu-overlay__links a:hover{color:var(--brass-light)}
.menu-overlay.is-open .menu-overlay__links a{opacity:1;transform:none}
.menu-overlay.is-open .menu-overlay__links a:nth-child(1){transition-delay:.25s}
.menu-overlay.is-open .menu-overlay__links a:nth-child(2){transition-delay:.31s}
.menu-overlay.is-open .menu-overlay__links a:nth-child(3){transition-delay:.37s}
.menu-overlay.is-open .menu-overlay__links a:nth-child(4){transition-delay:.43s}
.menu-overlay.is-open .menu-overlay__links a:nth-child(5){transition-delay:.49s}
.menu-overlay__foot{display:grid;grid-template-columns:140px 1fr;gap:20px;align-items:end;opacity:0;transform:translateY(20px);transition:opacity .5s .5s,transform .7s .5s var(--ease-expo)}
.menu-overlay.is-open .menu-overlay__foot{opacity:1;transform:none}
.menu-overlay__foot img{width:140px;height:110px;object-fit:cover}
.menu-overlay__foot .micro{color:var(--brass-light);margin-bottom:6px}
.menu-overlay__foot p{margin:0 0 10px;color:#C8D1C8;font-size:14px}
.menu-call{color:var(--ivory);font-weight:600;font-size:14px;border-bottom:1px solid var(--brass);padding-bottom:3px}

/* =====================================================================
   BOUTONS — remplissage + effet magnétique
   ===================================================================== */
.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:52px;padding:15px 26px;letter-spacing:.03em;font-size:13px;font-weight:600;border:1px solid var(--green);white-space:nowrap;text-align:center;transition:color .45s var(--ease-out),border-color .45s,transform .45s var(--ease-out)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:translateY(101%);transition:transform .55s var(--ease-out)}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn:active{transform:scale(.97)}
.btn .arrow{font-size:17px;font-weight:400;line-height:1;display:inline-block;transition:transform .45s var(--ease-out)}
.btn:hover .arrow{transform:translate(3px,-3px) rotate(0)}
.btn-primary{background:var(--green);color:var(--ivory)}
.btn-primary::before{background:var(--brass)}
.btn-primary:hover{color:var(--deep);border-color:var(--brass)}
.btn-outline{background:transparent;color:var(--green)}
.btn-outline::before{background:var(--green)}
.btn-outline:hover{color:var(--ivory)}
.btn-ghost-light{color:var(--ivory);border-color:rgba(247,243,235,.55);background:transparent}
.btn-ghost-light::before{background:var(--ivory)}
.btn-ghost-light:hover{color:var(--green);border-color:var(--ivory)}
.btn-sm{min-height:42px;padding:10px 16px;font-size:12px}
.magnetic{will-change:transform}

/* =====================================================================
   HERO
   ===================================================================== */
.hero{min-height:min(760px,calc(100svh - var(--header-h) - 30px));display:grid;grid-template-columns:50% 50%;border-bottom:1px solid var(--hair);position:relative}
.hero-copy{padding:96px max(7%,calc((100vw - 1320px)/2)) 64px max(7%,calc((100vw - 1320px)/2));display:flex;flex-direction:column;justify-content:center;align-items:flex-start;position:relative}
.eyebrow{display:flex;align-items:center;gap:13px;color:var(--brass-ink);margin-bottom:28px}
.eyebrow::before{content:"";display:block;width:36px;height:1px;background:var(--brass)}
h1{font-size:clamp(58px,5.6vw,98px);letter-spacing:-.035em;line-height:.98;margin:0 0 30px;color:var(--green)}
.hero-em{font-style:italic;color:#6F8476}
.hero-desc{font-size:16px;line-height:1.85;max-width:440px;color:var(--muted);margin-bottom:34px}
.hero-desc strong{color:var(--green);font-weight:600}
.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hero-foot{display:flex;align-items:center;gap:16px;color:#6E786F;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-top:72px}
.scroll-cue{position:relative;width:1px;height:46px;background:var(--hair);overflow:hidden}
.scroll-cue i{position:absolute;left:0;top:0;width:1px;height:40%;background:var(--brass);animation:cue 2.2s var(--ease-in-out) infinite}
@keyframes cue{0%{transform:translateY(-100%)}100%{transform:translateY(260%)}}

.hero-visual{position:relative;overflow:hidden;background:#B9A88C;min-height:640px;perspective:1200px}
.hero-frame{position:absolute;inset:0;margin:0;overflow:clip}
.hero-img{position:absolute;inset:-10% -6%;width:112%;height:120%;max-width:none;object-position:40% 50%;filter:saturate(.9) contrast(.98);transform:translate3d(var(--px,0),var(--py,0),0) scale(var(--ps,1));will-change:transform}
.hero-visual::after{position:absolute;inset:0;content:"";background:linear-gradient(0deg,rgba(8,22,19,.62),transparent 42%);pointer-events:none;z-index:1}
.hero-sheen{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(520px circle at var(--sx,70%) var(--sy,30%),rgba(255,244,222,.22),transparent 60%);mix-blend-mode:soft-light;opacity:0;transition:opacity .6s}
.hero-visual:hover .hero-sheen{opacity:1}
.badge{position:absolute;z-index:2;top:32px;right:34px;width:118px;height:118px;transform:translate3d(var(--bx,0),var(--by,0),0)}
.badge__text{width:100%;height:100%;animation:spin 22s linear infinite;animation-play-state:running}
.badge__text text{font-family:var(--sans);font-size:8.6px;letter-spacing:.12em;fill:#fff;font-weight:600}
.badge__mark{position:absolute;inset:34px;width:50px;height:50px}
.badge::before{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(16,38,34,.28);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.4)}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-visual-label{position:absolute;z-index:2;left:48px;bottom:52px;color:#fff;max-width:480px;transform:translate3d(var(--lx,0),var(--ly,0),0)}
.hero-visual-label .micro{color:#E4D3B5}
.hero-visual-label p{font-family:var(--serif);font-size:clamp(28px,3vw,44px);line-height:1.12;margin:12px 0 0}

/* Lignes masquées (titres) */
.lines .line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.lines [data-line]{display:block}

/* =====================================================================
   TYPES DE BIENS
   ===================================================================== */
.trust{background:var(--linen);border-bottom:1px solid var(--hair)}
.trust-row{display:grid;grid-template-columns:1.1fr repeat(4,1fr);align-items:center;min-height:108px;gap:24px}
.trust .micro{color:#6F6755;font-size:11px}
.trust-item{display:flex;align-items:center;gap:13px;color:#3B4B44;font-size:13px;font-weight:500;line-height:1.4;cursor:default}
.trust-item .sym{font-family:var(--serif);font-size:27px;color:#9F947D;display:inline-block;transition:transform .7s var(--ease-expo),color .3s}
.trust-item:hover .sym{transform:rotate(180deg) scale(1.15);color:var(--green)}

/* =====================================================================
   SECTIONS GÉNÉRIQUES
   ===================================================================== */
.section{padding:132px 0}
.section-intro{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:64px}
.section-no{font-size:11px;color:var(--brass-ink);font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.section-title{font-size:clamp(44px,4.6vw,74px);letter-spacing:-.025em;line-height:1.04;max-width:700px;margin:16px 0 0;color:var(--green)}
.section-summary{max-width:360px;color:var(--muted);font-size:15px;line-height:1.8;margin:0 0 6px}

/* Découpage des titres en mots (JS) */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.w>span{display:inline-block}

/* =====================================================================
   CITATION — encre au défilement
   ===================================================================== */
.quote-band{padding:128px 0 120px;text-align:center;border-bottom:1px solid var(--hair);position:relative;overflow:hidden}
.quote-band .micro{color:var(--brass-ink)}
.quote-band h2{font-size:clamp(38px,4.2vw,66px);letter-spacing:-.015em;max-width:1000px;margin:26px auto 26px;line-height:1.13;color:var(--green)}
.quote-band h2 em{color:#7E9283}
.quote-band p{color:var(--muted);font-size:15px;margin:0}
.ink .word{transition:opacity .35s linear,color .35s}

/* =====================================================================
   PRESTATIONS — cartes empilées (sticky stack)
   ===================================================================== */
.services{background:var(--ivory);padding-bottom:110px}
.stack{display:flex;flex-direction:column;gap:42px;padding-bottom:20px}
.stack-card{position:sticky;top:calc(var(--header-h) + 34px + var(--i) * 26px);height:min(560px,calc(100svh - 170px));transform-origin:50% 0;will-change:transform}
.stack-card__body{position:relative;height:100%;display:grid;grid-template-columns:1.08fr 1fr;background:var(--linen);overflow:hidden;box-shadow:0 30px 60px -40px rgba(16,38,34,.45);transform-style:preserve-3d;transition:transform .6s var(--ease-out)}
.stack-card:nth-child(2) .stack-card__body{background:var(--sand)}
.stack-card--dark .stack-card__body{background:var(--green);color:var(--ivory)}
.stack-card{perspective:1400px}
.stack-card__body::after{content:"";position:absolute;inset:0;background:var(--deep);opacity:var(--dim,0);pointer-events:none;z-index:4}
.stack-card__media{position:relative;overflow:hidden;background:#CEC6B7}
.stack-card__media img{position:absolute;inset:0;transition:transform 1.2s var(--ease-soft)}
.stack-card:hover .stack-card__media img{transform:scale(1.06)}
.service-number{position:absolute;top:22px;left:22px;background:rgba(250,247,239,.94);padding:8px 12px;font-size:10px;font-weight:600;color:var(--green);letter-spacing:.15em;text-transform:uppercase;z-index:2}
.stack-card__content{padding:52px 54px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;position:relative}
.stack-card__count{position:absolute;top:34px;right:40px;font-family:var(--serif);font-size:64px;line-height:1;color:var(--brass);letter-spacing:-.02em}
.stack-card__count small{font-size:20px;color:#A79C88;margin-left:4px}
.stack-card h3{font-size:clamp(34px,3vw,48px);letter-spacing:-.02em;line-height:1.05;margin:0 0 18px;color:var(--green);max-width:420px}
.stack-card p{color:var(--muted);font-size:15px;line-height:1.8;max-width:430px;margin-bottom:24px}
.stack-card--dark h3{color:var(--ivory)}
.stack-card--dark p{color:#C3CEC6}
.stack-card--dark .stack-card__count small{color:#8FA197}
.chips{list-style:none;margin:0 0 30px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{font-size:12px;font-weight:500;padding:7px 12px;border:1px solid rgba(25,48,44,.18);color:var(--green);transition:background .3s,color .3s,border-color .3s}
.chips li:hover{background:var(--green);color:var(--ivory);border-color:var(--green)}
.stack-card--dark .chips li{border-color:rgba(247,243,235,.25);color:var(--ivory)}
.stack-card--dark .chips li:hover{background:var(--brass);color:var(--deep);border-color:var(--brass)}
.text-link{position:relative;font-size:12px;color:var(--green);font-weight:600;letter-spacing:.04em;padding-bottom:6px;display:inline-flex;gap:18px}
.text-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--brass);transform-origin:left;transition:transform .5s var(--ease-out)}
.text-link:hover::after{transform:scaleX(.3)}
.text-link span{transition:transform .45s var(--ease-out)}
.text-link:hover span{transform:translate(4px,-3px)}
.stack-card--dark .text-link{color:var(--ivory)}
/* Reflet qui suit la souris (impression 3D) */
.sheen{position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(420px circle at var(--sx,50%) var(--sy,50%),rgba(255,255,255,.22),transparent 55%);opacity:0;transition:opacity .4s;mix-blend-mode:soft-light}
.tilt:hover .sheen{opacity:1}

/* =====================================================================
   PHILOSOPHIE
   ===================================================================== */
.divide-banner{display:grid;grid-template-columns:49% 51%;min-height:680px;background:var(--green);color:var(--ivory)}
.divide-photo{position:relative;overflow:hidden;background:#3a4a43}
.divide-frame{position:absolute;inset:0;margin:0;overflow:clip}
.divide-frame img{position:absolute;inset:-8% 0;height:116%;max-width:none;filter:brightness(.9)}
.detail-label{position:absolute;left:44px;bottom:40px;color:#fff;z-index:2;font-size:11px;text-transform:uppercase;letter-spacing:.18em;text-shadow:0 1px 8px rgba(16,38,34,.8)}
.divide-copy{padding:104px 11% 96px;display:flex;justify-content:center;flex-direction:column;align-items:flex-start}
.divide-copy .micro{color:var(--brass-light)}
.divide-copy h2{font-size:clamp(46px,4.2vw,72px);line-height:1.02;margin:24px 0;letter-spacing:-.02em}
.divide-copy>p{color:#C8D1C8;line-height:1.85;max-width:480px;font-size:15px;margin-bottom:30px}
.checklist{list-style:none;padding:0;margin:0 0 38px;display:grid;gap:14px;width:100%;max-width:480px}
.checklist li{display:flex;align-items:center;gap:14px;font-size:15px;color:#E6EAE3;padding-bottom:14px;border-bottom:1px solid rgba(247,243,235,.12)}
.checklist svg{width:26px;height:26px;flex:none;border:1px solid rgba(183,162,125,.55);border-radius:50%;padding:4px;fill:none;stroke:var(--brass);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* =====================================================================
   ÉTAPES — s'allument au défilement
   ===================================================================== */
.steps{background:var(--sand)}
.step-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);position:relative}
.step-track{position:absolute;left:0;right:0;top:0;height:2px;background:#D5CCBF}
.step-track i{position:absolute;inset:0;background:var(--brass);transform-origin:left;transform:scaleX(var(--p,0))}
.step{position:relative;padding:48px 44px 16px 0;margin-right:44px;border-right:1px solid #D5CCBF;transition:opacity .6s}
.step:last-child{border-right:0;margin-right:0}
.step__dot{position:absolute;top:-6px;left:0;width:14px;height:14px;border-radius:50%;background:var(--sand);border:2px solid #CFC5B5;transition:background .5s,border-color .5s,box-shadow .5s,transform .5s var(--ease-out)}
.step .n{font-family:var(--serif);font-style:italic;color:#A39780;font-size:48px;line-height:1;display:inline-block;transition:color .6s,text-shadow .6s,transform .8s var(--ease-expo)}
.step h3{font-size:31px;line-height:1.15;margin:16px 0 12px;color:#6F7872;transition:color .6s}
.step p{font-size:15px;line-height:1.8;color:#5F6862;max-width:310px;transition:color .6s;margin:0}
.step.is-lit .step__dot{background:var(--brass);border-color:var(--brass);transform:scale(1.15);box-shadow:0 0 0 7px rgba(183,162,125,.22),0 0 22px 4px rgba(183,162,125,.55)}
.step.is-lit .n{color:var(--brass-ink);text-shadow:0 0 26px rgba(183,162,125,.75);transform:translateY(-4px)}
.step.is-lit h3{color:var(--green)}
.step.is-lit p{color:var(--muted)}
.step.is-current .step__dot{animation:dot-pulse 1.6s ease-out infinite}
@keyframes dot-pulse{0%{box-shadow:0 0 0 0 rgba(183,162,125,.55),0 0 22px 4px rgba(183,162,125,.55)}100%{box-shadow:0 0 0 16px rgba(183,162,125,0),0 0 22px 4px rgba(183,162,125,.35)}}

/* =====================================================================
   POUR QUI — défilé
   ===================================================================== */
.client-band{padding:56px 0 60px;border-top:1px solid #DDD4C7;border-bottom:1px solid #DDD4C7;background:var(--linen);overflow:hidden}
.client-band__label{margin-bottom:22px}
.client-band .micro{color:#7E7563}
.marquee{overflow:hidden;white-space:nowrap}
.marquee__track{display:inline-flex;align-items:center;gap:44px;font-family:var(--serif);font-size:clamp(40px,5vw,78px);color:var(--green);line-height:1.1;will-change:transform}
.marquee__track em{color:#7E9283}
.marquee__track b{font-weight:400;color:var(--brass);font-size:.5em}

/* =====================================================================
   FAQ
   ===================================================================== */
.faq{background:var(--ivory)}
.faq-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:96px}
.faq-head .section-title{max-width:540px;font-size:clamp(42px,4.2vw,64px)}
.faq-photo{margin:44px 0 0;height:300px;max-width:400px;overflow:clip;position:relative}
.faq-photo img{transition:transform 1.4s var(--ease-soft)}
.faq-photo:hover img{transform:scale(1.05)}
.faq-list{border-top:1px solid var(--hair)}
details{border-bottom:1px solid var(--hair)}
summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:17px;font-weight:500;color:var(--green);padding:26px 0;transition:color .25s,padding .35s var(--ease-out)}
summary::-webkit-details-marker{display:none}
summary:hover{color:var(--brass-ink);padding-left:8px}
.plus{position:relative;width:34px;height:34px;flex:none;border:1px solid var(--hair);border-radius:50%;transition:transform .5s var(--ease-out),background .3s,border-color .3s}
.plus::before,.plus::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;margin:-.75px 0 0 -6px;background:var(--green);transition:transform .45s var(--ease-out),background .3s}
.plus::after{transform:rotate(90deg)}
details[open] .plus{transform:rotate(180deg);background:var(--green);border-color:var(--green)}
details[open] .plus::before,details[open] .plus::after{background:var(--ivory)}
details[open] .plus::after{transform:rotate(0)}
.faq-a{overflow:hidden}
.faq-a p{padding-right:48px;margin:0 0 26px;color:var(--muted);font-size:15px;line-height:1.85}

/* =====================================================================
   CONTACT
   ===================================================================== */
.contact-section{background:var(--deep);color:var(--ivory);padding:132px 0;position:relative;overflow:hidden}
.contact-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:80px;align-items:start}
.contact-copy .micro{color:#C4AC82}
.contact-copy h2{font-size:clamp(50px,5vw,80px);line-height:.98;margin:28px 0;letter-spacing:-.02em}
.contact-copy h2 em{color:var(--brass-light)}
.contact-copy>p{color:#BFCBC2;line-height:1.85;font-size:15px;max-width:400px}

/* Carte de visite 3D */
.card3d-wrap{margin-top:52px;perspective:1100px}
.card3d{position:relative;display:block;width:min(380px,100%);aspect-ratio:1.75;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(calc(var(--ry,0deg) + var(--flip,0deg)));transition:transform .7s var(--ease-out);cursor:pointer}
.card3d.is-flipped{--flip:180deg}
.card3d__face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 40px 60px -30px rgba(0,0,0,.65)}
.card3d__front{background:var(--ivory)}
.card3d__front{gap:6px}
.card3d__mono{width:58px;height:58px}
.card3d__brand{font-family:var(--serif);font-size:32px;letter-spacing:.12em;color:var(--green);line-height:1;margin-top:4px}
.card3d__tag{font-size:8.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--green)}
.card3d__tag::after{content:"";display:block;width:34px;height:1.5px;background:var(--brass);margin:7px auto 0}
.card3d__back{background:var(--green);transform:rotateY(180deg);border:1px solid rgba(183,162,125,.35);color:var(--ivory);gap:8px;text-align:center}
.card3d__name{font-family:var(--serif);font-size:30px;letter-spacing:.12em}
.card3d__line{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass-light)}
.card3d__rule{width:36px;height:1px;background:var(--brass);margin:6px 0}
.card3d__info{font-size:12px;color:#C8D1C8;line-height:1.7}
.card3d__shine{position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.35) 48%,transparent 62%);transform:translateX(var(--shine,-60%));mix-blend-mode:overlay;pointer-events:none}
.card3d-hint{font-size:12px;color:#8FA197;margin:18px 0 0;display:flex;gap:8px;align-items:center}

/* Formulaire */
.contact-form{background:var(--chalk);color:var(--green);padding:44px}
.form-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}
.form-head h3{font-size:32px;margin:0}
.form-head .micro{color:#8C8370;font-size:10px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{position:relative;display:flex;flex-direction:column;margin-bottom:18px;gap:7px}
.field label{font-size:11px;font-weight:600;letter-spacing:.04em;color:#42564B;transition:color .25s}
.field input,.field select,.field textarea{padding:13px 12px;background:#fff;border:1px solid #DCD7CD;border-radius:0;width:100%;outline:0;color:#283B32;font-size:14px;min-height:48px;resize:vertical;transition:border-color .3s,background .3s}
.field__line{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out);pointer-events:none}
.field:focus-within .field__line{transform:scaleX(1)}
.field:focus-within label{color:var(--brass-ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#9AA79F;background:#FFFEFB}
.field.is-invalid input,.field.is-invalid select{border-color:#A2533F}
.field.is-invalid label{color:#A2533F}
.field.is-invalid{animation:shake .4s}
@keyframes shake{20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}
.checkrow{display:flex;gap:10px;align-items:flex-start;color:#5E6C64;font-size:12px;line-height:1.6;margin:4px 0 24px;cursor:pointer}
.checkrow input{accent-color:var(--green);margin-top:3px;width:16px;height:16px;flex:none}
.form-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.form-actions small{color:#6F7C73;font-size:11px}
.btn-submit{min-width:250px}
.btn__spinner,.btn__check{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;opacity:0;transition:opacity .25s}
.btn__spinner{border:2px solid rgba(247,243,235,.3);border-top-color:var(--ivory);border-radius:50%}
.btn__check{fill:none;stroke:var(--deep);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.btn-submit.is-loading .btn__label,.btn-submit.is-loading .arrow,.btn-submit.is-done .btn__label,.btn-submit.is-done .arrow{opacity:0}
.btn-submit.is-loading .btn__spinner{opacity:1;animation:spin .8s linear infinite}
.btn-submit.is-done{background:var(--brass);border-color:var(--brass)}
.btn-submit.is-done .btn__check{opacity:1;stroke-dashoffset:0;transition:stroke-dashoffset .6s .1s var(--ease-out),opacity .2s}
.form-result{display:none;background:#E5EBDD;border-left:3px solid #5F806B;color:#274432;padding:14px 16px;font-size:13px;line-height:1.7;margin:18px 0 0}
.form-result.show{display:block;animation:rise .6s var(--ease-out)}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* =====================================================================
   PIED DE PAGE
   ===================================================================== */
.footer{background:var(--deeper);color:#F4F1E9;padding:64px 0 26px;position:relative;overflow:hidden}
.footer-main{display:grid;grid-template-columns:1.3fr 1fr .8fr 1fr;align-items:start;gap:40px;padding-bottom:40px}
.footer-brand img{width:min(320px,100%);height:auto}
.footer-meta{font-size:14px;color:#B7C0B7;line-height:1.75}
.footer-label{font-size:10px;color:#B9A17F;text-transform:uppercase;letter-spacing:.16em;margin-bottom:14px;font-weight:600}
.footer-links{display:flex;gap:12px;flex-direction:column;font-size:14px;color:#E0E5DC}
.footer-links a{width:fit-content;background:linear-gradient(var(--brass),var(--brass)) 0 100%/0 1px no-repeat;transition:background-size .45s var(--ease-out),color .3s}
.footer-links a:hover{background-size:100% 1px;color:#fff}
.footer-word{display:flex;justify-content:space-between;font-family:var(--serif);font-size:clamp(70px,19.5vw,300px);line-height:.82;letter-spacing:0;color:var(--green-2);margin:10px 0 28px;overflow:hidden;padding-bottom:.04em;user-select:none}
.footer-word span{display:inline-block;transition:color .5s}
.footer-word span:hover{color:var(--brass)}
.footer-bottom{border-top:1px solid #2D433C;padding-top:22px;color:#93A399;display:flex;justify-content:space-between;gap:20px;font-size:12px;flex-wrap:wrap}
.footer-bottom__links{display:flex;gap:20px;flex-wrap:wrap}
.footer-bottom a,.footer-bottom .linklike{text-decoration:underline;text-decoration-color:#64766D;text-underline-offset:4px;color:#93A399;transition:color .2s}
.footer-bottom a:hover,.footer-bottom .linklike:hover{color:var(--ivory)}
.to-top{position:absolute;right:max(28px,calc((100vw - 1320px)/2));top:64px;width:52px;height:52px;color:var(--ivory);display:flex;align-items:center;justify-content:center;font-size:18px}
.to-top svg{position:absolute;inset:0;transform:rotate(-90deg);fill:none;stroke:var(--brass);stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p,0))}
.to-top::before{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid rgba(247,243,235,.15)}
.to-top span{transition:transform .4s var(--ease-out)}
.to-top:hover span{transform:translateY(-4px)}

/* =====================================================================
   BOUTON D'APPEL FLOTTANT — clignote / s'allume
   ===================================================================== */
.call-fab{position:fixed;right:24px;bottom:24px;z-index:90;display:flex;align-items:center;flex-direction:row-reverse;gap:0;height:64px;transition:transform .6s var(--ease-out),opacity .4s,bottom .5s var(--ease-out)}
.js .call-fab{transform:translateY(130px);opacity:0}
.js .call-fab.is-visible{transform:none;opacity:1}
.call-fab__btn{position:relative;z-index:2;width:64px;height:64px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center;border:1px solid rgba(183,162,125,.6);animation:fab-blink 1.6s ease-in-out infinite}
.call-fab__btn svg{width:26px;height:26px;fill:var(--ivory);animation:fab-ring 4s ease-in-out infinite;transform-origin:50% 50%}
.call-fab__ring{position:absolute;right:0;top:0;width:64px;height:64px;border-radius:50%;border:2px solid var(--brass);animation:fab-pulse 2s ease-out infinite;pointer-events:none}
.call-fab__ring--2{animation-delay:1s}
.call-fab__label{position:relative;z-index:1;background:var(--green);color:var(--ivory);font-size:13px;font-weight:600;letter-spacing:.02em;height:48px;display:flex;align-items:center;padding:0 40px 0 20px;margin-right:-30px;border-radius:24px 0 0 24px;white-space:nowrap;clip-path:inset(0 0 0 100%);transition:clip-path .5s var(--ease-out)}
.call-fab:hover .call-fab__label,.call-fab:focus-visible .call-fab__label{clip-path:inset(0)}
.call-fab:active .call-fab__btn{transform:scale(.94)}
@keyframes fab-blink{
  0%,100%{background:var(--green);box-shadow:0 10px 30px -8px rgba(16,38,34,.6),0 0 0 0 rgba(183,162,125,0)}
  50%{background:#2B5248;box-shadow:0 10px 30px -8px rgba(16,38,34,.6),0 0 26px 8px rgba(183,162,125,.75)}
}
@keyframes fab-pulse{0%{transform:scale(1);opacity:.85}100%{transform:scale(1.9);opacity:0}}
@keyframes fab-ring{0%,62%,100%{transform:rotate(0)}66%{transform:rotate(-16deg)}70%{transform:rotate(14deg)}74%{transform:rotate(-12deg)}78%{transform:rotate(10deg)}82%{transform:rotate(-6deg)}86%{transform:rotate(0)}}
body.cookie-open .call-fab{bottom:var(--cookie-h,24px)}

/* =====================================================================
   BANDEAU COOKIES
   ===================================================================== */
.cookie{position:fixed;right:24px;bottom:24px;z-index:95;width:min(420px,calc(100% - 32px));background:var(--chalk);color:var(--ink);padding:24px 24px 20px;box-shadow:0 30px 70px -20px rgba(16,38,34,.45);border-top:3px solid var(--brass);transform:translateY(30px);opacity:0;transition:transform .7s var(--ease-expo),opacity .5s}
.cookie[hidden]{display:none}
.cookie.is-in{transform:none;opacity:1}
.cookie__head{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.cookie__mark{width:34px;height:34px;flex:none;animation:spin 12s linear infinite}
.cookie__title{font-family:var(--serif);font-size:22px;line-height:1.15;color:var(--green);margin:0}
.cookie__text{font-size:13px;line-height:1.65;color:var(--muted);margin:0 0 16px}
.cookie__prefs{display:grid;gap:12px;margin:0 0 18px;padding:14px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.cookie__prefs[hidden]{display:none}
.cookie__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cookie__actions .linklike{font-size:12px;color:var(--green);font-weight:600;margin-left:4px}
.toggle{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--ink);cursor:pointer}
.toggle input{position:absolute;opacity:0;width:1px;height:1px}
.toggle__ui{position:relative;width:40px;height:22px;border-radius:11px;background:#CFC8BB;flex:none;transition:background .3s}
.toggle__ui::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .35s var(--ease-out)}
.toggle input:checked+.toggle__ui{background:var(--green)}
.toggle input:checked+.toggle__ui::after{transform:translateX(18px)}
.toggle input:disabled+.toggle__ui{opacity:.55}
.toggle input:focus-visible+.toggle__ui{outline:2px solid var(--brass);outline-offset:2px}

/* =====================================================================
   MENTIONS LÉGALES
   ===================================================================== */
.legal{border:0;padding:0;width:min(680px,calc(100% - 32px));max-height:85vh;background:var(--ivory);color:var(--ink)}
.legal::backdrop{background:rgba(11,28,25,.6);backdrop-filter:blur(4px)}
.legal[open]{animation:rise .5s var(--ease-out)}
.legal__inner{padding:44px;position:relative}
.legal h2{font-size:36px;color:var(--green);margin-bottom:20px;padding-right:40px}
.legal h3{font-family:var(--sans);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--brass-ink);margin:22px 0 6px}
.legal p{font-size:14px;color:var(--muted);margin:0}
.legal__close{position:absolute;right:20px;top:20px;width:42px;height:42px;font-size:26px;color:var(--green);border:1px solid var(--hair);border-radius:50%;transition:transform .4s var(--ease-out)}
.legal__close:hover{transform:rotate(90deg)}

/* =====================================================================
   ANIMATIONS D'ENTRÉE (uniquement si mouvement autorisé + JS)
   ===================================================================== */
@media (prefers-reduced-motion:no-preference){
  /* Hero : séquence après le loader */
  .js .hero [data-line]{transform:translateY(108%)}
  .js .hero [data-load]{opacity:0;transform:translateY(16px)}
  .js .hero [data-open]{clip-path:inset(0 0 0 100%)}
  .js .badge{opacity:0;scale:.6}
  .js.is-ready .hero [data-line]{animation:line-up 1s var(--ease-expo) forwards;animation-delay:calc(120ms + var(--i) * 110ms)}
  .js.is-ready .hero [data-load]{animation:load-rise .8s var(--ease-out) forwards;animation-delay:var(--d)}
  .js.is-ready .hero [data-open]{animation:open-left 1.3s var(--ease-in-out) 60ms forwards}
  .js.is-ready .hero-img{animation:settle 1.8s var(--ease-expo) forwards}
  .js.is-ready .badge{transition:opacity .8s 1s,scale 1.1s 1s var(--ease-expo);opacity:1;scale:1}

  /* Révélations au défilement */
  .js [data-reveal]:not([data-reveal="clip"]){opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease-out),transform 1s var(--ease-expo);transition-delay:var(--sd,0ms)}
  .js [data-reveal].is-in{opacity:1;transform:none}
  .js [data-reveal="clip"]{clip-path:inset(100% 0 0 0);transition:clip-path 1.3s var(--ease-in-out)}
  .js [data-reveal="clip"] img{scale:1.18;transition:scale 1.8s var(--ease-expo)}
  .js [data-reveal="clip"].is-in{clip-path:inset(0 0 0 0)}
  .js [data-reveal="clip"].is-in img{scale:1}
  .js .w>span{transform:translateY(110%);transition:transform 1s var(--ease-expo);transition-delay:calc(var(--wi) * 45ms + var(--sd,0ms))}
  .js [data-split].is-in .w>span{transform:none}
  .js .checklist li{opacity:0;transform:translateX(-14px);transition:opacity .6s,transform .8s var(--ease-expo);transition-delay:calc(var(--ci) * 140ms + 200ms)}
  .js .checklist svg path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .7s var(--ease-out);transition-delay:calc(var(--ci) * 140ms + 500ms)}
  .js .checklist.is-in li{opacity:1;transform:none}
  .js .checklist.is-in svg path{stroke-dashoffset:0}
  .js .footer-word span{transform:translateY(100%);transition:transform 1.2s var(--ease-expo),color .5s;transition-delay:calc(var(--fi) * 70ms)}
  .js .footer-word.is-in span{transform:none}
  .js .ink .word{opacity:.16}
  .js .stack-card__body.tilt{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
}
@keyframes line-up{to{transform:none}}
@keyframes load-rise{to{opacity:1;transform:none}}
@keyframes open-left{to{clip-path:inset(0 0 0 0)}}
@keyframes settle{from{scale:1.15}to{scale:1}}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:1200px){
  :root{--page:calc(100% - 70px)}
  .hero-copy{padding-left:48px;padding-right:44px}
  h1{font-size:clamp(54px,6vw,84px)}
  .nav-menu{gap:24px}
  .trust-row{gap:10px}
  .divide-copy{padding:80px 9%}
  .stack-card__content{padding:44px 40px}
  .footer-main{grid-template-columns:1fr 1fr;gap:36px}
}
@media (max-width:980px){
  :root{--page:calc(100% - 48px);--header-h:76px}
  .header.is-scrolled{--header-h:68px}
  .nav-menu{display:none}
  .burger{display:inline-flex}
  .brand{min-width:0}
  .brand-name{font-size:28px}
  .brand-icon{width:38px;height:38px}
  .nav-actions>.btn{min-height:44px;padding:11px 16px}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-copy{padding:72px 24px 54px}
  .hero-visual{min-height:520px}
  .hero-foot{margin-top:48px}
  .trust-row{grid-template-columns:repeat(2,1fr);padding:26px 0;row-gap:20px}
  .trust .micro{grid-column:1/-1}
  .section{padding:96px 0}
  .section-intro{align-items:flex-start;flex-direction:column;gap:18px}
  .section-summary{max-width:580px}
  .stack-card{height:auto;min-height:0}
  .stack-card__body{grid-template-columns:1fr;grid-template-rows:240px auto}
  .stack-card__content{padding:30px 28px 34px}
  .stack-card__count{position:static;font-size:38px;margin-bottom:10px}
  .stack-card__count small{font-size:16px}
  .divide-banner{grid-template-columns:1fr;min-height:0}
  .divide-photo{min-height:440px}
  .divide-copy{padding:72px 24px}
  .faq-layout,.contact-grid{grid-template-columns:1fr;gap:44px}
  .faq-photo{display:none}
  .card3d-wrap{display:flex;flex-direction:column;align-items:center}
  .card3d{margin-inline:auto;width:min(340px,100%)}
  .card3d-hint{justify-content:center;text-align:center}
  .contact-section{padding:90px 0}
  .step{padding-right:18px;margin-right:22px}
  .step h3{font-size:26px}
  .to-top{right:24px}
}
@media (max-width:680px){
  :root{--page:calc(100% - 32px);--header-h:70px}
  .topstrip{font-size:9px;letter-spacing:.14em}
  .brand{gap:8px}
  .brand-name{font-size:25px}
  .brand-caption{font-size:6.5px;letter-spacing:.12em}
  .brand-icon{width:33px;height:33px}
  .nav-actions>.btn{display:none}
  .hero-copy{padding:56px 16px 44px}
  .eyebrow{font-size:10px}
  h1{font-size:clamp(46px,13.4vw,70px);line-height:.98}
  .hero-desc{font-size:15px;line-height:1.75}
  .hero-actions{gap:10px;width:100%}
  .hero-actions .btn{flex:1 1 auto;padding:14px 16px;min-height:50px;font-size:12px}
  .hero-foot{margin-top:40px}
  .hero-visual{min-height:480px}
  .hero-visual-label{left:20px;right:20px;bottom:26px}
  .hero-visual-label p{font-size:30px}
  .badge{width:92px;height:92px;top:18px;right:18px}
  .badge__mark{inset:27px;width:38px;height:38px}
  .trust-row{gap:18px}
  .trust-item{font-size:12px}
  .trust-item .sym{font-size:21px}
  .quote-band{padding:84px 0}
  .quote-band h2{font-size:35px}
  .section{padding:84px 0}
  .section-title{font-size:clamp(38px,10.5vw,50px)}
  .stack{gap:24px}
  .stack-card{top:calc(var(--header-h) + 14px + var(--i) * 12px)}
  .stack-card__body{grid-template-rows:200px auto}
  .stack-card h3{font-size:32px;margin-bottom:12px}
  .stack-card p{font-size:14px;margin-bottom:18px}
  .chips{margin-bottom:22px}
  .chips li{font-size:11px;padding:6px 10px}
  .divide-photo{min-height:360px}
  .detail-label{left:20px;bottom:22px}
  .divide-copy{padding:64px 16px}
  .divide-copy h2{font-size:44px}
  .step-grid{grid-template-columns:1fr;padding-left:34px}
  .step-track{left:6px;right:auto;top:0;bottom:0;width:2px;height:auto}
  .step-track i{transform-origin:top;transform:scaleY(var(--p,0))}
  .step{padding:4px 0 40px;border-right:none;margin:0}
  .step:last-child{padding-bottom:0}
  .step__dot{left:-34px;top:8px}
  .step .n{font-size:38px}
  .step h3{font-size:27px;margin:8px 0}
  .client-band{padding:44px 0 46px}
  summary{font-size:16px;padding:22px 0}
  .faq-a p{padding-right:0}
  .contact-copy h2{font-size:clamp(44px,12.5vw,60px)}
  .card3d-wrap{margin-top:36px}
  .contact-form{padding:28px 18px}
  .field-row{grid-template-columns:1fr;gap:0}
  .form-head{flex-direction:column;align-items:flex-start;gap:6px}
  .form-head h3{font-size:28px}
  .btn-submit{width:100%}
  .footer{padding:52px 0 110px}
  .footer-main{grid-template-columns:1fr;gap:28px}
  .footer-word{font-size:15.5vw}
  .to-top{top:46px;right:16px;width:46px;height:46px}
  .footer-bottom{flex-direction:column;gap:10px}
  .call-fab{right:16px;bottom:16px}
  .cookie{left:12px;right:12px;bottom:12px;width:auto;padding:16px 16px 14px}
  .cookie__head{margin-bottom:6px}
  .cookie__mark{width:26px;height:26px}
  .cookie__title{font-size:18px}
  .cookie__text{font-size:12px;line-height:1.55;margin-bottom:12px}
  .cookie__actions .btn-sm{min-height:40px;padding:9px 14px}
  .legal__inner{padding:32px 20px}
}

/* =====================================================================
   MOUVEMENT RÉDUIT : tout reste visible, sans déplacement
   ===================================================================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important}
  .js .loader{display:none}
  .topstrip__track,.marquee__track{transform:none!important}
  .call-fab__ring{display:none}
  .js .call-fab{transform:none;opacity:1}
}

/* Impression */
@media print{.loader,.cursor,.grain,.call-fab,.cookie,.topstrip,.burger,.to-top{display:none!important}.header{position:static}}

.inline-link{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--brass)}
