/* Healthcare Resource Services — « Sauge et encre ».
   Rythme : photo pleine largeur, titres serif, sections calmes. Le mouvement ne cache rien sans JS :
   les états de départ ne s'appliquent que sous html.js:not(.rm). */
:root{
  --bg:#F5F5F0;
  --bg-deep:#ECEDE6;
  --ink:#1B2621;
  --muted:#5C6A63;
  --green:#2F5D4F;
  --green-deep:#24493E;
  --sage:#E4EBE4;
  --sage-deep:#D2DCD3;
  --paper:#F5F5F0;
  --paper-dim:rgba(245,245,240,.7);
  --line:rgba(27,38,33,.16);
  --line-dark:rgba(245,245,240,.2);
  --gutter:48px;
  --max:1520px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
@media (max-width:1024px){:root{--gutter:32px}}
@media (max-width:720px){:root{--gutter:22px}}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--bg);color:var(--ink);font-family:'Figtree',system-ui,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.dark :focus-visible,.nav:not(.is-scrolled) :focus-visible,.menu :focus-visible{outline-color:var(--paper)}

.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.skip{position:absolute;left:-999px;top:0;background:var(--green);color:var(--paper);padding:12px 18px;z-index:100;font-size:13px}
.skip:focus{left:16px;top:16px}

h1,h2,h3,h4{font-family:'Newsreader',Georgia,serif;font-optical-sizing:auto;font-weight:400;letter-spacing:-.01em;text-wrap:balance}
.display{font-size:clamp(38px,5.2vw,80px);line-height:1.04}
.headline{font-size:clamp(32px,4vw,60px);line-height:1.06;letter-spacing:-.015em}
.display em,.headline em,.quote em{font-style:italic}
.eyebrow{display:flex;align-items:center;gap:14px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:22px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;flex:none}
.dark .eyebrow{color:rgba(245,245,240,.85)}
.lede{font-size:17.5px;line-height:1.65;color:var(--muted);max-width:520px}
.dark .lede{color:var(--paper-dim)}
.body{max-width:600px;color:var(--muted)}
.body p+p{margin-top:16px}
.dark .body{color:var(--paper-dim)}

