/* Cabinet Morpheus — charte : sobriété, humilité, rigueur.
   Papier froid, encre ardoise, accent bleu nuit, onde respiratoire en motif. */
:root{
  --paper:#F5F7F9; --surface:#FFFFFF; --ink:#17293F; --muted:#5E6E80;
  --accent:#16365F; --teal:#2E8FAC; --line:#DCE3EA; --wave:#8FBFCE; --night:#0B1C33;
  --display:'IBM Plex Serif',Georgia,'Times New Roman',serif;
  --body:'IBM Plex Sans','Segoe UI',system-ui,sans-serif;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:15.5px;line-height:1.62;font-weight:400}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:40;background:var(--paper)}
img{max-width:100%}
[hidden]{display:none!important}
.wrap{max-width:1020px;margin:0 auto;
  padding-left:max(16px, env(safe-area-inset-left,0px));
  padding-right:max(16px, env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.2;text-wrap:balance;margin:0}
p{margin:0}
a{color:var(--accent)}
.eyebrow{font-size:.73rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);font-weight:600}
.quiet{color:var(--muted)}

/* Onde respiratoire — motif de la maison */
.wave{display:block;width:120px;height:14px;color:var(--wave)}
.wave.accent{color:var(--accent)}

/* Header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--paper);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:13px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}
.brand svg{flex:none}
.brand img{height:44px;width:auto;flex:none}
.brand b{font-family:var(--display);font-weight:600;font-size:1.18rem;letter-spacing:.04em}
.brand small{display:block;font-family:var(--body);font-weight:400;font-size:.72rem;color:var(--muted);letter-spacing:.08em;line-height:1.2}
nav{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:.88rem;align-items:center}
nav a{color:var(--muted);text-decoration:none;font-weight:500}
nav a:hover,nav a:focus-visible{color:var(--accent)}
nav a[aria-current="page"]{color:var(--accent)}
.navtoggle{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer;color:var(--accent)}
.navtoggle svg{display:block}
.navtoggle:hover{border-color:var(--accent)}
.cta{background:var(--accent);color:var(--paper)!important;padding:8px 16px;border-radius:6px;font-weight:600;text-decoration:none;white-space:nowrap}

/* Hero */
.hero{position:relative;isolation:isolate;overflow:hidden;padding-block:56px 46px;display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:48px;align-items:start}
.hero::before{content:"";position:absolute;z-index:-1;right:-130px;top:-40px;width:620px;height:760px;
  background:url(logo.png) no-repeat center/contain;opacity:.032;pointer-events:none}
.hero .wave.accent path{stroke-dasharray:300;stroke-dashoffset:300;animation:trace 2.2s ease-out .25s forwards}
@keyframes trace{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.hero .wave.accent path{animation:none;stroke-dashoffset:0}}
.hero-main{display:grid;gap:14px;max-width:44em}
.hero h1{font-size:clamp(1.45rem,2.6vw,1.95rem)}
.hero .lead{color:var(--muted);font-size:.97rem;max-width:38em}
.hero .actions{margin-top:14px;display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;background:var(--accent);color:var(--paper);text-decoration:none;font-weight:600;
  padding:11px 20px;border-radius:6px;border:0;font-family:var(--body);font-size:.97rem;cursor:pointer}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn:hover{opacity:.9}

/* En-tête de page intérieure */
.pagehead{padding-block:52px 10px}
.pagehead h1{font-size:clamp(1.4rem,2.6vw,1.85rem);margin-top:10px}
.pagehead .lead{margin-top:12px;max-width:60ch;color:var(--muted);font-size:.97rem}
.crumb{font-size:.85rem;color:var(--muted)}
.crumb a{color:var(--muted);text-decoration:none}
.crumb a:hover{color:var(--accent)}

