/* ==========================================================================
   Neuropsy Horizon — Accueil
   Hi-fi design · Direction A (Newsreader + DM Sans) · editorial / warm
   ========================================================================== */

/* Review placeholder — marks copy awaiting client-confirmed facts.
   Remove the .ph span (keep its text) once the real value is provided. */
.ph{
  font-style:normal;
  font-weight:500;
  color:#7a4f12;
  background:rgba(214,158,59,.20);
  box-shadow:inset 0 -1.5px 0 rgba(214,158,59,.65);
  border-radius:0.2353rem;
  padding:0 .3em;
  white-space:normal;
}
.on-dark .ph, .cta .ph, .band-deep .ph, .creds .ph{
  color:#ffe6b8;
  background:rgba(255,210,120,.16);
  box-shadow:inset 0 -1.5px 0 rgba(255,210,120,.5);
}

:root{
  --paper:#f6f3ed;
  --paper-2:#efe9df;
  --paper-3:#e7e0d2;
  --ink:#0a1a2f;
  --ink-2:#1a4d8f;
  --ink-3:#5fa8d3;
  --warm:#c47a4f;
  --warm-soft:#d8a585;
  --ok:#5b8a6a;
  --line:#d8d1c2;
  --line-2:#cdc5b3;
  --ink-70:rgba(10,26,47,.72);
  --ink-55:rgba(10,26,47,.55);
  --paper-70:rgba(246,243,237,.72);
  --shadow-card:0 1px 2px rgba(10,26,47,.04), 0 1.0588rem 2.3529rem -1.6471rem rgba(10,26,47,.45);
  --shadow-soft:0 1px 2px rgba(10,26,47,.05), 0 1.7647rem 3.5294rem -2rem rgba(10,26,47,.4);
  --r-sm:0.4706rem;
  --r-md:0.8235rem;
  --r-lg:1.2941rem;
  --ff-serif:"Newsreader",Georgia,serif;
  --ff-sans:"DM Sans",system-ui,sans-serif;
  --ff-mono:"IBM Plex Mono",ui-monospace,monospace;
  --maxw:min(87rem,94vw);
  --gutter:clamp(1.1765rem,5vw,4.2353rem);
  --nav-h:4.7059rem; /* measured + overwritten by site.js */
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  font-family:var(--ff-sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
}

img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink-2);color:var(--paper)}

/* ---------- shared type ---------- */
.eyebrow{
  font-family:var(--ff-mono);
  font-size:.6875rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-2);
  display:inline-flex;align-items:center;gap:0.5882rem;
}
.eyebrow::before{
  content:"";width:1.4118rem;height:1px;background:var(--ink-2);opacity:.6;
}
.eyebrow.center::before{display:none}
.eyebrow.on-dark{color:var(--ink-3)}
.eyebrow.on-dark::before{background:var(--ink-3)}

.serif{font-family:var(--ff-serif);font-weight:500;letter-spacing:-.018em;line-height:1.04}
.serif em{font-style:italic;font-weight:500;color:var(--ink-2)}
.on-dark .serif em,.serif.on-dark em{color:var(--ink-3)}

h1.display{
  font-family:var(--ff-serif);font-weight:500;
  font-size:clamp(2.4rem,4.4vw,3.85rem);
  line-height:1.02;letter-spacing:-.022em;
}
h2.head{
  font-family:var(--ff-serif);font-weight:500;
  font-size:clamp(1.9rem,3.4vw,3rem);
  line-height:1.06;letter-spacing:-.02em;
}
.lead{
  font-size:clamp(1.0625rem,1.35vw,1.2rem);
  line-height:1.65;color:var(--ink-70);
}
.body{color:var(--ink-70);line-height:1.72}

.container{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(3.7647rem,8.5vw,7.5294rem)}
.section.tight{padding-block:clamp(3.0588rem,6vw,4.9412rem)}

/* Reveal content stays visible unless the small head bootstrap confirms that
   motion is available. This prevents both hidden-content failures and the
   visible -> hidden -> visible flash from the standalone HTML versions. */
.reveal{opacity:1;transform:none}
.np-motion .reveal{opacity:0;transform:translateY(1.5294rem)}
@keyframes npRevIn{from{opacity:0;transform:translateY(1.5294rem)}to{opacity:1;transform:none}}
.np-motion .reveal.anim{animation:npRevIn .8s var(--ease) both}
.np-motion .reveal.anim[data-d="1"]{animation-delay:.09s}
.np-motion .reveal.anim[data-d="2"]{animation-delay:.18s}
.np-motion .reveal.anim[data-d="3"]{animation-delay:.27s}
.np-motion .reveal.anim[data-d="4"]{animation-delay:.36s}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-delay:0s!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    transition-delay:0s!important;
  }
  .np-motion .reveal{opacity:1;transform:none}
}

/* ---------- buttons ---------- */
.btn{
  --bg:var(--ink-2);--fg:var(--paper);--bd:var(--ink-2);
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--ff-sans);font-weight:500;font-size:.875rem;
  letter-spacing:.005em;
  padding:.7em 1.5em;border-radius:999px;
  background:var(--bg);color:var(--fg);border:1.5px solid var(--bd);
  cursor:pointer;transition:transform .25s var(--ease),background .25s var(--ease),color .25s,box-shadow .3s var(--ease),border-color .25s;
  box-shadow:0 1px 2px rgba(10,26,47,.06);
}
.btn .arr{transition:transform .3s var(--ease)}
.btn:hover{transform:translateY(-2px);box-shadow:0 0.7059rem 1.4118rem -0.7059rem rgba(26,77,143,.6)}
.btn:hover .arr{transform:translateX(0.2353rem)}
.btn:active{transform:translateY(0)}
.btn.ghost{--bg:transparent;--fg:var(--ink);--bd:var(--line-2)}
.btn.ghost:hover{--bd:var(--ink);box-shadow:none;background:rgba(10,26,47,.03)}
.btn.on-dark{--bg:var(--ink-3);--fg:var(--ink);--bd:var(--ink-3)}
.btn.on-dark:hover{box-shadow:0 0.7059rem 1.4118rem -0.7059rem rgba(95,168,211,.7)}
.btn.ghost.on-dark{--bg:transparent;--fg:var(--paper);--bd:rgba(246,243,237,.45)}
.btn.ghost.on-dark:hover{--bd:var(--paper);background:rgba(246,243,237,.08)}
.btn.lg{font-size:.9375rem;padding:.82em 1.7em}
.btn.sm{font-size:.78rem;padding:.55em 1.25em}

.textlink{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--ff-mono);font-size:.75rem;letter-spacing:.05em;
  text-transform:uppercase;color:var(--ink-2);
  padding-bottom:3px;position:relative;width:fit-content;
}
.textlink::after{
  content:"";position:absolute;left:0;bottom:0;height:1.5px;width:100%;
  background:var(--ink-2);transform:scaleX(.32);transform-origin:left;
  transition:transform .35s var(--ease);
}
.textlink:hover::after{transform:scaleX(1)}
.textlink .arr{transition:transform .3s var(--ease)}
.textlink:hover .arr{transform:translateX(0.2353rem)}

/* ==========================================================================
   NAV
   ========================================================================== */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:100;
  transition:background .4s var(--ease),box-shadow .4s var(--ease),border-color .4s;
  border-bottom:1px solid transparent;
}
.nav-inner{
  max-width:var(--maxw);margin-inline:auto;padding:1.0588rem var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:1.4118rem;
  transition:padding .4s var(--ease);
}
.nav.scrolled{
  background:var(--paper-70);backdrop-filter:blur(0.8235rem) saturate(1.2);
  -webkit-backdrop-filter:blur(0.8235rem) saturate(1.2);
  border-bottom-color:var(--line);
  box-shadow:0 1px 0 rgba(255,255,255,.5);
}
.nav.scrolled .nav-inner{padding-block:0.7059rem}
.brand{display:flex;align-items:center;gap:0.8235rem;flex-shrink:0}
.brand img{height:2.5882rem;width:auto;transition:height .4s var(--ease)}
.nav.scrolled .brand img{height:2.2353rem}
.nav-links{display:flex;align-items:center;gap:0.3529rem}
.nav-links a{
  font-family:var(--ff-mono);font-size:.75rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-70);white-space:nowrap;
  padding:0.5294rem 0.3529rem;position:relative;
  transition:color .25s;
}
.nav-links a::after{
  content:"";position:absolute;left:0.3529rem;right:0.3529rem;bottom:2px;height:1.5px;
  background:var(--ink-2);transform:scaleX(0);transform-origin:right center;
  transition:transform .32s cubic-bezier(.65,0,.35,1);
}
.nav-links a:hover{color:var(--ink)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left center}
.nav-links a.active{color:var(--ink)}
.nav-links a.active::after{transform:scaleX(1)}
.nav-cta{display:flex;align-items:center;gap:0.8235rem}
.nav-actions{display:flex;align-items:center;gap:0.5882rem}

/* burger */
.burger{
  display:none;width:2.5882rem;height:2.5882rem;border:1.5px solid var(--line-2);
  border-radius:999px;background:var(--paper);cursor:pointer;
  align-items:center;justify-content:center;flex-direction:column;gap:0.2353rem;
  flex-shrink:0;transition:border-color .25s;
}
.burger:hover{border-color:var(--ink)}
.burger span{width:1rem;height:1.6px;background:var(--ink);border-radius:2px;transition:transform .35s var(--ease),opacity .25s}
.burger.open span:nth-child(1){transform:translateY(0.3294rem) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-0.3294rem) rotate(-45deg)}

/* mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:99;pointer-events:none;
}
.drawer-scrim{
  position:absolute;inset:0;background:rgba(10,26,47,.42);
  opacity:0;transition:opacity .4s var(--ease);
  backdrop-filter:blur(2px);
}
.drawer-panel{
  position:absolute;top:0;right:0;height:100%;width:min(86vw,22.3529rem);
  background:var(--paper);box-shadow:-1.7647rem 0 3.5294rem -1.7647rem rgba(10,26,47,.5);
  transform:translateX(100%);transition:transform .45s var(--ease);
  display:flex;flex-direction:column;padding:1.5294rem 1.6471rem 1.8824rem;
}
.drawer.open{pointer-events:auto}
.drawer.open .drawer-scrim{opacity:1}
.drawer.open .drawer-panel{transform:none}
.drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.2353rem}
.drawer-top img{height:1.7647rem}
.drawer-close{
  width:2.4706rem;height:2.4706rem;border-radius:999px;border:1.5px solid var(--line-2);
  background:none;cursor:pointer;font-size:1.1765rem;color:var(--ink);line-height:1;
}
.drawer-links{display:flex;flex-direction:column}
.drawer-links a{
  font-family:var(--ff-serif);font-size:1.7rem;font-weight:500;
  letter-spacing:-.01em;color:var(--ink);
  padding:0.8824rem 0;border-bottom:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;
  transition:color .2s,padding-left .3s var(--ease);
}
.drawer-links a:hover{color:var(--ink-2);padding-left:0.4706rem}
.drawer-foot{margin-top:auto;padding-top:1.6471rem;display:flex;flex-direction:column;gap:0.8235rem}
.drawer-foot .meta{font-family:var(--ff-mono);font-size:.72rem;color:var(--ink-55);line-height:1.7}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{position:relative;padding-top:calc(var(--nav-h) + clamp(2.3529rem,6vh,5.1765rem));padding-bottom:clamp(4.2353rem,9vh,6.8235rem)}
.hero-grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.4118rem,3vw,2.8235rem);
  align-items:stretch;
}
.hero-visual{display:flex}
.hero-visual>.hero-photo{flex:1;min-height:30.5882rem}
.hero-copy{max-width:36.5rem}
.hero h1{margin:1.0588rem 0 1.5294rem}
.hero .lead{max-width:28.2353rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:0.8235rem;margin-top:2rem}
.hero-meta{
  display:flex;gap:1.6471rem;margin-top:2.5882rem;padding-top:1.5294rem;
  border-top:1px solid var(--line);flex-wrap:wrap;
}
.hero-meta .stat .v{font-family:var(--ff-serif);font-size:1.85rem;font-weight:500;color:var(--ink);line-height:1}
.hero-meta .stat .k{font-family:var(--ff-mono);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-55);margin-top:0.4118rem;line-height:1.4}

/* photo frame */
.photo{
  position:relative;overflow:hidden;border-radius:var(--r-lg);
  background:var(--paper-3);box-shadow:var(--shadow-soft);
  isolation:isolate;
}
.photo img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.94) contrast(1.02);
  transition:transform 1.2s var(--ease);
}
.photo::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(26,77,143,.06),rgba(10,26,47,.02) 40%,rgba(10,26,47,.16));
  mix-blend-mode:multiply;
}
.photo.hoverable:hover img{transform:scale(1.04)}
.photo .tag{
  position:absolute;top:0.9412rem;left:0.9412rem;z-index:2;
  font-family:var(--ff-mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);background:var(--paper-70);backdrop-filter:blur(0.3529rem);
  padding:0.3529rem 0.6471rem;border-radius:999px;border:1px solid rgba(255,255,255,.5);
}
.hero-photo{aspect-ratio:auto}
.hero-photo::before{
  content:"";position:absolute;inset:auto 0 0 0;height:50%;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(6,14,28,0) 42%,rgba(6,14,28,.88));
}
.hero-photo .caption{
  text-shadow:0 1px 0.7059rem rgba(6,14,28,.55);
  position:absolute;left:1.0588rem;bottom:1.0588rem;right:1.0588rem;z-index:2;
  color:var(--paper);
}
.hero-photo .caption .nm{font-family:var(--ff-serif);font-style:italic;font-size:1.25rem;line-height:1.15}
.hero-photo .caption .ro{font-family:var(--ff-mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;opacity:.85;margin-top:0.2941rem}

/* floating accent badge on hero photo */
.float-badge{
  position:absolute;z-index:3;right:-1.0588rem;top:2rem;
  background:var(--paper);border-radius:var(--r-md);
  box-shadow:var(--shadow-card);padding:0.8235rem 1.0588rem;
  display:flex;align-items:center;gap:0.7059rem;max-width:13.5294rem;
}
.float-badge .dot{width:2rem;height:2rem;border-radius:50%;background:var(--ink-3);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-family:var(--ff-serif);font-style:italic;color:var(--ink);font-size:1.05rem}
.float-badge .tx{font-family:var(--ff-mono);font-size:.66rem;line-height:1.5;color:var(--ink-70);letter-spacing:.02em}

/* ==========================================================================
   MARQUEE / trust strip
   ========================================================================== */
.trust{border-block:1px solid var(--line);background:var(--paper-2)}
.trust-inner{
  display:flex;align-items:center;gap:clamp(1.2941rem,3.5vw,2.7059rem);
  padding-block:1.4118rem;flex-wrap:wrap;justify-content:center;
}
.trust-lbl{
  font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-2);line-height:1.5;flex-shrink:0;
  padding-right:clamp(1.2941rem,3.5vw,2.7059rem);border-right:1px solid var(--line-2);
}
.trust-orgs{
  display:flex;align-items:center;gap:clamp(1.0588rem,2.8vw,2.2353rem);
  flex-wrap:wrap;justify-content:center;
}
.trust-inner .org{font-family:var(--ff-serif);font-style:italic;font-size:1.05rem;color:var(--ink-70);white-space:nowrap}
.trust-inner .sep{width:0.2941rem;height:0.2941rem;border-radius:50%;background:var(--line-2);flex-shrink:0}
@media (max-width:720px){
  .trust-lbl{border-right:none;padding-right:0;border-bottom:1px solid var(--line-2);padding-bottom:0.8235rem;text-align:center}
}

/* ==========================================================================
   SERVICES
   ========================================================================== */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.8824rem;flex-wrap:wrap;margin-bottom:clamp(2.1176rem,4vw,3.5294rem)}
.sec-head .txt{max-width:36.4706rem}
.sec-head h2{margin-top:0.9412rem}
.sec-head .aside{font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.04em;color:var(--ink-55);text-align:right;line-height:1.7}

.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2941rem}
.svc{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  padding:1.7647rem 1.6471rem 1.6471rem;display:flex;flex-direction:column;gap:0.8235rem;
  position:relative;overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s;
}
.svc:hover{transform:translateY(-0.3529rem);box-shadow:var(--shadow-card);border-color:transparent}
.svc .num{font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.12em;color:var(--ink-2)}
.svc .ic{
  width:2.8235rem;height:2.8235rem;border-radius:0.7059rem;background:var(--paper-3);
  display:flex;align-items:center;justify-content:center;color:var(--ink-2);
  transition:background .4s,color .4s;
}
.svc:hover .ic{background:var(--ink-2);color:var(--paper)}
.svc h3{font-family:var(--ff-serif);font-weight:500;font-size:1.45rem;line-height:1.12;letter-spacing:-.01em}
.svc p{font-size:.95rem;color:var(--ink-70);line-height:1.62}
.svc .meta{margin-top:auto;padding-top:0.8235rem;font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.04em;color:var(--ink-55);border-top:1px solid var(--line);line-height:1.6}
.svc.feature{background:var(--ink);color:var(--paper)}
.svc.feature .ic{background:rgba(95,168,211,.18);color:var(--ink-3)}
.svc.feature:hover .ic{background:var(--ink-3);color:var(--ink)}
.svc.feature p{color:rgba(246,243,237,.72)}
.svc.feature .meta{color:rgba(95,168,211,.8);border-top-color:rgba(246,243,237,.16)}

/* complementary full-width band */
.svc-comp{
  margin-top:1.2941rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  padding:1.2941rem 1.5294rem;display:flex;align-items:center;gap:1.4118rem;
  position:relative;overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s;
}
.svc-comp:hover{transform:translateY(-0.2353rem);box-shadow:var(--shadow-card);border-color:transparent}
.svc-comp .ic{
  flex:none;width:2.7059rem;height:2.7059rem;border-radius:0.7059rem;background:var(--paper-3);
  display:flex;align-items:center;justify-content:center;color:var(--ink-2);
  transition:background .4s,color .4s;
}
.svc-comp:hover .ic{background:var(--ink-2);color:var(--paper)}
.svc-comp-body{flex:1 1 auto;min-width:0}
.svc-comp-tag{display:inline-block;font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:0.2941rem}
.svc-comp-body h3{font-family:var(--ff-serif);font-weight:500;font-size:1.2rem;line-height:1.16;letter-spacing:-.01em;margin-bottom:0.2941rem}
.svc-comp-body p{font-size:.9rem;color:var(--ink-70);line-height:1.55;max-width:62ch}
.svc-comp-meta{flex:none;align-self:center;padding-left:1.4118rem;border-left:1px solid var(--line);font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.04em;color:var(--ink-55);line-height:1.6;max-width:16ch;text-align:right}

/* ==========================================================================
   ABOUT
   ========================================================================== */
.about{background:var(--paper-2)}
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.1176rem,5vw,4.2353rem);align-items:center}
.about-photo{aspect-ratio:4/4.6;max-width:25.8824rem}
.about-copy{max-width:35.2941rem}
.about-copy h2{margin:0.9412rem 0 1.2941rem}
.about-copy .sig{
  display:flex;align-items:center;gap:0.9412rem;margin-top:1.7647rem;padding-top:1.4118rem;border-top:1px solid var(--line);
}
.about-copy .sig .nm{font-family:var(--ff-serif);font-style:italic;font-size:1.3rem;color:var(--ink)}
.about-copy .sig .ro{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-55);margin-top:0.2353rem}
.quote-mark{font-family:var(--ff-serif);font-style:italic;font-size:1.45rem;line-height:1.45;color:var(--ink);letter-spacing:-.01em}
.quote-mark em{color:var(--ink-2);font-style:italic}

/* ==========================================================================
   APPROACH — interactive guided index
   ========================================================================== */
.approach{
  display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(2.1176rem,5vw,4.9412rem);align-items:stretch;
  margin-top:clamp(1.1765rem,3vw,2.3529rem);
}
.ap-feature{position:relative}
.ap-slides{position:relative;min-height:17.6471rem}
.ap-slide{
  position:absolute;inset:0;opacity:0;transform:translateY(0.9412rem);
  transition:opacity .55s var(--ease),transform .55s var(--ease);
  pointer-events:none;
}
.ap-slide.is-active{opacity:1;transform:none;pointer-events:auto}
.ap-big{
  display:block;font-family:var(--ff-serif);font-weight:500;
  font-size:clamp(5.5rem,11vw,9rem);line-height:.82;letter-spacing:-.04em;
  color:var(--ink-3);opacity:.9;margin-bottom:.12em;
}
.ap-slide h3{
  font-family:var(--ff-serif);font-weight:500;
  font-size:clamp(1.55rem,2.4vw,2.15rem);line-height:1.1;letter-spacing:-.015em;
  margin-bottom:0.9412rem;max-width:14ch;text-wrap:balance;
}
.ap-slide p{font-size:1.02rem;line-height:1.62;color:var(--ink-70);max-width:42ch}

