/* Nacre Immobilier : base commune à toutes les pages
   Palette : crème, encre, ambre ; chaque page ajoute sa propre direction artistique. */
:root{
  --cream:#FCF9E7; --ink:#020618; --amber:#F0AB2F; --butter:#FDE68A; --sand:#EFECE0; --night:#12151B;
  --elevate-a:#8A63FF; --elevate-b:#E05BD6; --elevate-c:#9CC0FF;
  --f-display:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-body:'Inter Tight',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --f-accent:'Cormorant Garamond','Playfair Display',Georgia,serif;
  --f-mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
  --f-elevate:'Space Grotesk',var(--f-display);
  color-scheme:light;
}
html,body{background:var(--page-bg,var(--cream));color:var(--page-fg,var(--ink))}
body{font-family:var(--f-display);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;opacity:0;animation:nacre-show .01s 3s forwards}
body.ready{opacity:1;animation:none;transition:opacity .45s ease}
@keyframes nacre-show{to{opacity:1}}
.font-figtree{font-family:var(--f-display)}
.font-inter-tight{font-family:var(--f-body)}
.font-instrument-serif{font-family:var(--f-serif)}
.font-serif-accent{font-family:var(--f-accent)}
.font-mono-data{font-family:var(--f-mono);font-feature-settings:"tnum" 1}
.px-site{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:640px){.px-site{padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}}
@media (min-width:1024px){.px-site{padding-left:max(36px,env(safe-area-inset-left,0px));padding-right:max(36px,env(safe-area-inset-right,0px))}}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
::selection{background:var(--butter);color:var(--ink)}

/* Icônes qui se dessinent */
.line-fill path,.line-fill circle,.line-fill rect,.line-fill line,.line-fill polyline{stroke-dasharray:80;stroke-dashoffset:80;animation:line-fill 1.6s cubic-bezier(.65,0,.35,1) forwards;animation-delay:var(--d,0s)}
.line-fill.paused *{animation-play-state:paused}
@keyframes line-fill{to{stroke-dashoffset:0}}

/* Bandeau défilant */
.marquee-track{animation:marquee 46s linear infinite;width:max-content;flex:none}
.marquee-wrap:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.spin-slow{animation:spin 26s linear infinite;transform-origin:center}
@keyframes spin{to{transform:rotate(360deg)}}

/* Chiffres qui roulent */
.reel{display:inline-block;overflow:hidden;height:1.15em;line-height:1.15em;vertical-align:top}
.reel-in{display:flex;flex-direction:column;transition:transform 1.15s cubic-bezier(.16,1,.3,1)}
.reel-in>span,.reel-sep{display:block;height:1.15em;line-height:1.15em}
.reel-sep{display:inline-block;vertical-align:top}
.reel-gap{display:inline-block;width:.24em}

/* Carrousel équipe */
.team-card{opacity:.6;box-shadow:0 4px 20px rgba(0,0,0,.02);transition:opacity .5s ease,box-shadow .5s ease,border-color .5s ease}
.team-card:hover{opacity:.85}
.team-card.is-active{opacity:1;box-shadow:0 16px 40px rgba(0,0,0,.06);border-color:transparent}
.team-track{transition:transform .7s cubic-bezier(.16,1,.3,1);will-change:transform}
.team-track.dragging{transition:none}

/* Accordéons */
.faq-panel{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .45s cubic-bezier(.16,1,.3,1),opacity .35s ease}
.faq-item.open .faq-panel{grid-template-rows:1fr;opacity:1}
.faq-item.open .faq-plus{transform:rotate(45deg)}
.faq-item.open .faq-q{font-weight:500}
.faq-plus{transition:transform .35s cubic-bezier(.16,1,.3,1)}

/* Cartes guides */
.blog-more{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .35s ease,opacity .35s ease,margin .35s ease}
.blog-card:hover .blog-more,.blog-card:focus-within .blog-more{grid-template-rows:1fr;opacity:1;margin-top:6px}
.blog-cursor{transform:translate(-50%,-50%) scale(0);transition:transform .35s cubic-bezier(.16,1,.3,1);left:50%;top:50%}
.blog-card:hover .blog-cursor{transform:translate(-50%,-50%) scale(1)}