.link{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:12px 0 9px;position:relative;min-height:44px}
.link::after,.link::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px}
.link::after{background:currentColor;opacity:.3}
.link::before{background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease);z-index:1}
.dark .link::before{background:var(--paper)}
.link:hover::before{transform:scaleX(1)}
.link svg{width:16px;height:16px;transition:transform .5s var(--ease)}
.link:hover svg{transform:translateX(4px)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:0 28px;border:1px solid var(--green);background:var(--green);color:var(--paper);font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;position:relative;overflow:hidden;isolation:isolate;transition:color .5s var(--ease),border-color .5s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:var(--green-deep);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease);z-index:-1}
.btn:hover::before{transform:scaleX(1)}
.btn.light{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.btn.light::before{background:#fff}
.btn.ghost{background:transparent;border-color:currentColor;color:inherit}
.btn.ghost::before{background:var(--paper)}
.btn.ghost:hover{color:var(--ink);border-color:var(--paper)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 32px}

/* Navigation */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:28px var(--gutter);color:var(--paper);border-bottom:1px solid transparent;transition:background .6s var(--ease),padding .6s var(--ease),color .6s var(--ease),border-color .6s var(--ease)}
.nav.is-scrolled{background:rgba(245,245,240,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);padding:14px var(--gutter);border-bottom-color:var(--line)}
.nav.menu-open{background:transparent;color:var(--paper);border-bottom-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.nav-logo{font-family:'Newsreader',Georgia,serif;font-size:19px;font-weight:500;white-space:nowrap;line-height:1.1}
.nav-logo small{display:block;font-family:'Figtree',system-ui,sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;opacity:.72;margin-top:3px}
.nav-links{display:flex;align-items:center;gap:30px;font-size:12.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.nav-links a{opacity:.82;padding:10px 0;transition:opacity .3s}
.nav-links a:hover{opacity:1}
.nav-cta{border:1px solid currentColor;padding:13px 22px;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;transition:background .4s,color .4s}
.nav:not(.is-scrolled) .nav-cta:hover{background:var(--paper);color:var(--ink)}
.nav.is-scrolled .nav-cta:hover{background:var(--green);color:var(--paper);border-color:var(--green)}
.nav-burger{display:none;width:44px;height:44px;position:relative;z-index:61}
.nav-burger i{position:absolute;left:11px;right:11px;height:1.5px;background:currentColor;transition:transform .5s var(--ease),top .5s var(--ease)}
.nav-burger i:first-child{top:17px}
.nav-burger i:last-child{top:26px}
.nav.menu-open .nav-burger i:first-child{top:21px;transform:rotate(45deg)}
.nav.menu-open .nav-burger i:last-child{top:21px;transform:rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:55;background:var(--green);color:var(--paper);display:flex;flex-direction:column;justify-content:center;padding:120px var(--gutter) 60px;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility 0s .5s}
.menu.is-open{opacity:1;visibility:visible;transition:opacity .5s var(--ease)}
.menu a{font-family:'Newsreader',Georgia,serif;font-size:clamp(30px,8vw,44px);line-height:1.25;padding:6px 0;opacity:.92}
.menu .menu-foot{margin-top:40px;padding-top:24px;border-top:1px solid var(--line-dark);font-size:14px;color:var(--paper-dim)}
.menu .menu-foot a{font-family:'Figtree',system-ui,sans-serif;font-size:15px;color:var(--paper);display:inline-block;margin-top:6px}
@media (max-width:1024px){
  .nav-links,.nav-cta{display:none}
  .nav-burger{display:block}
}

/* Hero */
.hero{position:relative;min-height:min(90vh,880px);display:flex;align-items:flex-end;color:var(--paper);overflow:hidden;background:var(--green-deep)}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,38,33,.46) 0%,rgba(27,38,33,.18) 38%,rgba(27,38,33,.84) 100%)}
.hero-inner{position:relative;width:100%;padding-top:150px;padding-bottom:64px}
.hero h1{max-width:15ch;color:#fff}
.hero .lede{margin-top:26px;color:var(--paper-dim);max-width:560px}
.hero .actions{margin-top:36px}
.hero .link::before{background:var(--paper)}
.hero-side{display:flex;align-items:center;gap:14px;margin-top:44px;padding-top:22px;border-top:1px solid var(--line-dark);font-size:14px;color:var(--paper-dim);max-width:560px}
.hero-side a{color:var(--paper);white-space:nowrap;border-bottom:1px solid var(--line-dark);transition:border-color .3s}
.hero-side a:hover{border-color:var(--paper)}
@media (max-width:720px){
  .hero{min-height:88svh}
  .hero-inner{padding-top:120px;padding-bottom:44px}
  .hero-side{flex-direction:column;align-items:flex-start;gap:8px}
}

/* Bandeau de confiance : le filet vert se trace à l'arrivée. */
.trust{padding:34px 0 38px;border-bottom:1px solid var(--line);position:relative}
.trust::before{content:"";position:absolute;left:var(--gutter);right:var(--gutter);top:0;height:1px;background:var(--green);transform-origin:left;transition:transform 1.4s var(--ease)}
.js:not(.rm) .trust::before{transform:scaleX(0)}
.js:not(.rm) .trust.is-in::before{transform:scaleX(1)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.trust-num{font-family:'Newsreader',Georgia,serif;font-size:clamp(30px,3vw,42px);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.trust-lab{font-size:13px;color:var(--muted);margin-top:8px;letter-spacing:.02em}
@media (max-width:720px){.trust-grid{grid-template-columns:repeat(2,1fr);gap:26px 18px}}

/* Sections */
.sec{padding:clamp(84px,9vw,140px) 0}
.band{background:var(--sage)}
.dark{background:var(--green);color:var(--paper)}
.sec-head{max-width:720px;margin-bottom:clamp(40px,5vw,64px)}
.sec-head .lede{margin-top:22px}

/* Qui nous servons : photo et texte, en alternance. */
.serve{display:grid;grid-template-columns:5fr 6fr;gap:clamp(40px,6vw,96px);align-items:center}
.serve.flip .serve-fig{order:2}
.serve-fig{aspect-ratio:3/4;overflow:hidden;background:var(--sage-deep)}
.serve-fig img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.serve-fig:hover img{transform:scale(1.04)}
.serve-body .lede{margin-top:22px}
.points{margin-top:36px;border-top:1px solid var(--line)}
.points li{padding:22px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:16px 28px}
.points h3{font-size:21px;line-height:1.25;font-weight:500}
.points p{font-size:15px;line-height:1.6;color:var(--muted)}
.serve-body .link{margin-top:30px}
@media (max-width:900px){
  .serve{grid-template-columns:1fr;gap:36px}
  .serve.flip .serve-fig{order:0}
  .serve-fig{aspect-ratio:4/3}
  .points li{grid-template-columns:1fr;gap:8px}
}

/* Seul ou accompagné : deux colonnes qui se lisent en un coup d'œil. */
.contrast{width:100%;border-collapse:collapse;margin-top:8px}
.contrast th{font-family:'Newsreader',Georgia,serif;font-size:22px;font-weight:500;text-align:left;padding:0 26px 18px;border-bottom:1px solid var(--ink);width:50%}
.contrast th.with{color:var(--green)}
.contrast td{vertical-align:top;padding:22px 26px;border-bottom:1px solid var(--line);font-size:15.5px;line-height:1.55}
.contrast td.alone{color:var(--muted)}
.contrast td.with{background:rgba(47,93,79,.07);border-left:2px solid var(--green);color:var(--ink)}
.contrast td strong{display:block;font-weight:600;margin-bottom:4px}
@media (max-width:720px){
  .contrast thead{display:none}
  .contrast,.contrast tbody,.contrast tr,.contrast td{display:block}
  .contrast tr{margin-bottom:26px}
  .contrast td{padding:16px 18px;border-bottom:0}
  .contrast td::before{content:attr(data-h);display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;color:var(--muted)}
  .contrast td.with::before{color:var(--green)}
  .contrast td.alone{border:1px solid var(--line);border-bottom:0}
}

/* Trois étapes, à la verticale, avec une piste qui suit le défilement. */
.steps{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px);align-items:start}
.steps-head{position:sticky;top:120px}
.steps-head .lede{margin-top:22px}
.steps-list{position:relative;padding-left:52px}
.track{position:absolute;left:0;top:10px;bottom:10px;width:2px;background:var(--line)}
.track i{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--green);transform-origin:top;transform:scaleY(0)}
.track b{position:absolute;left:50%;top:0;width:12px;height:12px;margin-left:-6px;margin-top:-6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px var(--bg)}
.step{padding:0 0 clamp(40px,5vw,64px)}
.step:last-child{padding-bottom:0}
.step-n{display:block;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:12px}
.step h3{font-size:clamp(24px,2.2vw,32px);line-height:1.15;font-weight:500;margin-bottom:12px;transition:color .6s var(--ease)}
.step p{color:var(--muted);max-width:520px}
.js:not(.rm) .step h3{color:var(--muted)}
.js:not(.rm) .step.is-on h3{color:var(--ink)}
@media (max-width:900px){
  .steps{grid-template-columns:1fr;gap:40px}
  .steps-head{position:static}
}

/* Placement : photo pleine largeur avec parallaxe léger. */
.story{position:relative;min-height:min(84vh,760px);display:flex;align-items:center;color:var(--paper);overflow:hidden;background:var(--green-deep)}
.story-media{position:absolute;inset:0}
.story-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.story-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(27,38,33,.82) 0%,rgba(27,38,33,.55) 45%,rgba(27,38,33,.25) 100%)}
.story-inner{position:relative;width:100%;padding-top:96px;padding-bottom:96px}
.hero .eyebrow,.story .eyebrow{color:rgba(245,245,240,.85)}
.nb{white-space:nowrap}
.story h2{max-width:14ch;color:#fff}
.story .body{margin-top:24px;color:var(--paper-dim);max-width:560px}
.story .link{margin-top:28px}
.story .link::before{background:var(--paper)}
@media (max-width:720px){.story-media::after{background:linear-gradient(180deg,rgba(27,38,33,.5) 0%,rgba(27,38,33,.8) 100%)}}

/* Équipe */
.about{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px);align-items:start}
.about .body{margin-top:24px}
.people{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px;border-top:1px solid var(--line)}
.person{padding:24px 0 26px;border-bottom:1px solid var(--line)}
.person h3{font-size:24px;font-weight:500;line-height:1.2}
.person .role{font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-top:6px}
.person .who{font-size:14.5px;color:var(--muted);margin-top:10px;max-width:420px}
.person a{display:inline-block;font-size:14.5px;margin-top:10px;color:var(--ink);border-bottom:1px solid var(--line);transition:border-color .3s}
.person a:hover{border-color:var(--ink)}
.person a+a{margin-left:0}
@media (max-width:900px){.about{grid-template-columns:1fr;gap:40px}}
@media (max-width:900px){.people{grid-template-columns:1fr}}