.ap-list{list-style:none;display:flex;flex-direction:column;align-self:center}
.ap-item{
  display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1.1765rem;
  padding:1.2941rem 0.3529rem 1.2941rem 0;border-top:1px solid var(--line);
  cursor:pointer;position:relative;
  transition:padding-left .4s var(--ease);
}
.ap-item:last-child{border-bottom:1px solid var(--line)}
.ap-item::before{
  content:"";position:absolute;left:0;top:-1px;bottom:-1px;width:2px;
  background:var(--ink-2);transform:scaleY(0);transform-origin:center;
  transition:transform .4s var(--ease);
}
.ap-item .mk{width:0.5294rem;height:0.5294rem;border-radius:50%;border:1.5px solid var(--ink-3);background:transparent;transition:background .3s,border-color .3s}
.ap-item .t{
  font-family:var(--ff-serif);font-weight:500;font-size:1.18rem;line-height:1.25;
  color:var(--ink-70);letter-spacing:-.005em;transition:color .3s;
}
.ap-item:hover .t,.ap-item:focus-visible .t{color:var(--ink)}
.ap-item.is-active{padding-left:1.1765rem}
.ap-item.is-active::before{transform:scaleY(1)}
.ap-item.is-active .mk{background:var(--ink-2);border-color:var(--ink-2)}
.ap-item.is-active .t{color:var(--ink)}
.ap-item:focus-visible{outline:none}
.ap-item:focus-visible .t{text-decoration:underline;text-underline-offset:0.2353rem}

/* ==========================================================================
   CREDENTIALS (dark band)
   ========================================================================== */
.creds{background:var(--ink-2);color:var(--paper);position:relative;overflow:hidden}
.creds::before{
  content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background:radial-gradient(circle at 18% 22%,rgba(95,168,211,.4),transparent 42%),
             radial-gradient(circle at 84% 78%,rgba(10,26,47,.55),transparent 50%);
}
.creds .container{position:relative}
.creds-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:1.0588rem;margin-top:clamp(1.8824rem,4vw,3.0588rem)}
.cred{
  border:1px solid rgba(246,243,237,.22);border-radius:var(--r-sm);
  padding:1.2941rem 1.1765rem;display:flex;flex-direction:column;gap:0.7059rem;
  background:rgba(246,243,237,.06);
  transition:background .35s,border-color .35s,transform .35s var(--ease);
}
.cred:hover{background:rgba(246,243,237,.12);border-color:rgba(246,243,237,.4);transform:translateY(-0.2353rem)}
.cred .badge{font-family:var(--ff-mono);font-size:.7rem;color:var(--ink-3);letter-spacing:.08em}
.cred p{font-size:.92rem;line-height:1.5;color:rgba(246,243,237,.92)}

/* ==========================================================================
   PROCESS
   ========================================================================== */
.process-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.3529rem,5vw,4.7059rem);align-items:start}
.steps{display:flex;flex-direction:column;position:relative}
.steps::before{content:"";position:absolute;left:1.0588rem;top:1.4118rem;bottom:1.4118rem;width:1.5px;background:var(--line-2)}
.step{display:flex;gap:1.1765rem;padding:0.9412rem 0;position:relative}
.step .n{
  width:2.2353rem;height:2.2353rem;flex-shrink:0;z-index:1;
  display:flex;align-items:center;justify-content:center;
}
.step .n::before{
  content:"";width:0.7059rem;height:0.7059rem;border-radius:50%;background:var(--paper);
  border:1.5px solid var(--line-2);
  transition:background .35s,border-color .35s;
}
.step:hover .n::before{background:var(--ink-2);border-color:var(--ink-2)}
.step .c h3{font-family:var(--ff-serif);font-weight:500;font-size:1.22rem;line-height:1.2;margin-bottom:3px}
.step .c p{font-size:.9rem;color:var(--ink-70);line-height:1.55}
.step .opt{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--warm);margin-left:0.4706rem}
.process-aside{position:sticky;top:7.0588rem}
.process-aside .photo{aspect-ratio:4/4.5}
.process-aside .note{
  margin-top:1.2941rem;padding:1.2941rem 1.4118rem;background:var(--paper-2);
  border-radius:var(--r-md);border:1px solid var(--line);
}
.process-aside .note .q{font-family:var(--ff-serif);font-style:italic;font-size:1.18rem;line-height:1.35;color:var(--ink)}
.process-aside .note .a{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.04em;color:var(--ink-55);margin-top:0.7059rem}

/* ==========================================================================
   REASONS
   ========================================================================== */
.reasons{background:var(--paper-2)}
.reasons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.0588rem;margin-top:clamp(2rem,4vw,3.1765rem)}
.reason{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  padding:1.5294rem 1.4118rem;display:flex;flex-direction:column;gap:0.7059rem;
  transition:transform .35s var(--ease),box-shadow .35s,border-color .35s;
}
.reason:hover{transform:translateY(-0.2941rem);box-shadow:var(--shadow-card);border-color:transparent}
.reason .k{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.1em;color:var(--ink-2)}
.reason h3{font-family:var(--ff-serif);font-weight:500;font-size:1.32rem;line-height:1.1;letter-spacing:-.01em}
.reason p{font-size:.88rem;color:var(--ink-70);line-height:1.55}

/* ==========================================================================
   CTA
   ========================================================================== */
.cta{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.cta::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 80% 20%,rgba(26,77,143,.55),transparent 45%),
             radial-gradient(circle at 12% 90%,rgba(95,168,211,.22),transparent 48%);
}
.cta .container{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center}
.cta h2{margin:1.0588rem 0 0;max-width:44.7059rem}
.cta .lead{color:rgba(246,243,237,.74);max-width:30.5882rem;margin:1.2941rem auto 0}
.cta-actions{display:flex;flex-wrap:wrap;gap:0.8235rem;justify-content:center;margin-top:2.2353rem}
.cta .fineprint{font-family:var(--ff-mono);font-size:.8rem;letter-spacing:.04em;color:rgba(246,243,237,.74);margin-top:1.7647rem}

/* ==========================================================================
   INTERIOR PAGE HEADER  (Services, À propos)
   ========================================================================== */
.page-hero{
  position:relative;
  padding-top:calc(var(--nav-h) + clamp(3.0588rem,7vh,6.1176rem));
  padding-bottom:clamp(2.3529rem,5vw,4rem);
}
.page-hero .crumb{
  font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-55);display:flex;align-items:center;gap:0.5294rem;margin-bottom:1.5294rem;
}
.page-hero .crumb a{color:var(--ink-2)}
.page-hero .crumb a:hover{text-decoration:underline;text-underline-offset:3px}
.page-hero .crumb .sep{opacity:.5}
.page-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.8824rem,5vw,4.4706rem);align-items:end}
.page-hero h1{margin:1.0588rem 0 0;max-width:15ch;text-wrap:balance}
.page-hero .lead{margin-top:1.4118rem;max-width:54ch}
.page-hero .ph-aside{
  font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.04em;color:var(--ink-55);
  line-height:1.8;border-top:1px solid var(--line);padding-top:1.0588rem;
}
.page-hero .ph-aside strong{display:block;font-family:var(--ff-serif);font-style:italic;font-weight:500;font-size:1.15rem;color:var(--ink);letter-spacing:-.01em;margin-bottom:0.4706rem;text-transform:none}
@media (max-width:880px){
  .page-hero-grid{grid-template-columns:1fr;gap:1.7647rem;align-items:start}
  .page-hero h1{max-width:18ch}
}

/* section-level call to action (teaser → page) */
.sec-cta{margin-top:clamp(1.7647rem,3.5vw,2.5882rem);display:flex;justify-content:center}

/* ==========================================================================
   DETAIL ROWS  (Services page — alternating feature blocks)
   ========================================================================== */
.detail{
  display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(2rem,5vw,4.2353rem);align-items:center;
  padding-block:clamp(2.3529rem,5vw,4rem);border-top:1px solid var(--line);
}
.detail:first-of-type{border-top:none}
.detail.flip .detail-media{order:2}
.detail-media .photo{aspect-ratio:5/4}
.detail-body .ix{
  font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-2);display:flex;align-items:center;gap:0.6471rem;margin-bottom:1.0588rem;
}
.detail-body .ix::before{content:"";width:1.5294rem;height:1px;background:var(--ink-2);opacity:.6}
.detail-body h2{font-family:var(--ff-serif);font-weight:500;font-size:clamp(1.7rem,2.6vw,2.4rem);line-height:1.08;letter-spacing:-.018em}
.detail-body .body{margin-top:1.0588rem;font-size:1.02rem;max-width:48ch}
.detail-list{list-style:none;margin-top:1.4118rem;display:grid;gap:0.7059rem}
.detail-list li{
  position:relative;padding-left:1.5294rem;font-size:.96rem;color:var(--ink-70);line-height:1.55;
}
.detail-list li::before{
  content:"";position:absolute;left:0;top:.55em;width:0.5294rem;height:0.5294rem;border-radius:50%;
  border:1.5px solid var(--ink-2);
}
.detail-tags{display:flex;flex-wrap:wrap;gap:0.5294rem;margin-top:1.5294rem}
.detail-tags span{
  font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.05em;color:var(--ink-70);
  border:1px solid var(--line-2);border-radius:999px;padding:0.3529rem 0.7647rem;background:var(--paper);
}
@media (max-width:880px){
  .detail{grid-template-columns:1fr;gap:1.6471rem}
  .detail.flip .detail-media{order:0}
  .detail-media{max-width:28.2353rem}
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer{background:#08172a;color:var(--paper);padding-block:clamp(3.1765rem,6vw,4.9412rem) 1.7647rem}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.1fr;gap:clamp(1.6471rem,4vw,3.2941rem)}
.footer .brand-col img{height:2.3529rem;margin-bottom:1.0588rem;filter:brightness(0) invert(1) opacity(.92)}
.footer .brand-col p{font-size:.92rem;color:rgba(246,243,237,.6);line-height:1.62;max-width:16.4706rem}
.footer .col h4{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:1.0588rem}
.footer .col a,.footer .col .li{display:block;font-size:.95rem;color:rgba(246,243,237,.78);padding:0.3529rem 0;transition:color .2s,padding-left .25s var(--ease)}
.footer .col a:hover{color:var(--paper);padding-left:0.2941rem}
.footer-bottom{
  margin-top:clamp(2.3529rem,5vw,3.7647rem);padding-top:1.4118rem;border-top:1px solid rgba(246,243,237,.14);
  display:flex;justify-content:space-between;gap:1.0588rem;flex-wrap:wrap;
  font-family:var(--ff-mono);font-size:.68rem;color:rgba(246,243,237,.5);line-height:1.7;letter-spacing:.02em;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1080px){
  .nav-links{display:none}
  .nav-cta .btn{display:none}
  .burger{display:flex}
  .hero-grid{grid-template-columns:1fr;gap:2.5882rem}
  .hero-visual{max-width:32.9412rem}
  .hero-visual>.hero-photo{min-height:0;aspect-ratio:16/13}
  .float-badge{right:0.9412rem}
  .about-grid{grid-template-columns:1fr;gap:2.3529rem}
  .about-photo{max-width:22.3529rem;aspect-ratio:16/13}
  .process-grid{grid-template-columns:1fr;gap:2.5882rem}
  .process-aside{position:static;order:-1}
  .process-aside .photo{aspect-ratio:16/10}
  .approach{grid-template-columns:1fr;gap:2.1176rem}
  .ap-slides{min-height:0;margin-bottom:0.4706rem}
  .ap-slide{position:relative;opacity:1;transform:none;pointer-events:auto}
  .ap-slide:not(.is-active){display:none}
  .creds-grid{grid-template-columns:repeat(2,1fr)}
  .reasons-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .hero-meta{gap:1.2941rem}
  .svc-grid{grid-template-columns:1fr}
  .svc-comp{flex-direction:column;align-items:flex-start;gap:0.9412rem}
  .svc-comp-meta{align-self:stretch;padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:0.8235rem;text-align:left;max-width:none}
  .ap-big{font-size:clamp(4.5rem,18vw,6rem)}
  .reasons-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr;gap:1.8824rem}
  .sec-head .aside{text-align:left}
  .float-badge{display:none}
  .hero-photo{aspect-ratio:5/4}
}


/* ==========================================================================
   Neuropsy Horizon — interior pages (Services · À propos)
   Components specific to the wireframe Variation A layouts.
   Loaded after accueil.css; reuses the same tokens.
   ========================================================================== */

/* ---------- interior nav: keep a resting divider under the bar ---------- */
.nav{border-bottom-color:var(--line)}

/* ---------- statement band between hero and first section ---------- */
.lede-band{border-block:1px solid var(--line);background:var(--paper-2)}
.lede-band .container{padding-block:clamp(2rem,5vw,3.4118rem)}
.lede-band .eyebrow{display:block;margin-bottom:1.0588rem}
.lede-line{
  font-family:var(--ff-serif);font-weight:400;
  font-size:clamp(1.45rem,2.6vw,2.05rem);line-height:1.26;letter-spacing:-.01em;
  color:var(--ink);text-wrap:balance;
}
.lede-line em{font-style:italic;color:var(--ink-2)}

/* ---------- shared: big serif index number ---------- */
.bignum{
  display:block;font-family:var(--ff-serif);font-weight:500;
  font-size:clamp(3.2rem,5vw,4.6rem);line-height:.85;letter-spacing:-.03em;
  color:var(--ink-3);margin-bottom:0.8235rem;
}

/* ---------- Services hero + mini table of contents ---------- */
.svc-hero-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:clamp(1.8824rem,5vw,3.7647rem);align-items:end}
.svc-hero-grid h1{margin:1.0588rem 0 0;max-width:14ch;text-wrap:balance}
.mini-toc{border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--paper-2);padding:1.2941rem 1.5294rem}
.mini-toc .eyebrow{margin-bottom:0.8235rem}
.mini-toc ol{list-style:none;display:flex;flex-direction:column}
.mini-toc a{
  display:flex;align-items:flex-start;gap:0.6471rem;padding:0.6471rem 0;border-bottom:1px solid var(--line);
  font-size:.98rem;color:var(--ink-70);transition:color .2s,padding-left .3s var(--ease);
}
.mini-toc a::before{content:"";width:0.8235rem;height:1px;margin-top:.62em;background:var(--ink-3);flex-shrink:0;transition:width .3s var(--ease),background .2s}
.mini-toc li:last-child a{border-bottom:none}
.mini-toc a:hover{color:var(--ink-2);padding-left:0.3529rem}
.mini-toc a:hover::before{width:1.2941rem;background:var(--ink-2)}