/* Curseurs */
input[type=range].nacre-range{-webkit-appearance:none;appearance:none;height:8px;border-radius:8px;cursor:pointer;background:#E7E5DF}
input[type=range].nacre-range::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#FBBF24;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:pointer}
input[type=range].nacre-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#FBBF24;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:pointer}

.slow-zoom{animation:slow-zoom 24s ease-in-out infinite alternate}
@keyframes slow-zoom{from{transform:scale(1.02)}to{transform:scale(1.12)}}

/* En-tête des pages intérieures */
.nacre-top{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;transition:background-color .35s ease,box-shadow .35s ease,backdrop-filter .35s ease}
.nacre-top.is-scrolled{background:color-mix(in srgb,var(--header-bg,#FCF9E7) 82%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 1px 0 rgba(2,6,24,.06)}
.nacre-top.theme-dark.is-scrolled{box-shadow:0 1px 0 rgba(255,255,255,.08)}
.nav-link{position:relative}
.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;border-radius:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.nav-link:hover::after,.nav-link[aria-current="page"]::after{transform:scaleX(1)}

/* Rideau entre les pages */
.nacre-curtain{position:fixed;inset:0;z-index:200;background:var(--ink);display:flex;align-items:center;justify-content:center;pointer-events:none;transform:translateY(0);transition:transform .75s cubic-bezier(.76,0,.24,1)}
.nacre-curtain.is-up{transform:translateY(-100%)}
.nacre-curtain.is-down{transform:translateY(100%);transition:none}
.nacre-curtain .mark{color:#FCF9E7;opacity:0;transform:translateY(8px);transition:opacity .35s ease .15s,transform .5s ease .15s}
.nacre-curtain.is-covering .mark{opacity:1;transform:none}

/* Fin de page : grande photo, titre, appels à l'action */
.finale-veil{background:linear-gradient(180deg,rgba(6,10,16,0) 28%,rgba(6,10,16,.32) 58%,rgba(6,10,16,.76) 100%),linear-gradient(90deg,rgba(6,10,16,.32),rgba(6,10,16,0) 62%)}
.finale-h{text-shadow:0 2px 28px rgba(6,10,16,.22)}
@media (max-width:640px){.finale-veil{background:linear-gradient(180deg,rgba(6,10,16,.08) 0%,rgba(6,10,16,.42) 32%,rgba(6,10,16,.8) 100%)}}
.finale-h em{font-style:italic;color:#F6D9A4}
.foot-k{display:block;margin-bottom:1.25rem;font-family:var(--f-display);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#64748b}

/* Signature Elevate */
.elevate-sig{position:relative;display:inline-flex;align-items:center;gap:.6rem;padding:.42rem .9rem .42rem .5rem;border-radius:999px;background:#0b0b12;color:#F2F7FF;font-family:var(--f-elevate);font-size:13px;letter-spacing:-.005em;isolation:isolate;text-decoration:none;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.elevate-sig::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(110deg,var(--elevate-a),var(--elevate-b),var(--elevate-c),var(--elevate-a));background-size:300% 100%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;z-index:-1;animation:elevate-flow 6s linear infinite}
.elevate-sig:hover{transform:translateY(-1px)}
.elevate-sig .elevate-mark{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--elevate-a),var(--elevate-b))}
.elevate-sig .elevate-mark svg{width:13px;height:auto;color:#fff}
.elevate-sig b{font-weight:700;background:linear-gradient(90deg,#fff,#d9cdff);-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes elevate-flow{to{background-position:300% 0}}
.elevate-band{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.1rem .85rem .9rem;border-radius:22px;background:#0b0b12;color:#F2F7FF;font-family:var(--f-elevate);isolation:isolate;overflow:hidden;text-decoration:none}
.elevate-band::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(110deg,var(--elevate-a),var(--elevate-b),var(--elevate-c),var(--elevate-a));background-size:300% 100%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:elevate-flow 6s linear infinite;z-index:-1}
.elevate-band::after{content:"";position:absolute;inset:-40% -10%;background:radial-gradient(40% 60% at 15% 50%,rgba(138,99,255,.28),transparent 70%),radial-gradient(35% 60% at 85% 50%,rgba(224,91,214,.18),transparent 70%);z-index:-2;transition:opacity .5s ease;opacity:.7}
.elevate-band:hover::after{opacity:1}
.elevate-mark-lg{width:44px;height:44px;flex:none;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--elevate-a),var(--elevate-b));box-shadow:0 8px 24px -8px rgba(138,99,255,.7)}
.elevate-mark-lg svg{width:22px;height:auto;color:#fff}
.elevate-word{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.1;background:linear-gradient(90deg,#fff 0%,#e3d9ff 60%,#f6c9f0 100%);-webkit-background-clip:text;background-clip:text;color:transparent}

@media (prefers-reduced-motion:reduce){
  .marquee-track,.spin-slow,.slow-zoom,.elevate-sig::before,.elevate-band::before{animation:none}
  .line-fill *{animation:none;stroke-dashoffset:0}
  .team-track,.reel-in,.nacre-curtain{transition:none}
}