/* Témoignage */
.quote{max-width:1040px;margin:0 auto;text-align:center}
.quote blockquote{font-family:'Newsreader',Georgia,serif;font-size:clamp(24px,2.7vw,40px);line-height:1.3;font-weight:400;letter-spacing:-.01em;text-wrap:balance}
.quote blockquote::before{content:"\201C";display:block;font-size:80px;line-height:.5;color:var(--green);margin-bottom:26px}
.quote figcaption{margin-top:32px;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}

/* Contact */
.contact{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px);align-items:start}
.contact .lede{margin-top:22px}
.contact-list{margin-top:40px;border-top:1px solid var(--line-dark)}
.contact-list li{padding:20px 0;border-bottom:1px solid var(--line-dark);display:grid;grid-template-columns:110px 1fr;gap:8px 20px;font-size:15.5px}
.contact-list span{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-dim);padding-top:4px}
.contact-list a{border-bottom:1px solid var(--line-dark);transition:border-color .3s}
.contact-list a:hover{border-color:var(--paper)}
.contact-list .big{font-family:'Newsreader',Georgia,serif;font-size:clamp(24px,2.4vw,34px);line-height:1.1;border:0}
.form{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px}
.form .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--paper-dim)}
.field input,.field textarea{font:inherit;font-family:'Figtree',system-ui,sans-serif;font-size:16px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--paper);background:rgba(245,245,240,.06);border:1px solid var(--line-dark);padding:14px 16px;border-radius:0;transition:border-color .3s,background .3s}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--paper);background:rgba(245,245,240,.1)}
.field textarea{min-height:150px;resize:vertical}
.form-note{grid-column:1/-1;font-size:14px;color:var(--paper-dim);display:flex;gap:12px;align-items:flex-start}
.form-note svg{width:18px;height:18px;flex:none;margin-top:2px}
.form-ok{grid-column:1/-1;font-size:15px;color:var(--paper);padding:14px 18px;border:1px solid var(--line-dark)}
@media (max-width:900px){.contact{grid-template-columns:1fr;gap:48px}}
@media (max-width:560px){.form{grid-template-columns:1fr}.contact-list li{grid-template-columns:1fr}}