@media (max-width:880px){.svc-hero-grid{grid-template-columns:1fr;gap:1.7647rem;align-items:start}.svc-hero-grid h1{max-width:18ch}}

/* ---------- service block label (reuses .detail grid) ---------- */
.detail-body .eyebrow{margin-bottom:0.8235rem}
.band-deep .eyebrow{margin-bottom:0.9412rem}

/* ---------- motifs (open-ring marker) ---------- */
.motif-head{margin-top:clamp(2rem,4vw,3.0588rem);margin-bottom:1.1765rem}
.motif-head .eyebrow{margin-bottom:0.8235rem}
.motif-head h3{font-family:var(--ff-serif);font-weight:500;font-size:clamp(1.4rem,2.1vw,1.8rem);line-height:1.1;letter-spacing:-.015em;max-width:24ch}
.motif-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.9412rem}
.motif{
  display:flex;gap:1.0588rem;align-items:flex-start;
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);
  padding:1.4118rem 1.4118rem;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s;
}
.motif:hover{transform:translateY(-0.2353rem);box-shadow:var(--shadow-card);border-color:transparent}
.motif .mk{width:0.6471rem;height:0.6471rem;border-radius:50%;border:1.5px solid var(--ink-3);min-width:0.6471rem;margin-top:0.5294rem;transition:background .35s var(--ease),border-color .35s,transform .35s var(--ease)}
.motif:hover .mk{background:var(--ink-2);border-color:var(--ink-2);transform:scale(1.18)}
.motif h4{font-family:var(--ff-serif);font-weight:500;font-size:1.28rem;line-height:1.12;letter-spacing:-.01em;margin-bottom:0.3529rem}
.motif p{font-size:.92rem;color:var(--ink-70);line-height:1.55}
@media (max-width:760px){.motif-grid{grid-template-columns:1fr}}

/* ---------- sphères évaluées (editorial index) ---------- */
.sphere-index{
  margin-top:clamp(1.5294rem,3vw,2.4706rem);
  display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(2.3529rem,5vw,4.4706rem);
}
@media (max-width:680px){.sphere-index{grid-template-columns:1fr}}
.sphere-row{
  display:block;position:relative;
  padding:clamp(1.1765rem,2.5vw,1.8824rem) 0 clamp(1.1765rem,2.5vw,1.8824rem) 0;
  border-top:1px solid var(--line);
  transition:padding-left .45s var(--ease);
}
.sphere-row::before{
  content:"→";font-family:var(--ff-mono);font-size:1.05rem;color:var(--ink-2);
  position:absolute;left:0;top:calc(clamp(1.1765rem,2.5vw,1.8824rem) + .04em);
  opacity:0;transform:translateX(-0.4706rem);transition:opacity .35s var(--ease),transform .35s var(--ease);
}
.sphere-row:hover{padding-left:clamp(1.5294rem,3vw,2.3529rem)}
.sphere-row:hover::before{opacity:1;transform:translateX(0)}
.sphere-row h4{
  font-family:var(--ff-serif);font-weight:500;
  font-size:clamp(1.45rem,2.4vw,2.05rem);line-height:1.06;letter-spacing:-.018em;
  color:var(--ink);transition:color .3s;text-wrap:balance;
}
.sphere-row:hover h4{color:var(--ink-2)}
.sphere-row p{
  font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.03em;
  color:var(--ink-55);line-height:1.6;max-width:52ch;margin-top:0.5882rem;
}
@media (max-width:680px){
  .sphere-row p{max-width:46ch}
}

/* ---------- arrow checklist ---------- */
.arrow-list{list-style:none;display:grid;gap:0.8235rem}
.arrow-list li{display:grid;grid-template-columns:auto 1fr;gap:0.8235rem;align-items:baseline;font-size:1.02rem;line-height:1.5;color:var(--ink)}
.arrow-list li::before{content:"→";font-family:var(--ff-mono);color:var(--ink-2);font-size:.95em}
.arrow-list.on-dark li{color:var(--paper)}
.arrow-list.on-dark li::before{color:var(--ink-3)}

/* ---------- inline "à noter" note (no left-border trope) ---------- */
.note-inline{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);padding:1.0588rem 1.1765rem;margin-top:1.6471rem}
.note-inline .lbl{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--warm);display:block;margin-bottom:0.4118rem}
.note-inline p{font-size:.95rem;color:var(--ink);line-height:1.55}
.note-inline strong{font-weight:600;color:var(--ink)}

/* ---------- collaboration deep-blue band ---------- */
.band-deep{background:var(--ink-2);color:var(--paper);position:relative;overflow:hidden}
.band-deep::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.6;
  background:radial-gradient(circle at 14% 18%,rgba(95,168,211,.32),transparent 44%),
             radial-gradient(circle at 88% 84%,rgba(10,26,47,.5),transparent 52%);
}
.band-deep .container{position:relative}
.band-deep-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2.1176rem,5vw,4.2353rem);align-items:start}
.band-deep h2{font-family:var(--ff-serif);font-weight:500;font-size:clamp(1.8rem,2.8vw,2.5rem);line-height:1.05;letter-spacing:-.018em;color:var(--paper)}
.band-deep .consent-note{font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(246,243,237,.92);margin-bottom:0.9412rem}
.band-deep .fineprint{font-family:var(--ff-mono);font-size:.8rem;color:rgba(246,243,237,.7);line-height:1.6;margin-top:1.0588rem;max-width:52ch}
@media (max-width:880px){.band-deep-grid{grid-template-columns:1fr;gap:1.6471rem}}

/* ---------- horizontal process flow ---------- */
.flow{display:grid;grid-template-columns:repeat(6,1fr);gap:0.8235rem;margin-top:clamp(1.8824rem,3.4vw,2.8235rem);position:relative}
.flow .node{display:flex;flex-direction:column;gap:0.8235rem;padding-top:0;position:relative}
.flow .node:nth-child(1){--di:0}
.flow .node:nth-child(2){--di:1}
.flow .node:nth-child(3){--di:2}
.flow .node:nth-child(4){--di:3}
.flow .node:nth-child(5){--di:4}
.flow .node:nth-child(6){--di:5}

/* base connector + animated colored fill that "draws" the path */
.flow .node::before,
.flow .node::after{content:"";position:absolute;left:1.1765rem;right:-2rem;top:1.1176rem;height:1.5px}
.flow .node::before{background:var(--line-2)}
.flow .node::after{background:var(--ink-2);transform:scaleX(0);transform-origin:left center}
.flow .node:last-child::before,
.flow .node:last-child::after{display:none}

/* numbered token */
.flow .node .n{
  width:2.3529rem;height:2.3529rem;border-radius:50%;flex:none;
  background:var(--paper);border:1.5px solid var(--line-2);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-serif);font-weight:500;font-size:1.18rem;line-height:1;
  padding-top:.16em;/* optically center serif numerals (no descender) */
  color:var(--ink-2);position:relative;z-index:1;
  transition:background .4s var(--ease),border-color .4s var(--ease),color .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease);
}
.flow .node:hover .n{
  background:var(--ink-2);border-color:var(--ink-2);color:var(--paper);
  transform:translateY(-2px) scale(1.06);box-shadow:0 0.7059rem 1.4118rem -0.5882rem rgba(26,77,143,.7);
}
.flow .node .lbl{font-family:var(--ff-serif);font-weight:500;font-size:1.12rem;line-height:1.12;letter-spacing:-.01em;transition:color .3s var(--ease)}
.flow .node:hover .lbl{color:var(--ink-2)}
.flow .node .sub{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.03em;color:var(--ink-55);line-height:1.5}