/* Sections : numérotation = rigueur */
section{padding-block:54px;border-top:1px solid var(--line)}
section.first{border-top:0;padding-top:30px}
section.night{background:var(--night);color:#E8EDF0}
section.night .quiet{color:#9FAEB8}
section.night h2{color:#F2F5F6}
.shead{display:grid;gap:8px;margin-bottom:26px}
.shead h2{font-size:1.3rem}
.prose{max-width:64ch}
.prose p+p{margin-top:1em}
.prose ul{margin:1em 0 0;padding-left:1.2em;display:grid;gap:7px}
.prose li{color:var(--muted)}
.prose b{color:var(--ink)}
.note{border-left:2.5px solid var(--accent);background:var(--surface);padding:12px 16px;border-radius:0 8px 8px 0;color:var(--muted);font-size:.93rem;margin-top:20px;max-width:72ch}
.srcs{margin-top:24px;font-size:.82rem;color:var(--muted);max-width:76ch}

/* Cartes et grilles */
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cols.two{grid-template-columns:repeat(2,1fr)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:22px 20px;display:flex;flex-direction:column;gap:9px;min-width:0}
.card h3{font-size:1.02rem}
.card ul{margin:0;padding-left:1.1em;color:var(--muted);display:grid;gap:6px;font-size:.94rem}
.card p{color:var(--muted);font-size:.94rem}
.card .tag{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600}

/* Équipe */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.person{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px 18px;min-width:0}
.person .role{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.person h3{font-size:1.05rem;margin-top:6px}
.person p{font-size:.9rem;color:var(--muted);margin-top:4px}
.person .ava{width:92px;height:92px;border-radius:50%;background:#E2EDF2;border:1px solid var(--line);color:var(--accent);
  display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:500;font-size:1.5rem;
  letter-spacing:.04em;margin-bottom:14px;overflow:hidden}
.person .ava img{width:100%;height:100%;object-fit:cover}

.bloc{align-items:center;text-align:center}
.bloc svg{width:84px;height:auto;margin:2px auto 6px}
.bloc p{font-size:.9rem}

/* Tableaux */
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:460px;font-size:.95rem}
caption{text-align:left;padding:15px 18px 4px;font-family:var(--display);font-size:1.05rem}
th,td{text-align:left;padding:9px 18px;border-top:1px solid var(--line);vertical-align:top}
thead th{border-top:0;color:var(--muted);font-weight:500;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
tbody th[scope="rowgroup"]{font-weight:500;font-family:var(--display);font-size:.98rem;color:var(--accent);padding-top:15px}

/* Parcours : frise numérotée */
.steps{display:grid;gap:0;border-left:1px solid var(--line)}
.steps>div{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:14px 0 14px 18px;position:relative;min-width:0}
.steps>div::before{content:"";position:absolute;left:-4px;top:24px;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.steps .n{font-family:var(--display);font-size:1.1rem;color:var(--accent);font-variant-numeric:tabular-nums}
.steps h3{font-size:1.05rem}
.steps p{font-size:.95rem;color:var(--muted);margin-top:3px;max-width:58ch}

/* Outils (modals) */
.tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,380px));gap:18px;justify-content:start;padding:8px 0 10px}
button.toolcard{font-family:var(--body);font-size:1rem;text-align:left;cursor:pointer;color:var(--ink);
  background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:10px;
  padding:20px;display:grid;gap:8px}
button.toolcard h3{font-family:var(--display);font-weight:500;font-size:1.15rem}
button.toolcard p{color:var(--muted);font-size:.92rem}
button.toolcard .go{color:var(--accent);font-weight:600;font-size:.9rem}
button.toolcard:hover,button.toolcard:focus-visible{border-color:var(--accent)}
dialog.tool-modal{border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);
  padding:0;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
.tool-modal::backdrop{background:rgba(24,34,43,.5)}
.tool-modal .inner{padding:24px 22px;display:grid;gap:14px}
.tm-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.tm-head h2{font-size:1.25rem;margin-top:4px}
.tm-close{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:8px;
  width:34px;height:34px;font:inherit;font-size:.95rem;line-height:1;cursor:pointer;flex:none}
.tm-close:hover{color:var(--accent);border-color:var(--accent)}
.tool{display:grid;gap:14px}
.tool .row{display:grid;gap:6px}
.tool label{font-size:.9rem;font-weight:600}
.tool select,.tool input{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 12px;max-width:100%}
.result{border-left:2.5px solid var(--accent);background:var(--paper);border-radius:0 8px 8px 0;padding:14px 16px;font-size:.97rem}
.result b{color:var(--accent)}
.check{display:grid;gap:8px}
.check label{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:.95rem;color:var(--ink);cursor:pointer}
.check input{accent-color:var(--accent);margin-top:3px}

.fab{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-left:3px solid var(--teal);
  border-radius:8px;padding:10px 14px;font-family:var(--body);font-weight:500;font-size:.86rem;cursor:pointer;
  text-align:left;width:100%}
.fab:hover,.fab:focus-visible{border-color:var(--accent)}
.hero-tools{display:grid;gap:9px;align-content:start;margin-top:4px}
.hero-tools .eyebrow{margin-bottom:2px}
.hero-tools .fab{box-shadow:0 5px 14px rgba(24,34,43,.07)}
.fab.rdv{display:block;background:var(--accent);border-color:var(--accent);color:#fff;text-align:center;text-decoration:none;margin-top:3px}
.fab.rdv:hover,.fab.rdv:focus-visible{background:var(--night);border-color:var(--night)}

/* Infos pratiques */
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.fact{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px;min-width:0}
.fact h3{font-size:1rem;margin-bottom:8px}
.fact p,.fact li{font-size:.95rem;color:var(--muted)}
.fact ul{margin:0;padding-left:1.1em;display:grid;gap:5px}

.nextband{border-top:1px solid var(--line);padding-block:38px;background:var(--surface)}
.nextband .wrap{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.nextband p{font-family:var(--display);font-size:1.05rem}
.nextband .acts{display:flex;flex-wrap:wrap;gap:10px}

footer{border-top:1px solid var(--line);padding-block:28px 38px;font-size:.84rem;color:var(--muted)}
footer .wrap{display:grid;gap:6px}
footer .wave{margin-bottom:8px}

@media (max-width:900px){
  .hero-main{max-width:none}
  .hero{grid-template-columns:1fr;gap:24px}
  .hero::before{display:none}
  .hero-tools{margin-top:8px}
  .cols,.cols.two{grid-template-columns:1fr}
  .team{grid-template-columns:repeat(2,1fr)}
  .facts{grid-template-columns:1fr}
  .navtoggle{display:inline-flex}
  nav{display:none;position:absolute;left:0;right:0;top:100%;z-index:35;background:var(--paper);
    border-bottom:1px solid var(--line);
    padding:10px max(16px,env(safe-area-inset-left,0px)) 16px max(16px,env(safe-area-inset-left,0px));
    flex-direction:column;align-items:stretch;gap:0}
  header.nav-open nav{display:flex}
  nav a{padding:12px 4px;border-bottom:1px solid var(--line);font-size:1rem}
}
@media (max-width:560px){ .team{grid-template-columns:1fr} .bar .cta{display:none} }
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Espace enfants — identité propre : chaleur et rondeur */
.kids{background:#FBF3EB;border-top:1px solid #F0DFC9}
.kids, .kids p, .kids .go{font-family:'Nunito',var(--body)}
.kids .shead h2,.kids h3{font-family:'Nunito',var(--body);font-weight:700;color:#8A4F30}
.kids .shead h2{font-size:1.4rem}
.kids-lead{color:#7A5B45;max-width:46em;margin:-6px 0 24px;font-size:.98rem}
.kids .card{background:#FFFDFA;border:1px solid #EFDCC6;border-radius:18px}
.kids .card h3{font-size:1.02rem}
.kids .card p{color:#6E5847}
.kids .toolcard.kids-tool{margin-top:18px;border:1px solid #EFDCC6;border-left:4px solid #B9714E;border-radius:18px;background:#fff}
.kids .toolcard.kids-tool .eyebrow,.kids .toolcard.kids-tool .go{color:#B9714E}
.kids .toolcard.kids-tool h3{color:#8A4F30}
.fab.kids{border-left-color:#C98A5B;font-family:'Nunito',var(--body);font-weight:600}
.fab.kids:hover,.fab.kids:focus-visible{border-color:#B9714E}
.kids-modal .inner{border-radius:18px}
.kids-modal h2,.kids-modal .btn{font-family:'Nunito',var(--body)}
.kids-modal h2{color:#8A4F30}
.kids-modal .eyebrow{color:#B9714E}
.kids-modal .btn{background:#B9714E;font-weight:700}
.kids-modal .btn:hover{background:#8A4F30}
.kids-modal .result{border-left:3px solid #B9714E;background:#FBF3EB}
.kids .toolcard h3,.kids-modal h2{font-family:'Nunito',var(--body);font-weight:700}