/* Pied de page */
.foot{background:var(--green-deep);color:var(--paper-dim);padding:64px 0 40px;font-size:14px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid var(--line-dark)}
.foot-logo{font-family:'Newsreader',Georgia,serif;font-size:22px;color:var(--paper);line-height:1.15}
.foot p{max-width:420px;margin-top:14px}
.foot h4{font-family:'Figtree',system-ui,sans-serif;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);margin-bottom:16px}
.foot li+li{margin-top:9px}
.foot a{transition:color .3s}
.foot a:hover{color:var(--paper)}
.foot-legal{padding-top:26px;font-size:13px;display:grid;gap:12px}
.foot-legal p{max-width:none;margin:0}

/* 404 : barre de navigation posée sur fond clair dès le départ. */
.plain .nav{color:var(--ink)}
.oops{min-height:100vh;display:flex;align-items:center;padding:140px 0 80px}
.oops .actions{margin-top:36px}

/* Mouvement : états de départ, seulement quand le JS et GSAP sont là. */
.js:not(.rm) [data-reveal]{opacity:0;transform:translateY(24px)}
.js:not(.rm) .nav{opacity:0}
.js:not(.rm) .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .06em .12em;margin:0 -.06em -.12em}
.js:not(.rm) .w>span{display:inline-block;will-change:transform}
.js:not(.rm) [data-media]{clip-path:inset(0 0 100% 0)}
.js:not(.rm) [data-media] img{will-change:transform}
[data-media].is-in img{will-change:auto}