/* optional step — warm dashed accent */
.flow .node.is-opt .n{border-style:dashed;border-color:var(--warm);color:var(--warm)}
.flow .node.is-opt:hover .n{background:var(--warm);border-color:var(--warm);color:var(--paper);box-shadow:0 0.7059rem 1.4118rem -0.5882rem rgba(196,122,79,.7)}
.flow .node.is-opt:hover .lbl{color:var(--warm)}

/* cascade to life when scrolled into view */
.flow.anim .node .n{animation:flowPop .5s var(--ease) backwards;animation-delay:calc(var(--di) * .12s)}
.flow.anim .node .lbl,
.flow.anim .node .sub{animation:flowText .5s var(--ease) backwards;animation-delay:calc(var(--di) * .12s + .08s)}
.flow.anim .node::after{animation:flowDraw .42s var(--ease) forwards;animation-delay:calc(var(--di) * .12s + .14s)}
@keyframes flowPop{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:none}}
@keyframes flowText{from{opacity:0;transform:translateY(0.5294rem)}to{opacity:1;transform:none}}
@keyframes flowDraw{to{transform:scaleX(1)}}

@media (prefers-reduced-motion:reduce){
  .flow.anim .node .n,
  .flow.anim .node .lbl,
  .flow.anim .node .sub,
  .flow.anim .node::after{animation:none}
  .flow.anim .node::after{transform:scaleX(1)}
}

@media (max-width:880px){
  .flow{grid-template-columns:1fr 1fr 1fr;gap:1.4118rem 0.8235rem}
  .flow .node::before,.flow .node::after{display:none}
}
@media (max-width:560px){.flow{grid-template-columns:1fr 1fr}}

/* ==========================================================================
   À PROPOS
   ========================================================================== */
/* bio hero split */
.bio-hero{box-sizing:border-box;padding-top:calc(var(--nav-h) + clamp(0.4706rem,2vh,1.4118rem));max-height:100vh;overflow:hidden;display:flex;flex-direction:column}
.bio-split{display:grid;grid-template-columns:1.08fr .92fr;align-items:stretch;gap:0;border-bottom:1px solid var(--line);flex:1;min-height:0}
.bio-intro{padding:clamp(2.3529rem,6vw,4.4706rem) clamp(1.4118rem,4vw,3.2941rem);display:flex;flex-direction:column;justify-content:center;gap:1.0588rem}
.bio-intro h1{margin:0.4706rem 0 0}
.bio-intro .role{font-family:var(--ff-serif);font-style:italic;font-size:clamp(1.3rem,2vw,1.7rem);color:var(--ink-2);line-height:1.12}
.bio-intro .lead{margin-top:0.2353rem;max-width:46ch}
.bio-photo{position:relative;min-height:25.8824rem;overflow:hidden;background:var(--paper-3)}
.bio-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.94) contrast(1.02)}
.bio-photo .tag{
  position:absolute;top:1.0588rem;left:1.0588rem;font-family:var(--ff-mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);background:var(--paper-70);backdrop-filter:blur(0.3529rem);padding:0.3529rem 0.6471rem;border-radius:999px;border:1px solid rgba(255,255,255,.5);
}
@media (max-width:880px){.bio-hero{max-height:none;overflow:visible}.bio-split{grid-template-columns:1fr}.bio-photo{min-height:20rem;order:-1}}

/* facts strip */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.1765rem,3vw,2.3529rem)}
.facts .fact .k{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.facts .fact .v{font-family:var(--ff-serif);font-weight:500;font-size:1.32rem;line-height:1.15;letter-spacing:-.01em;margin-top:0.4118rem}
@media (max-width:820px){.facts{grid-template-columns:1fr 1fr;gap:1.4118rem}}

/* parcours timeline */
.tl-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(1.8824rem,5vw,3.7647rem);align-items:start}
.timeline{display:flex;flex-direction:column}
.tl-item{display:grid;grid-template-columns:7.2941rem 1fr;gap:1.2941rem;align-items:start}
.tl-item .yr{font-family:var(--ff-serif);font-weight:500;font-size:1.4rem;color:var(--ink-2);line-height:1.1}
.tl-item .body{padding:0 0 1.5294rem 1.2941rem;position:relative}
.tl-item:last-child .body{padding-bottom:0}
.tl-item .body::after{content:"";position:absolute;left:-.5px;top:0;bottom:0;width:1px;background:var(--line-2);z-index:0}
.tl-item:first-child .body::after{top:0.7647rem}
.tl-item:last-child .body::after{bottom:calc(100% - 0.7647rem)}
.tl-item .body::before{content:"";position:absolute;left:-0.2941rem;top:0.4706rem;width:0.5882rem;height:0.5882rem;border-radius:50%;background:var(--ink-2);z-index:1}
.tl-item.now .body::before{width:0.7059rem;height:0.7059rem;left:-0.3529rem}
.tl-item h4{font-family:var(--ff-serif);font-weight:500;font-size:1.22rem;line-height:1.12;letter-spacing:-.01em}
.tl-item.now h4{color:var(--ink-2)}
.tl-item p{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.03em;color:var(--ink-55);margin-top:0.2941rem;line-height:1.5}
.tl-note{font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.03em;color:var(--ink-55);margin-top:1.0588rem}
@media (max-width:880px){.tl-grid{grid-template-columns:1fr;gap:1.7647rem}}

/* approche principles */
.principles{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5294rem,3vw,2.3529rem)}
.principle{display:grid;grid-template-columns:auto 1fr;gap:1.1765rem;align-items:start}
.principle .pn{width:0.5294rem;height:0.5294rem;border-radius:50%;background:var(--ink-2);min-width:0.5294rem;margin-top:0.5294rem}
.principle h3{font-family:var(--ff-serif);font-weight:500;font-size:1.3rem;line-height:1.1;letter-spacing:-.01em;margin-bottom:0.4118rem}
.principle p{font-size:.95rem;color:var(--ink-70);line-height:1.6}
@media (max-width:760px){.principles{grid-template-columns:1fr}}

/* personal word */
.pword-grid{display:grid;grid-template-columns:.62fr 1.38fr;gap:clamp(1.8824rem,5vw,3.7647rem);align-items:center}
.pword .photo{aspect-ratio:5/4}
.pword .q{font-family:var(--ff-serif);font-weight:500;font-size:clamp(1.5rem,2.5vw,2.15rem);line-height:1.3;letter-spacing:-.015em;color:var(--ink);text-wrap:pretty}
.pword .q em{font-style:italic;color:var(--ink-2)}
.pword .by{font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-55);margin-top:1.1765rem}
@media (max-width:880px){.pword-grid{grid-template-columns:1fr;gap:1.5294rem}.pword .photo{max-width:21.1765rem}}

/* values row */
.values{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.0588rem}
.values span.v{font-family:var(--ff-serif);font-weight:500;font-style:italic;font-size:clamp(1.3rem,2vw,1.7rem);color:var(--ink);letter-spacing:-.01em}
.values span.dot{width:0.2941rem;height:0.2941rem;border-radius:50%;background:var(--line-2)}

/* ==========================================================================
   CONTACT
   ========================================================================== */
.contact-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(1.6471rem,4vw,3.2941rem);flex-wrap:wrap}
.contact-hero h1{margin:1.0588rem 0 0;max-width:14ch;text-wrap:balance}
.quick-contact{border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--paper);padding:1.2941rem 1.4118rem;min-width:15.7647rem}
.quick-contact .eyebrow{margin-bottom:0.8235rem}
.quick-contact .item+.item{margin-top:0.8235rem}
.quick-contact .k{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-55)}
.quick-contact .v{display:block;font-family:var(--ff-serif);font-size:1.28rem;color:var(--ink-2);margin-top:3px;transition:color .2s}
.quick-contact a.v:hover{color:var(--ink)}

/* urgence band (warm, full-width, no left-border trope) */
.urgence{background:rgba(196,122,79,.10);border-block:1px solid rgba(196,122,79,.42)}
.urgence .wrap{display:flex;align-items:center;gap:0.9412rem;padding-block:1.0588rem}
.urgence .mark{width:1.7647rem;height:1.7647rem;border:2px solid var(--warm);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--warm);font-family:var(--ff-mono);font-weight:600;flex-shrink:0}
.urgence p{font-size:1rem;color:var(--ink);line-height:1.4}
.urgence strong{font-weight:600}

/* form */
.contact-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(1.8824rem,4.5vw,3.7647rem);align-items:start}
.form{display:flex;flex-direction:column;gap:clamp(1.4118rem,3vw,2rem);margin-top:0.4706rem}
.form-group{display:flex;flex-direction:column;gap:0.9412rem}
.form-group>.eyebrow{margin-bottom:2px}
.form-field{display:flex;flex-direction:column;gap:0.4706rem}
.form-field label{font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2)}
.form-field label .req{color:var(--warm)}
.form-field input,.form-field textarea{
  font-family:var(--ff-sans);font-size:1rem;color:var(--ink);background:var(--paper);
  border:1.5px solid var(--line-2);border-radius:var(--r-sm);padding:0.7059rem 0.8824rem;width:100%;
  transition:border-color .2s,box-shadow .2s;
}
.form-field input::placeholder,.form-field textarea::placeholder{color:var(--ink-55)}
.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--ink-2);box-shadow:0 0 0 3px rgba(26,77,143,.12)}
.form-field textarea{resize:vertical;min-height:5.6471rem;line-height:1.55}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.0588rem}
@media (max-width:560px){.form-row{grid-template-columns:1fr}}

.seg{display:flex;gap:0.5882rem;flex-wrap:wrap}
.seg-opt{position:relative;cursor:pointer}
.seg-opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.seg-opt span{
  display:inline-flex;font-family:var(--ff-sans);font-size:.88rem;color:var(--ink-70);
  border:1.5px solid var(--line-2);border-radius:999px;padding:0.5294rem 1.0588rem;background:var(--paper);
  transition:all .2s var(--ease);
}
.seg-opt:has(input:checked) span{background:var(--ink-2);border-color:var(--ink-2);color:var(--paper)}
.seg-opt input:focus-visible+span{box-shadow:0 0 0 3px rgba(26,77,143,.18)}

.consent{display:grid;grid-template-columns:auto 1fr;gap:0.8235rem;align-items:start;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);padding:1.0588rem 1.1765rem}
.consent input{width:1.1765rem;height:1.1765rem;margin-top:2px;accent-color:var(--ink-2);flex-shrink:0}
.consent .tx{font-size:.88rem;color:var(--ink-70);line-height:1.55}
.consent a{color:var(--ink-2);text-decoration:underline;text-underline-offset:2px}
.form-submit{display:flex;align-items:center;gap:1.0588rem;flex-wrap:wrap}
.form-submit .req-note{font-family:var(--ff-mono);font-size:.66rem;color:var(--ink-55)}
.form-submit .req-note .req{color:var(--warm)}
.form-ok{display:none;background:rgba(91,138,106,.12);border:1px solid rgba(91,138,106,.4);border-radius:var(--r-sm);padding:0.8235rem 1.0588rem;font-size:.95rem;color:var(--ok);line-height:1.5}
.form-ok.show{display:block}

/* after-send sidebar */
.after-card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);padding:1.5294rem 1.5294rem;position:sticky;top:6.1176rem}
.after-list{list-style:none;display:grid;gap:0.9412rem;margin-top:0.8235rem}
.after-list li{display:grid;grid-template-columns:auto 1fr;gap:0.8824rem;align-items:start}
.after-list .pn{width:0.4706rem;height:0.4706rem;border-radius:50%;background:var(--ink-2);min-width:0.4706rem;margin-top:0.4118rem}
.after-list p{font-size:.95rem;color:var(--ink);line-height:1.42}
.after-card .priv{margin-top:1.1765rem;padding-top:1.0588rem;border-top:1px solid var(--line)}
.after-card .priv .eyebrow{margin-bottom:0.5882rem}
.after-card .priv p{font-family:var(--ff-mono);font-size:.68rem;color:var(--ink-55);line-height:1.6}
.after-card .priv a{color:var(--ink-2);margin-top:0.4706rem;display:inline-block}
@media (max-width:880px){.contact-grid{grid-template-columns:1fr}.after-card{position:static}}

/* infos pratiques cards */
.info-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.0588rem;margin-top:clamp(1.2941rem,3vw,2rem)}
.info-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:1.4118rem 1.4118rem}
.info-card h3{font-family:var(--ff-serif);font-weight:500;font-size:1.28rem;line-height:1.1;margin-bottom:0.4706rem}
.info-card p{font-size:.92rem;color:var(--ink-70);line-height:1.55}
.info-card strong{font-weight:600;color:var(--ink)}
@media (max-width:820px){.info-cards{grid-template-columns:1fr}}

/* ==========================================================================
   INFOS & FAQ
   ========================================================================== */
.whatis-mini{margin-top:1.6471rem;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);padding:1.2941rem 1.5294rem;display:flex;flex-direction:column;gap:1.0588rem}
.whatis-mini .wm-row{display:flex;gap:0.8235rem;align-items:flex-start}
.whatis-mini .wm-row::before{content:"";flex:none;width:0.5294rem;height:0.5294rem;border-radius:50%;background:var(--ink-2);margin-top:0.2941rem}
.whatis-mini .eyebrow{margin-bottom:0.2941rem;display:block}
.whatis-mini p{font-size:1rem;color:var(--ink);line-height:1.55}

.chips{display:flex;flex-wrap:wrap;gap:0.5882rem;margin-top:clamp(1.1765rem,2.5vw,1.6471rem)}
.chips span{font-family:var(--ff-sans);font-size:.92rem;color:var(--ink);background:var(--paper);border:1.5px solid var(--line-2);border-radius:999px;padding:0.5294rem 1rem;transition:all .25s var(--ease)}
.chips span:hover{border-color:var(--ink-2);color:var(--ink-2)}

/* spheres — ledger-style content list (not interactive) */
.spheres-list{list-style:none;margin:clamp(1.2941rem,3vw,2.2353rem) 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(2.1176rem,6vw,4.9412rem)}
.spheres-list .sphere{display:flex;align-items:baseline;gap:1.0588rem;padding:1.1765rem 0;border-top:1px solid var(--line)}
.spheres-list .sphere .si{font-family:var(--ff-mono);font-size:.9rem;color:var(--ink-55);line-height:1}
.spheres-list .sphere h3{font-family:var(--ff-serif);font-weight:500;font-size:clamp(1.18rem,1.5vw,1.4rem);line-height:1.15;letter-spacing:-.01em;color:var(--ink)}
@media (max-width:680px){
  .spheres-list{grid-template-columns:1fr}
  .spheres-list .sphere{padding:0.9412rem 0}
}

/* detailed process list with durations */
.proc-list{display:flex;flex-direction:column;margin-top:clamp(1.2941rem,3vw,2.3529rem)}
.proc-step{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(1.0588rem,2.5vw,1.8824rem);align-items:start;padding:1.5294rem 0;border-top:1px solid var(--line)}
.proc-step:first-child{border-top:none}
.proc-step .ix{width:2.1176rem;height:2.1176rem;min-width:2.1176rem;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--ff-mono);font-size:.76rem;letter-spacing:.02em;color:var(--ink-2);margin-top:2px}
.proc-step h3{font-family:var(--ff-serif);font-weight:500;font-size:1.34rem;line-height:1.1;letter-spacing:-.01em}
.proc-step h3 .opt{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--warm);margin-left:0.4706rem}
.proc-step p{font-size:.96rem;color:var(--ink-70);line-height:1.58;margin-top:0.4118rem;max-width:62ch}
.proc-step p strong{font-weight:600;color:var(--ink)}
.proc-step .dur{font-family:var(--ff-mono);font-size:.66rem;color:var(--ink-55);text-align:right;min-width:6.1176rem;line-height:1.6}
@media (max-width:680px){
  .proc-step{grid-template-columns:auto 1fr;gap:0.9412rem}
  .proc-step .dur{grid-column:2;text-align:left;margin-top:0.4706rem;min-width:0}
}

/* FAQ accordion */
.faq{margin-top:clamp(1.2941rem,3vw,2.3529rem);border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:1.1765rem;
  background:none;border:none;cursor:pointer;text-align:left;padding:1.4118rem 0.2353rem;
  font-family:var(--ff-serif);font-weight:500;font-size:clamp(1.15rem,1.7vw,1.4rem);
  color:var(--ink);letter-spacing:-.01em;transition:color .2s;
}
.faq-q:hover{color:var(--ink-2)}
.faq-tog{flex-shrink:0;width:1.8824rem;height:1.8824rem;border:1.5px solid var(--line-2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--ff-mono);font-size:1.1rem;color:var(--ink-2);transition:background .3s var(--ease),color .3s,border-color .3s}
.faq-item.open .faq-tog{background:var(--ink-2);border-color:var(--ink-2);color:var(--paper)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .42s var(--ease)}
.faq:not(.is-ready) .faq-a{transition:none}
.faq-a .inner{padding:0 0.2353rem 1.5294rem;font-size:1rem;color:var(--ink-70);line-height:1.62;max-width:72ch}
.faq-a .inner strong{font-weight:600;color:var(--ink)}

.ask-more{margin-top:1.5294rem;display:flex;align-items:center;gap:1.0588rem;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);padding:1.1765rem 1.4118rem;flex-wrap:wrap}
.ask-more p{font-family:var(--ff-serif);font-size:1.25rem;color:var(--ink);flex:1;min-width:11.7647rem}


/* ==========================================================================
   Neuropsy Horizon — v2 refinement layer
   Loaded AFTER accueil.css (+ pages.css). Overrides only — same components.
   Goals: bigger & looser type · fewer coloured bands · calmer rhythm ·
   subtle green + coral accents from the brand · journey component.
   ========================================================================== */

:root{
  /* slightly lighter, calmer paper */
  --paper:#faf8f4;
  --paper-2:#f2eee6;
  --paper-3:#eae4d8;
  --line:#ddd6c8;
  --line-2:#d1c9b8;
  --paper-70:rgba(250,248,244,.78);
  /* brand accents — role-based, adult calibration
     blue = trust/actions · sage = progress/reassurance · terracotta = human warmth */
  --acc-g:#4a7d6a;          /* sage-teal  */
  --acc-c:#b0603f;          /* terracotta */
  --acc-g-soft:rgba(74,125,106,.13);
  --acc-c-soft:rgba(176,96,63,.11);
  --warm:var(--acc-c);
  --ok:var(--acc-g);
}

/* sober mode (Tweaks): collapse accents back to blue */
body[data-accents="sobre"]{
  --acc-g:var(--ink-2);
  --acc-c:var(--ink-2);
  --acc-g-soft:rgba(26,77,143,.10);
  --acc-c-soft:rgba(26,77,143,.10);
}

/* ---------- 1 · typography: bigger base, looser leading, capped measure --- */
html{font-size:max(15.5px,1.05vw)} /* 17px @1620, scales with viewport, 15.5px floor */ /* 1rem base — everything in rem scales up */
body{line-height:1.7}

.lead{font-size:clamp(1.15rem,1.4vw,1.3rem);line-height:1.7;max-width:56ch}
.body{line-height:1.75;max-width:60ch}
h1.display{line-height:1.05}
h2.head{line-height:1.1}

.svc p,.reason p,.motif p,.info-card p,.cred p{font-size:1rem;line-height:1.65}
.faq-a .inner{font-size:1.06rem;line-height:1.7;max-width:64ch}
.proc-step p{font-size:1.02rem;line-height:1.68}
.arrow-list li{line-height:1.6}
.detail-body .body{font-size:1.06rem}

/* mono labels: keep the voice, soften the volume */
.eyebrow{font-size:.66rem;color:var(--ink-2)}
.sec-head .aside{color:var(--ink-55)}

/* ---------- 2 · fewer coloured bands — let white space separate ---------- */
.about,.reasons,.pword{background:transparent}
.trust{background:transparent}
.lede-band{background:transparent;border-block:none}
.lede-band .container{padding-block:clamp(0.5882rem,2vw,1.5294rem) clamp(1.5294rem,3.5vw,2.5882rem)}
.section{padding-block:clamp(4.2353rem,9vw,8rem)}
.section.tight{padding-block:clamp(3.0588rem,6vw,5.1765rem)}

/* the dark feature card becomes light — one dark moment per page (the CTA) */
.svc.feature{background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.svc.feature p{color:var(--ink-70)}
.svc.feature .ic{background:rgba(26,77,143,.10);color:var(--ink-2)}
.svc.feature:hover .ic{background:var(--ink-2);color:var(--paper)}
.svc.feature .meta{color:var(--ink-55);border-top-color:var(--line)}

/* photos: lighter veil */
.photo::after{background:linear-gradient(180deg,rgba(26,77,143,.04),rgba(10,26,47,.01) 40%,rgba(10,26,47,.10))}

/* ---------- 3 · "more alive": gentle colour, not more blocks ------------- */
/* hero atmosphere — barely-there wash of sky blue + warm coral */
.hero{position:relative}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(58% 44% at 82% 12%,rgba(95,168,211,.16),transparent 70%),
    radial-gradient(40% 34% at 6% 88%,rgba(194,106,77,.07),transparent 70%);
}
.hero>.container{position:relative}

/* rotating accent markers — blue → green → coral */
.motif:nth-of-type(3n+2) .mk{border-color:var(--acc-g)}
.motif:nth-of-type(3n+2):hover .mk{background:var(--acc-g);border-color:var(--acc-g)}
.motif:nth-of-type(3n) .mk{border-color:var(--acc-c)}
.motif:nth-of-type(3n):hover .mk{background:var(--acc-c);border-color:var(--acc-c)}