/* ---- Pages intérieures et blocs ajoutés le 2026-09-11 (site multi-pages) ---- */
.inner .nav{color:var(--ink)}
.inner .nav:not(.is-scrolled) .nav-cta:hover{background:var(--green);color:var(--paper);border-color:var(--green)}
.nav-links a[aria-current="page"]{opacity:1;position:relative}
.nav-links a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1px;background:currentColor}
.menu a[aria-current="page"]{opacity:1;text-decoration:underline;text-underline-offset:10px;text-decoration-thickness:1px}
.page-head{background:var(--sage);padding:clamp(150px,20vh,190px) 0 clamp(56px,7vw,88px)}
.page-head .display{max-width:17ch;font-size:clamp(38px,4.8vw,68px)}
.page-head .lede{margin-top:24px;max-width:620px}
.band{background:var(--sage);padding:clamp(56px,7vw,96px) 0}
.band .lede{max-width:720px;margin-top:20px}
.gains{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,56px);margin-top:44px}
.gains h3{font-size:24px;line-height:1.2;font-weight:500;margin-bottom:12px}
.gains p{font-size:15.5px;line-height:1.65;color:var(--muted)}
.ray{display:grid;grid-template-columns:4fr 7fr;gap:clamp(40px,6vw,96px);align-items:start}
.ray-fig{aspect-ratio:1;overflow:hidden;border-radius:6px;background:var(--sage-deep)}
.ray-fig img{width:100%;height:100%;object-fit:cover}
.ray .role{font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-top:12px}
.ray .body{margin-top:24px}
.ray .body p+p{margin-top:16px}
.ray .body a{border-bottom:1px solid var(--line);transition:border-color .3s}
.ray .body a:hover{border-color:var(--ink)}
.people{gap:0 clamp(32px,4vw,64px);margin-top:48px}
.person{display:grid;grid-template-columns:120px 1fr;gap:22px;align-items:start;padding:28px 0}
.person-fig{width:120px;aspect-ratio:1;overflow:hidden;border-radius:6px;background:var(--sage-deep)}
.person-fig img{width:100%;height:100%;object-fit:cover}
.person a{display:block;width:max-content;margin-top:8px}
.team-contact{display:flex;padding:28px 0;border-bottom:1px solid var(--line)}
.team-contact-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;padding:clamp(24px,2.5vw,32px);border-radius:6px}
.team-contact .eyebrow{margin-bottom:14px}
.team-contact h3{max-width:18ch;font-size:clamp(26px,2.6vw,36px);line-height:1.1}
.team-contact .link{margin-top:18px}
.map-wrap{display:grid;grid-template-columns:6fr 5fr;gap:clamp(40px,6vw,96px);align-items:center}
.map{margin:0;overflow:hidden;border-radius:6px;background:var(--sage-deep);border:1px solid var(--line)}
.map img{display:block;width:100%;height:auto}
.map figcaption{font-size:12px;color:var(--muted);padding:10px 14px;border-top:1px solid var(--line);background:var(--bg)}
.map figcaption a{border-bottom:1px solid var(--line)}
.address{font-size:17px;line-height:1.6;margin-top:22px}
.address strong{font-weight:500;display:block}
.address a{border-bottom:1px solid var(--line);transition:border-color .3s}
.address a:hover{border-color:var(--ink)}
.area{margin-top:22px;padding-top:22px;border-top:1px solid var(--line);color:var(--muted)}
.faq{margin-top:44px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font-family:'Newsreader',Georgia,serif;font-size:clamp(20px,1.8vw,25px);line-height:1.3;font-weight:500}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:12px;height:12px;background:linear-gradient(var(--green),var(--green)) center/12px 1px no-repeat,linear-gradient(var(--green),var(--green)) center/1px 12px no-repeat;transition:transform .5s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--muted);max-width:680px;padding:0 0 26px}
.since{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px);align-items:center}
.since-num{font-family:'Newsreader',Georgia,serif;font-size:clamp(90px,14vw,190px);line-height:.9;letter-spacing:-.03em;color:var(--green)}
.since-fig{margin-top:28px;aspect-ratio:16/9;overflow:hidden;border-radius:6px;background:var(--sage-deep)}
.since-fig img{width:100%;height:100%;object-fit:cover}
.since .body{margin-top:24px}
.since .body p+p{margin-top:16px}
.cta{background:var(--green);color:var(--paper);padding:clamp(72px,10vw,128px) 0}
.cta .eyebrow{color:rgba(245,245,240,.85)}
.cta h2{color:#fff;max-width:16ch}
.cta .lede{color:var(--paper-dim);margin-top:22px}
.cta .actions{margin-top:36px}
.cta .link::before{background:var(--paper)}
.privacy ul{margin-top:20px;max-width:680px}
.privacy li{padding:14px 0;border-bottom:1px solid var(--line)}
.privacy .body{margin-top:20px}
.privacy .body a{border-bottom:1px solid var(--line);transition:border-color .3s}
.privacy .body a:hover{border-color:var(--ink)}
.settings{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px);margin-top:40px}
.settings li{padding-top:20px;border-top:1px solid var(--green)}
.settings h3{font-size:22px;font-weight:500;line-height:1.25}
.settings p{font-size:15px;color:var(--muted);margin-top:10px}
@media (max-width:980px){.gains,.settings{grid-template-columns:1fr}.ray,.since,.map-wrap{grid-template-columns:1fr}.since-num{font-size:clamp(80px,22vw,140px)}}
@media (max-width:640px){.person{grid-template-columns:88px 1fr;gap:16px}.person-fig{width:88px}}
.steps-head .link,.since .link,.mission .link{margin-top:28px}
.mission{display:grid;grid-template-columns:6fr 5fr;gap:clamp(40px,6vw,96px);align-items:start}
.mission .body{margin-top:20px}
@media (max-width:980px){.mission{grid-template-columns:1fr}}