.reason:nth-of-type(3n+2) .k{color:var(--acc-g)}
.reason:nth-of-type(3n) .k{color:var(--acc-c)}

.svc-grid .svc:nth-of-type(2) .ic{background:var(--acc-g-soft);color:var(--acc-g)}
.svc-grid .svc:nth-of-type(2):hover .ic{background:var(--acc-g);color:var(--paper)}
.svc-comp .ic{background:var(--acc-c-soft);color:var(--acc-c)}
.svc-comp:hover .ic{background:var(--acc-c);color:var(--paper)}

/* value chips (À propos) pick up the trio */
.values span.dot{background:var(--ink-3)}
.values span.dot:nth-of-type(2){background:var(--acc-g)}
.values span.dot:nth-of-type(3){background:var(--acc-c)}

/* photo tag pills: tinted */
.photo .tag{color:var(--ink-2)}

/* CTA band: warmer glow, hopeful */
.cta::before{
  background:radial-gradient(circle at 80% 18%,rgba(26,77,143,.55),transparent 45%),
             radial-gradient(circle at 10% 92%,rgba(194,106,77,.20),transparent 46%);
}

/* ---------- shared: value pillar cards (À propos v2 / mission) ----------- */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:1.0588rem;margin-top:clamp(2rem,4vw,3.1765rem)}
.pillar{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  padding:1.5294rem 1.4118rem;display:flex;flex-direction:column;gap:0.5882rem;
  transition:transform .35s var(--ease),box-shadow .35s,border-color .35s;
}
.pillar:hover{transform:translateY(-0.2353rem);box-shadow:var(--shadow-card);border-color:transparent}
.pillar .pm{width:0.6471rem;height:0.6471rem;border-radius:50%;border:2px solid var(--ink-2);margin-bottom:0.3529rem}
.pillar:nth-of-type(4n+2) .pm{border-color:var(--acc-g)}
.pillar:nth-of-type(4n+3) .pm{border-color:var(--acc-c)}
.pillar:nth-of-type(4n) .pm{border-color:var(--ink-3)}
.pillar h3{font-family:var(--ff-serif);font-weight:500;font-size:1.3rem;line-height:1.12;letter-spacing:-.01em}
.pillar p{font-size:.98rem;color:var(--ink-70);line-height:1.62}
@media (max-width:1080px){.pillars{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.pillars{grid-template-columns:1fr}}

/* founder band (À propos v2) — the ONE tinted section on that page */
.founder{background:var(--paper-2);border-block:1px solid var(--line)}
.founder-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(2.1176rem,5vw,4.4706rem);align-items:start}
.founder-photo{position:sticky;top:6.4706rem}
.founder-photo .photo{aspect-ratio:4/4.8}
.founder-photo .swapnote{
  margin-top:0.8235rem;font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.03em;
  color:var(--ink-55);line-height:1.6;
}
.founder-copy h2{margin-top:0.8235rem}
.founder-copy .role{font-family:var(--ff-serif);font-style:italic;font-size:1.25rem;color:var(--ink-2);margin-top:0.5882rem}
.founder-copy .bio{margin-top:1.2941rem;display:grid;gap:0.9412rem}
.founder-copy .bio p{font-size:1.06rem;color:var(--ink-70);line-height:1.75;max-width:58ch}
.founder-creds{
  display:flex;flex-wrap:wrap;gap:0.5882rem;margin-top:1.5294rem;
}
.founder-creds span{
  font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.04em;color:var(--ink-2);
  border:1px solid var(--line-2);border-radius:999px;padding:0.4118rem 0.8235rem;background:var(--paper);
}
.founder-q{
  margin-top:1.7647rem;padding-top:1.5294rem;border-top:1px solid var(--line);
  font-family:var(--ff-serif);font-style:italic;font-size:clamp(1.3rem,1.9vw,1.6rem);
  line-height:1.45;color:var(--ink);max-width:30em;
}
.founder-q em{color:var(--ink-2)}
.founder-by{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-55);margin-top:0.9412rem}
@media (max-width:880px){
  .founder-grid{grid-template-columns:1fr;gap:1.8824rem}
  .founder-photo{position:static;max-width:22.3529rem}
}

/* trust-inner strip (À propos v2) — responsive type on the original layout */
.trust-inner .org{font-size:clamp(0.82rem,1.6vw,1.05rem)}
.trust-lbl{font-size:clamp(0.58rem,1vw,0.62rem)}

/* ==========================================================================
   JOURNEY — le parcours d'une évaluation (Services v2)
   Three treatments, switched by body[data-journey]: timeline (default),
   stepper, cartes.
   ========================================================================== */
.journey{margin-top:clamp(1.7647rem,3.5vw,2.9412rem)}

.j-step{position:relative}
.j-step .n{
  width:2.5882rem;height:2.5882rem;border-radius:50%;flex:none;position:relative;z-index:1;
  background:var(--paper);border:1.5px solid var(--line-2);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-serif);font-weight:500;font-size:1.25rem;line-height:1;padding-top:.14em;
  color:var(--ink-2);
  transition:background .35s var(--ease),border-color .35s,color .35s,transform .35s var(--ease);
}
.j-step:hover .n{background:var(--ink-2);border-color:var(--ink-2);color:var(--paper)}
.j-step h3{font-family:var(--ff-serif);font-weight:500;font-size:1.35rem;line-height:1.15;letter-spacing:-.01em}
.j-step p{font-size:1rem;color:var(--ink-70);line-height:1.65;margin-top:0.3529rem;max-width:52ch}
.j-dur{
  display:inline-flex;align-items:center;gap:0.4118rem;width:fit-content;
  font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.05em;color:var(--acc-g);
  background:var(--acc-g-soft);border-radius:999px;padding:0.2941rem 0.7059rem;white-space:nowrap;
}
.j-step.is-opt .n{border-style:dashed;border-color:var(--acc-c);color:var(--acc-c)}
.j-step.is-opt:hover .n{background:var(--acc-c);border-color:var(--acc-c);color:var(--paper)}
.j-step.is-opt .j-dur{color:var(--acc-c);background:var(--acc-c-soft)}

/* --- treatment 1 · vertical timeline (default) --- */
body[data-journey="timeline"] .journey,
body:not([data-journey]) .journey{max-width:48.2353rem;display:flex;flex-direction:column;position:relative}
body[data-journey="timeline"] .journey::before,
body:not([data-journey]) .journey::before{
  content:"";position:absolute;left:1.2647rem;top:1.5294rem;bottom:1.5294rem;width:1.5px;background:var(--line-2);
}
body[data-journey="timeline"] .j-step,
body:not([data-journey]) .j-step{
  display:grid;grid-template-columns:2.5882rem 1fr auto;gap:1.2941rem;align-items:start;
  padding-block:1.1765rem;
}
body[data-journey="timeline"] .j-dur,
body:not([data-journey]) .j-dur{margin-top:0.5882rem}
@media (max-width:620px){
  body[data-journey="timeline"] .j-step,
  body:not([data-journey]) .j-step{grid-template-columns:2.5882rem 1fr}
  body[data-journey="timeline"] .j-dur,
  body:not([data-journey]) .j-dur{grid-column:2}
}

/* --- treatment 2 · horizontal stepper --- */
body[data-journey="stepper"] .journey{display:grid;grid-template-columns:repeat(6,1fr);gap:0.9412rem}
body[data-journey="stepper"] .j-step{display:flex;flex-direction:column;gap:0.7059rem}
body[data-journey="stepper"] .j-step::before{
  content:"";position:absolute;left:1.2941rem;right:-2.2353rem;top:1.2647rem;height:1.5px;background:var(--line-2);
}
body[data-journey="stepper"] .j-step:last-child::before{display:none}
body[data-journey="stepper"] .j-step h3{font-size:1.12rem}
body[data-journey="stepper"] .j-step p{font-size:.9rem;line-height:1.55}
body[data-journey="stepper"] .j-dur{margin-top:auto}
@media (max-width:1080px){
  body[data-journey="stepper"] .journey{grid-template-columns:repeat(3,1fr);gap:1.6471rem 1.0588rem}
  body[data-journey="stepper"] .j-step::before{display:none}
}
@media (max-width:620px){body[data-journey="stepper"] .journey{grid-template-columns:1fr 1fr}}

/* --- treatment 3 · cartes --- */
body[data-journey="cartes"] .journey{display:grid;grid-template-columns:repeat(3,1fr);gap:1.0588rem}
body[data-journey="cartes"] .j-step{
  display:flex;flex-direction:column;gap:0.7059rem;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  padding:1.5294rem 1.4118rem;
  transition:transform .35s var(--ease),box-shadow .35s,border-color .35s;
}
body[data-journey="cartes"] .j-step:hover{transform:translateY(-0.2353rem);box-shadow:var(--shadow-card);border-color:transparent}
body[data-journey="cartes"] .j-step .n{width:2.3529rem;height:2.3529rem;font-size:1.15rem}
body[data-journey="cartes"] .j-step p{font-size:.95rem}
body[data-journey="cartes"] .j-dur{margin-top:auto}
@media (max-width:1080px){body[data-journey="cartes"] .journey{grid-template-columns:1fr 1fr}}
@media (max-width:620px){body[data-journey="cartes"] .journey{grid-template-columns:1fr}}

/* ---------- FAQ v2: anchor links, calmer toggles ------------------------- */
.faq-item{scroll-margin-top:calc(var(--nav-h) + 1.1765rem)}
.faq-q{padding-block:1.5294rem}
.faq-link{
  margin-left:0.5882rem;font-family:var(--ff-mono);font-size:.9rem;color:var(--line-2);
  opacity:0;transition:opacity .2s,color .2s;text-decoration:none;
}
.faq-q:hover .faq-link{opacity:1}
.faq-link:hover{color:var(--ink-2)}

/* ==========================================================================
   v2.1 — BIGGER COLOUR MOVES · soft full-bleed section tints
   Three surfaces from the brand trio; applied per-section via .tint-* classes.
   ========================================================================== */
:root{
  /* all three tints are white-mixes of the two logo blues — no foreign hues */
  --tint-blue:#dcecf5;   /* sky   — logo #5fa8d3 @ 78% white (heroes) */
  --tint-green:#eaf3f8;  /* mist  — logo #5fa8d3 @ 87% white (lightest) */
  --tint-sand:#dde4ee;   /* slate — logo #1a4d8f @ 85% white (deepest) */
}
.section.tint-blue,.tint-blue{background:var(--tint-blue)}
.section.tint-green,.tint-green{background:var(--tint-green)}
.section.tint-sand,.tint-sand{background:var(--tint-sand)}