/* ---- Survol et micro-interactions (2026-09-11). Un seul vocabulaire : un filet qui s'étire depuis la gauche, un titre qui prend le vert, une photo qui respire. ---- */
.nav-links a{position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.nav-links a[aria-current="page"]::after{transform:scaleX(1)}
.nav-logo{transition:opacity .3s}
.menu a{transition:opacity .3s,transform .5s var(--ease)}
.btn{transition:color .5s var(--ease),border-color .5s var(--ease),transform .25s var(--ease)}
.btn:active{transform:scale(.98)}
.points h3,.gains h3,.settings h3,.person h3,.faq summary{transition:color .4s var(--ease)}
.person-fig img,.ray-fig img{transition:transform 1.2s var(--ease)}
.map figcaption a{transition:border-color .3s}
.contact-list .big{position:relative;display:inline-block}
.contact-list .big::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--paper);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.field{position:relative}
.field::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--paper);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.field:focus-within::after{transform:scaleX(1)}
.field input:hover,.field textarea:hover{border-color:rgba(245,245,240,.55)}
@media (hover:hover){
  .nav-links a:hover::after{transform:scaleX(1)}
  .nav-logo:hover{opacity:.78}
  .menu a:hover{opacity:1;transform:translateX(10px)}
  .points li:hover h3,.gains li:hover h3,.settings li:hover h3,.person:hover h3,.faq summary:hover{color:var(--green)}
  .step:hover h3,.js:not(.rm) .step:hover h3{color:var(--green)}
  .person:hover .person-fig img,.ray-fig:hover img{transform:scale(1.05)}
  .map figcaption a:hover{border-color:var(--ink)}
  .contact-list .big:hover::after{transform:scaleX(1)}
}
/* Mouvement réduit : les états changent, sans durée. */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* ---- Rideau et titre (2026-09-11, poussé le même jour) : l'ouverture de l'accueil, à chaque chargement. Deux
   voiles plein écran (sauge devant, sauge profond derrière) ; le nom « Healthcare Resource Services » émerge mot
   par mot d'un masque (chaque .cw rogne ce qui dépasse ; padding + marge négative : la place des ascendantes sans
   bouger la mise en page), un filet vert se trace dessous sur toute sa largeur, puis les voiles se lèvent l'un
   derrière l'autre pendant que le nom vole se poser sur le logo de la barre (voir motion.js section 0 bis).
   Le conteneur ne bloque jamais un clic (pointer-events:none) : seuls les voiles couvrent, et ils partent.
   Sans JavaScript ou en mouvement réduit : pas de rideau, le hero est visible d'emblée. ---- */
.curtain{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;pointer-events:none}
.js:not(.rm) .curtain{display:flex}
.curtain-veil{position:absolute;inset:0}
.curtain-veil-back{background:var(--sage-deep)}
.curtain-veil-front{background:var(--sage)}
.curtain-mark{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:18px;max-width:92vw}
.curtain-name{font-family:'Newsreader',Georgia,serif;font-weight:500;font-size:clamp(24px,6.4vw,88px);line-height:1.05;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;transform-origin:0 0}
.js:not(.rm) .curtain-name{visibility:hidden}
.cw{display:inline-block;overflow:hidden;vertical-align:top;padding:.14em .02em .1em;margin:-.14em -.02em -.1em}
.cl{display:inline-block}
.curtain-line{width:100%;height:2px;background:var(--green);transform:scaleX(0);transform-origin:0 50%}