/* cards & surfaces sit white on tinted sections */
.tint-blue .motif,.tint-green .motif,.tint-sand .motif,
.tint-blue .reason,.tint-green .reason,.tint-sand .reason,
.tint-blue .pillar,.tint-green .pillar,.tint-sand .pillar{background:#fffdfa}
.tint-blue .photo,.tint-green .photo,.tint-sand .photo{box-shadow:var(--shadow-card)}
.tint-sand .j-dur{background:rgba(255,253,250,.85)}
.tint-sand .note-inline,.tint-blue .note-inline{background:#fffdfa}
body[data-journey="cartes"] .tint-sand .j-step{background:#fffdfa;border-color:rgba(10,26,47,.10)}

/* hero: real colour, not a hint — sky gradient settling into paper */
.hero::before{
  background:
    linear-gradient(180deg,var(--tint-blue) 0%,rgba(250,248,244,0) 88%),
    radial-gradient(42% 36% at 8% 92%,rgba(194,106,77,.10),transparent 70%);
}
/* interior page heroes get the same sky wash */
.page-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,var(--tint-blue) 0%,rgba(250,248,244,0) 92%);
}
.page-hero>.container{position:relative}

/* tinted sections keep components legible */
.tint-blue .mini-toc,.tint-blue .quick-contact{background:#fffdfa}
.tint-blue .info-card,.tint-green .info-card,.tint-sand .info-card{background:#fffdfa}
.tint-sand.founder{border-block:none}
.founder .trust-inner{padding-block:0;margin-top:4.7059rem}

/* Tweaks: neutral backgrounds mode */
body[data-fonds="neutres"] .tint-blue,
body[data-fonds="neutres"] .tint-green,
body[data-fonds="neutres"] .tint-sand{background:transparent}
body[data-fonds="neutres"] .founder{background:var(--paper-2)}
body[data-fonds="neutres"] .hero::before,
body[data-fonds="neutres"] .page-hero::before{opacity:.4}

/* ---------- hero meta: equal columns, ruled dividers ---------------------- */
.hero-meta{
  display:grid;grid-template-columns:0.9fr 1.4fr;gap:0;
}
.hero-meta .stat{
  padding-inline:clamp(0.9rem,1.6vw,1.6rem);
  border-left:1px solid var(--line);
}
.hero-meta .stat:first-child{border-left:none;padding-left:0}
.hero-meta .stat .v{font-size:clamp(1.35rem,1.6vw,1.7rem);white-space:nowrap}
.hero-meta .stat .k{margin-top:0.5rem}

/* ---------- misc calm-downs ---------------------------------------------- */
.float-badge{box-shadow:var(--shadow-card)}
.sec-head{margin-bottom:clamp(2.3529rem,4.5vw,3.8824rem)}
.mini-toc{background:var(--paper);border-color:var(--line)}
.urgence{background:var(--acc-c-soft);border-block:1px solid rgba(194,106,77,.38)}
.after-card{background:var(--paper);border-color:var(--line-2)}
.consent{background:var(--paper);border-color:var(--line-2)}
.note-inline{background:var(--paper);border-color:var(--line-2)}
.whatis-mini{background:var(--paper);border-color:var(--line-2)}
.ask-more{background:var(--paper);border-color:var(--line-2)}


/* ==========================================================================
   NEUROPSY HORIZON — imagery layer (v2)
   Vignettes, section chips, soft band photos + photo-treatment tweaks
   ========================================================================== */

/* ---------- 1 · reason-card vignettes ---------- */
.reason .rphoto{
  position:relative;overflow:hidden;border-radius:calc(var(--r-md) - 0.3529rem);
  aspect-ratio:16/9;margin:-2px 0 0.3529rem;background:var(--paper-3);isolation:isolate;
}
.reason .rphoto img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:saturate(.92) contrast(1.02);transition:transform 1.2s var(--ease);
}
.reason .rphoto::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(26,77,143,.05),rgba(10,26,47,.10));
  mix-blend-mode:multiply;
}
.reason:hover .rphoto img{transform:scale(1.05)}

/* ---------- 3 · soft photo behind dark bands (CTA, collaboration) --------- */
.band-photo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.band-photo img{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:.15;filter:grayscale(.6) contrast(1.05);mix-blend-mode:luminosity;
}
.cta>.container,.band-deep>.container{position:relative;z-index:1}

/* ---------- 4 · parcours companion photo (timeline layout) ---------- */
.parcours-grid{display:grid;grid-template-columns:1fr;align-items:start}
body[data-journey="timeline"] .parcours-grid,
body:not([data-journey]) .parcours-grid{grid-template-columns:1.15fr .85fr;gap:clamp(1.8824rem,4.5vw,4.2353rem)}
.parcours-aside{display:none;position:sticky;top:6.4706rem}
body[data-journey="timeline"] .parcours-aside,
body:not([data-journey]) .parcours-aside{display:block;margin-top:clamp(1.7647rem,3.5vw,2.9412rem)}
.parcours-aside .photo{aspect-ratio:4/4.6}

/* connector line stops at the last circle: per-step segments instead of one long line */
body[data-journey="timeline"] .journey::before,
body:not([data-journey]) .journey::before{display:none}
body[data-journey="timeline"] .j-step:not(:last-child)::before,
body:not([data-journey]) .j-step:not(:last-child)::before{
  content:"";position:absolute;left:1.2647rem;top:1.5294rem;bottom:-1.5294rem;width:1.5px;background:var(--line-2);
}

/* CTA moved inside the timeline column */
.journey-col{min-width:0}
.j-cta{margin-top:clamp(1.4118rem,3vw,2.3529rem);text-align:left;justify-content:flex-start;padding-left:3.8824rem;margin-left:0;max-width:48.2353rem}
@media (max-width:620px){.j-cta{padding-left:0}}

/* one image per step — crossfade driven by step interaction (site.js) */
.parcours-photo{position:relative;overflow:hidden}
.parcours-photo .j-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.04);
  transition:opacity .6s ease,transform 1.2s ease;
}
.parcours-photo .j-img.is-active{opacity:1;transform:scale(1)}
@media (prefers-reduced-motion: reduce){
  .parcours-photo .j-img{transition:none;transform:none}
}
@media (max-width:880px){
  body[data-journey="timeline"] .parcours-grid,
  body:not([data-journey]) .parcours-grid{grid-template-columns:1fr}
  .parcours-aside{position:static;max-width:22.3529rem}
  .parcours-aside .photo{aspect-ratio:16/10}
}

/* ---------- legacy strip (unused) ---------- */
.photo-strip{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0.9412rem;
  margin-bottom:clamp(1.7647rem,3.5vw,2.7059rem);
}
.photo-strip .ps{
  position:relative;overflow:hidden;border-radius:var(--r-md);aspect-ratio:16/10;
  isolation:isolate;box-shadow:var(--shadow-soft);background:var(--paper-3);
}
.photo-strip .ps img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:saturate(.92) contrast(1.02);transition:transform 1.2s var(--ease);
}
.photo-strip .ps::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(26,77,143,.05),rgba(10,26,47,.12));
  mix-blend-mode:multiply;
}
.photo-strip .ps:hover img{transform:scale(1.04)}
.photo-strip .cap{
  position:absolute;left:0.7059rem;bottom:0.7059rem;z-index:2;
  font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);background:var(--paper-70);backdrop-filter:blur(0.3529rem);
  padding:0.2941rem 0.5882rem;border-radius:999px;border:1px solid rgba(255,255,255,.5);
}
@media (max-width:640px){
  .photo-strip{gap:0.4706rem}
  .photo-strip .cap{display:none}
}

/* ---------- 5 · full-bleed photo band (À propos) ---------- */
.photo-band{padding-block:0 clamp(2.5882rem,5vw,4.2353rem)}
.photo-band .photo{aspect-ratio:21/8}
@media (max-width:720px){.photo-band .photo{aspect-ratio:4/3}}

/* ---------- 6 · photo inside the contact after-card ---------- */
.after-card .photo{aspect-ratio:5/3;margin:-0.2353rem 0 1.1765rem}
[data-photo-forme="arche"] .after-card .photo{border-radius:35.2941rem 35.2941rem var(--r-lg) var(--r-lg)}
[data-photo-forme="arche"] .after-card .photo .tag{left:50%;top:0.8235rem;transform:translateX(-50%);white-space:nowrap}

/* ==========================================================================
   TREATMENT TWEAKS
   body[data-photo-tone="couleur" | "duotone"]
   body[data-photo-forme="droit" | "arche"]
   ========================================================================== */

/* duotone: blue monochrome, matches brand ink */
body[data-photo-tone="duotone"] :is(.photo,.rphoto,.sec-chip,.ps) img{
  filter:grayscale(1) sepia(.85) hue-rotate(175deg) saturate(2.2) brightness(1.03) contrast(1.02);
}
body[data-photo-tone="duotone"] .band-photo img{opacity:.17}

/* arche: soft arch tops on the large editorial photos */
body[data-photo-forme="arche"] :is(
  .hero-visual .hero-photo,
  .about-photo .photo,
  .founder-photo .photo,
  .detail-media .photo,
  .pword .photo,
  .process-aside .photo){
  border-radius:35.2941rem 35.2941rem var(--r-lg) var(--r-lg);
}
body[data-photo-forme="arche"] :is(
  .hero-visual .hero-photo,
  .about-photo .photo,
  .founder-photo .photo,
  .detail-media .photo) .tag{
  left:50%;top:1.0588rem;transform:translateX(-50%);white-space:nowrap;
}

.legal-grid{display:grid;grid-template-columns:17.6471rem 1fr;gap:clamp(2.3529rem,5vw,4.7059rem);align-items:start}
.legal-toc{position:sticky;top:6.5rem}
.legal-toc .mini-toc a{font-size:.92rem}
.legal{max-width:none}
.legal .updated{font-family:'IBM Plex Mono',monospace;font-size:0.8235rem;color:var(--ink-55);letter-spacing:.02em;margin-bottom:2.3529rem}
.legal .intro{font-size:1.0588rem;color:var(--ink-70);max-width:60ch}
.legal-section{padding-top:2.3529rem;margin-top:2.3529rem;border-top:1px solid var(--line)}
.legal-section:first-of-type{border-top:none;margin-top:2.9412rem;padding-top:0}
.legal h2{font-size:clamp(1.2rem,2vw,1.5rem);margin:0 0 0.9412rem;scroll-margin-top:6.5rem}
.legal h3{font-size:1rem;font-weight:600;margin:1.7647rem 0 0.5882rem;font-family:'DM Sans',sans-serif}
.legal p{margin-bottom:1.1765rem;line-height:1.7;max-width:64ch}
.legal ul{margin:0 0 1.1765rem;padding-left:1.3rem;line-height:1.7;max-width:64ch}
.legal ul li{margin-bottom:0.4rem}
.legal a{color:var(--ink);text-decoration-color:currentColor;text-underline-offset:2px}
.legal a:hover{color:var(--ink-2)}
@media (max-width:880px){.legal-grid{grid-template-columns:1fr}.legal-toc{position:static}}
