
  /* Qui Garde Bébé ? — moderne et chaleureux, pensé pour les jeunes parents : prune, framboise, jaune soleil. */
  :root{
    --night:#4A2550; --night-2:#FDEAF1; --violet:#E0608F; --violet-2:#C2457A; --violet-tint:#FDEAF1;
    --lime:#FFE08A; --mint:#4FC4A0; --mint-tint:#E2F6EF; --coral:#9B7BE8;
    --bg:#FFF8FA; --card:#FFFFFF; --ink:#3D2141; --ink-2:#6E5470; --mute:#A08AA3; --line:#F5E1E8;
    --warn:#8A5A00; --warn-tint:#FFF3D1;
    --head:'Outfit', system-ui, sans-serif; --body:'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --r:24px; --blush:linear-gradient(160deg,#FDE3EE 0%,#F6E6FF 55%,#FFEFE6 100%);
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *{ transition:none !important; } }
  body{ background:var(--bg); color:var(--ink); font-family:var(--body); font-size:16px; line-height:1.55; font-variant-numeric:tabular-nums; -webkit-font-smoothing:antialiased; }
  .wrap{ max-width:1160px; margin:0 auto; padding:0 20px; }
  a{ color:inherit; }
  a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, .cr:focus-visible{ outline:3px solid var(--violet); outline-offset:2px; }
  h1,h2,h3{ font-family:var(--head); font-weight:800; letter-spacing:-.02em; line-height:1.04; text-wrap:balance; }
  p{ max-width:66ch; }

  /* header */
  header{ background:var(--night); color:#fff; position:sticky; top:0; z-index:20; }
  .hdr{ display:flex; align-items:center; justify-content:space-between; gap:16px; height:66px; }
  .brand{ font-family:var(--head); font-weight:800; font-size:21px; text-decoration:none; display:flex; align-items:center; gap:10px; letter-spacing:-.02em; }
  .brand b{ width:34px; height:34px; border-radius:11px; background:var(--lime); color:var(--night); display:inline-flex; align-items:center; justify-content:center; font-size:17px; font-weight:900; }
  .nav{ display:flex; align-items:center; gap:6px; font-size:15px; font-weight:600; }
  .nav a{ text-decoration:none; color:#E3D6EC; padding:8px 12px; border-radius:999px; }
  .nav a:hover{ color:#fff; background:var(--night-2); }
  .nav a.cta{ background:var(--violet); color:#fff; }
  .nav a.cta:hover{ background:var(--violet-2); }
  @media (max-width:680px){ .nav .hm{ display:none; } }

  /* hero */
  .hero{ background:var(--night); color:#fff; padding:44px 0 120px; position:relative; overflow:hidden; }
  .hero:before{ content:""; position:absolute; width:520px; height:520px; right:-140px; top:-180px; border-radius:50%; background:radial-gradient(circle, rgba(229,72,122,.5), rgba(229,72,122,0) 68%); }
  .hero:after{ content:""; position:absolute; width:300px; height:300px; left:-120px; bottom:-170px; border-radius:50%; background:radial-gradient(circle, rgba(255,201,74,.28), rgba(255,201,74,0) 70%); }
  .nav a{ color:#E3D6EC; }

  /* parcours */
  .moments-bar{ background:var(--night-2); }
  .moments-bar .wrap{ display:flex; gap:8px; overflow-x:auto; padding-top:10px; padding-bottom:10px; scrollbar-width:none; }
  .moments-bar .wrap::-webkit-scrollbar{ display:none; }
  .chip{ flex:none; display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:#fff; text-decoration:none; background:rgba(255,255,255,.08); padding:8px 14px; border-radius:999px; border:1px solid rgba(255,255,255,.12); }
  .chip:hover{ background:rgba(255,255,255,.16); }
  .chip .ci{ width:26px; height:26px; border-radius:9px; background:rgba(255,201,74,.16); color:var(--lime); display:inline-flex; align-items:center; justify-content:center; margin-left:-6px; }
  .chip .ci svg{ width:16px; height:16px; }
  .moment .ico svg{ width:24px; height:24px; }
  #m-enceinte .ico{ color:var(--violet-2); } #m-naissance .ico{ color:#D0552A; } #m-reprise .ico{ color:#B7791F; } #m-employeur .ico{ color:#127A59; } #m-ecole .ico{ color:#5B3DC8; }
  .moments{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
  @media (max-width:1100px){ .moments{ grid-template-columns:repeat(3,1fr); } }
  @media (max-width:760px){ .moments{ grid-template-columns:1fr 1fr; } }
  @media (max-width:520px){ .moments{ grid-template-columns:1fr; } }
  @media (max-width:980px){ .moments{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .moments{ grid-template-columns:1fr; } }
  .moment{ background:var(--card); border-radius:var(--r); padding:20px; display:flex; flex-direction:column; gap:10px; scroll-margin-top:90px; border:2px solid transparent; }
  .moment:target{ border-color:var(--violet); }
  .moment .ico{ width:46px; height:46px; border-radius:15px; display:flex; align-items:center; justify-content:center; font-size:22px; }
  .moment h3{ font-size:1.2rem; }
  .moment p{ font-size:14.5px; color:var(--ink-2); }
  .moment ul{ list-style:none; display:flex; flex-direction:column; gap:2px; margin-top:auto; }
  .moment li a{ display:flex; justify-content:space-between; gap:8px; text-decoration:none; font-weight:700; font-size:14.5px; padding:9px 0; border-top:1px solid var(--line); }
  .moment li a:hover{ color:var(--violet-2); }
  .filters{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; }
  .filters button{ font:inherit; font-weight:700; font-size:14px; padding:8px 14px; border-radius:999px; border:2px solid var(--line); background:#fff; color:var(--ink-2); cursor:pointer; }
  .filters button[aria-pressed="true"]{ background:var(--night); border-color:var(--night); color:#fff; }

  /* barre d'onglets mobile */
  .tabbar{ display:none; }
  @media (max-width:680px){
    .tabbar{ display:grid; grid-template-columns:repeat(4,1fr); position:fixed; left:0; right:0; bottom:0; z-index:30; background:#fff; border-top:1px solid var(--line); padding:6px 6px calc(6px + env(safe-area-inset-bottom)); box-shadow:0 -8px 24px -18px rgba(43,26,61,.5); }
    .tabbar a{ display:flex; flex-direction:column; align-items:center; gap:2px; text-decoration:none; font-size:11.5px; font-weight:700; color:var(--ink-2); padding:6px 0; border-radius:12px; }
    .tabbar a svg{ width:22px; height:22px; }
    .tabbar a.on{ color:var(--violet-2); background:var(--violet-tint); }
    body{ padding-bottom:72px; }
  }
  .hero .wrap{ position:relative; }
  .pill{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; background:rgba(212,255,63,.14); color:var(--lime); padding:6px 12px; border-radius:999px; }
  .pill i{ width:7px; height:7px; border-radius:50%; background:var(--lime); }
  .hero h1{ font-size:clamp(2.5rem,6.2vw,4.6rem); max-width:15ch; margin-top:16px; font-weight:900; }
  .hero h1 em{ font-style:normal; color:var(--lime); }
  .hero .lead{ margin-top:16px; color:#E3D6EC; font-size:1.12rem; }

  /* simulateur */
  .sim{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; margin-top:-86px; position:relative; z-index:2; align-items:start; }
  @media (max-width:920px){ .sim{ grid-template-columns:1fr; } }
  .card{ background:var(--card); border-radius:var(--r); padding:24px; box-shadow:0 1px 2px rgba(15,18,56,.06), 0 18px 40px -24px rgba(15,18,56,.35); }
  .tabs{ display:flex; background:var(--bg); border-radius:999px; padding:5px; margin-bottom:18px; }
  .tabs label{ display:flex; } .tabs span{ flex:1; display:flex !important; align-items:center; justify-content:center; line-height:1.2; }
  .tabs + .tabs-gad{ margin:-10px 2px 14px; }
  .tabs label{ position:relative; flex:1; }
  .tabs input{ position:absolute; opacity:0; pointer-events:none; }
  .tabs span{ display:block; text-align:center; padding:10px 12px; border-radius:999px; font-family:var(--head); font-weight:700; font-size:15px; cursor:pointer; color:var(--ink-2); }
  .tabs input:checked + span{ background:var(--night); color:#fff; }
  .tabs input:focus-visible + span{ outline:3px solid var(--violet); }
  .fields{ display:grid; grid-template-columns:1fr 1fr; gap:14px 14px; }
  @media (max-width:520px){ .fields{ grid-template-columns:1fr; } }
  .grp{ grid-column:1/-1; font-family:var(--head); font-size:13px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--violet); margin-top:4px; }
  .f label{ display:block; font-size:13.5px; font-weight:700; margin-bottom:6px; }
  .f small{ display:block; font-size:12px; color:var(--mute); margin-top:5px; line-height:1.4; }
  .f input, .f select{ width:100%; font:inherit; font-weight:600; padding:11px 13px; border:2px solid var(--line); border-radius:14px; background:#fff; color:var(--ink); }
  .f input:focus, .f select:focus{ border-color:var(--violet); outline:none; }
  body.mode-creche .only-am{ display:none; } body:not(.mode-gad) .only-gad{ display:none; } body.mode-gad .no-gad{ display:none; }

  .res{ background:var(--violet); color:#fff; }
  .res h2{ font-size:1.25rem; font-weight:700; color:#FFE0EA; }
  .res .big{ font-family:var(--head); font-weight:900; font-size:clamp(3.2rem,7vw,4.6rem); line-height:1; margin-top:8px; letter-spacing:-.03em; }
  .res .big small{ font-size:1.2rem; font-weight:700; color:#FFE0EA; letter-spacing:0; }
  .res .sub{ color:#FFEAF0; margin-top:8px; }
  .steps{ list-style:none; margin-top:18px; background:rgba(255,255,255,.1); border-radius:16px; padding:4px 14px; }
  .steps li{ display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.14); font-size:15px; }
  .steps li:last-child{ border-bottom:none; }
  .steps li span:first-child small{ display:block; font-size:12.5px; color:#FFD3E0; }
  .steps li .m{ font-weight:700; white-space:nowrap; }
  .steps li.minus .m{ color:var(--lime); }
  .steps li.total{ font-family:var(--head); font-weight:800; font-size:16.5px; }
  .bar{ display:flex; height:12px; border-radius:999px; overflow:hidden; margin-top:16px; background:rgba(255,255,255,.18); }
  .bar i{ display:block; height:100%; }
  .legend{ display:flex; flex-wrap:wrap; gap:6px 16px; font-size:12.5px; color:#FFEAF0; margin-top:8px; }
  .legend span{ display:inline-flex; align-items:center; gap:6px; }
  .legend b{ width:10px; height:10px; border-radius:3px; display:inline-block; }
  .alerts{ margin-top:12px; display:flex; flex-direction:column; gap:8px; }
  .alert{ background:var(--warn-tint); color:var(--warn); border-radius:12px; padding:9px 12px; font-size:13.5px; }
  .vs{ margin-top:14px; background:#fff; color:var(--ink); border-radius:16px; padding:14px 16px; }
  .vs h3{ font-size:1.1rem; margin-bottom:8px; }
  .vs-row{ display:grid; grid-template-columns:1fr auto; gap:6px 14px; font-size:15px; }
  .vs-row b{ text-align:right; }
  .vs p{ font-size:13px; color:var(--ink-2); margin-top:8px; }
  .stamp{ font-size:12.5px; color:var(--mute); margin:14px 0 0; }

  section{ padding:64px 0; }
  .sec-head{ display:flex; justify-content:space-between; align-items:end; gap:20px; flex-wrap:wrap; margin-bottom:22px; }
  .sec-head h2{ font-size:clamp(2rem,4.4vw,3rem); font-weight:900; }
  .sec-head p{ color:var(--ink-2); }
  .kicker{ font-family:var(--head); font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--violet); margin-bottom:8px; }

  /* crèches */
  .search{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
  .search input, .search select{ font:inherit; font-weight:600; padding:12px 16px; border:2px solid var(--line); border-radius:999px; background:#fff; }
  .search input{ min-width:0; flex:1 1 240px; max-width:380px; }
  .maplegend{ display:flex; flex-wrap:wrap; gap:6px 16px; font-size:13px; color:var(--ink-2); margin-bottom:14px; }
  .maplegend span{ display:inline-flex; align-items:center; gap:6px; }
  .maplegend i{ width:10px; height:10px; border-radius:50%; display:inline-block; }
  .geo{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:18px; }
  @media (max-width:860px){ .geo{ grid-template-columns:1fr; } }
  #map{ height:440px; border-radius:var(--r); background:#E8EAF4; z-index:0; overflow:hidden; }
  .map-fallback{ height:100%; display:flex; align-items:center; justify-content:center; text-align:center; padding:20px; color:var(--mute); font-size:14px; }
  .list{ display:flex; flex-direction:column; gap:10px; max-height:440px; overflow:auto; }
  .cr{ background:var(--card); border:2px solid transparent; border-radius:18px; padding:14px 16px; cursor:pointer; }
  .cr:hover, .cr.act{ border-color:var(--violet); }
  .cr h3{ font-size:17px; font-weight:700; letter-spacing:-.01em; }
  .cr .t{ font-size:12.5px; color:var(--mute); margin-top:2px; }
  .cr .t i{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:6px; vertical-align:middle; }
  .cr .a{ font-size:14px; color:var(--ink-2); margin-top:6px; }
  .cr .d{ display:inline-block; margin-top:9px; font-size:12.5px; font-weight:700; padding:4px 10px; border-radius:999px; background:var(--bg); color:var(--ink-2); }
  .cr-pin{ background:none; border:none; filter:drop-shadow(0 3px 4px rgba(15,18,56,.3)); }
  .demo{ margin-top:16px; background:var(--violet-tint); border-radius:16px; padding:13px 16px; font-size:14px; color:var(--ink-2); }
  .demo b{ color:var(--violet-2); }

  /* guides */
  .guides{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
  @media (max-width:900px){ .guides{ grid-template-columns:1fr 1fr; } }
  @media (max-width:600px){ .guides{ grid-template-columns:1fr; } }
  .guide{ background:var(--card); border-radius:var(--r); padding:22px; text-decoration:none; display:flex; flex-direction:column; gap:8px; transition:transform .15s, box-shadow .15s; border:2px solid transparent; }
  .guide:hover{ transform:translateY(-3px); box-shadow:0 18px 30px -22px rgba(15,18,56,.45); border-color:var(--line); }
  .tag{ align-self:flex-start; font-size:12px; font-weight:800; padding:4px 10px; border-radius:999px; background:var(--violet-tint); color:var(--violet-2); }
  .guide:nth-child(3n+2) .tag{ background:var(--mint-tint); color:#0E7A5C; }
  .guide:nth-child(3n) .tag{ background:#EEE8FF; color:#5B3DC8; }
  .guide[hidden]{ display:none; }
  .guide h3{ font-size:1.3rem; }
  .guide p{ font-size:14.5px; color:var(--ink-2); }
  .guide .more{ margin-top:auto; font-weight:700; color:var(--violet); font-size:14.5px; }

  /* alertes */
  .alertbox{ display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:24px; align-items:center; background:var(--night); color:#fff; border-radius:28px; padding:34px; position:relative; overflow:hidden; }
  .alertbox:after{ content:""; position:absolute; width:260px; height:260px; border-radius:50%; background:var(--lime); right:-90px; bottom:-150px; opacity:.9; }
  .alertbox > *{ position:relative; z-index:1; }
  @media (max-width:860px){ .alertbox{ grid-template-columns:1fr; padding:26px; } }
  .alertbox h2{ font-size:clamp(1.8rem,3.8vw,2.6rem); font-weight:900; }
  .alertbox p{ color:#E3D6EC; margin-top:10px; }
  .alertbox form{ display:flex; gap:10px; flex-wrap:wrap; }
  .alertbox input{ flex:1 1 200px; min-width:0; font:inherit; padding:14px 16px; border-radius:999px; border:none; }
  .alertbox button{ font-family:var(--head); font-weight:800; font-size:16px; padding:14px 22px; border-radius:999px; border:none; background:var(--lime); color:var(--night); cursor:pointer; }
  .alertbox .ok{ font-size:13px; color:var(--lime); margin-top:8px; min-height:1.2em; }

  /* méthode */
  .method{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
  @media (max-width:860px){ .method{ grid-template-columns:1fr; } }
  .method > div{ background:var(--card); border-radius:var(--r); padding:22px; }
  .method h3{ font-size:1.2rem; margin-bottom:8px; }
  .method p, .method li{ font-size:14.5px; color:var(--ink-2); }
  .method p{ margin-bottom:8px; }
  .method ul{ margin-left:18px; }

  /* articles */
  #article{ display:none; }
  body.reading #home{ display:none; }
  #gear{ display:none; } #gearpage{ display:block; }
  body.gearing #home, body.gearing #article{ display:none; }
  body.gearing #gear{ display:block; }
  .g-hero{ background:var(--night); color:#fff; padding:40px 0 34px; position:relative; overflow:hidden; }
  .g-hero:before{ content:""; position:absolute; width:420px; height:420px; right:-120px; top:-160px; border-radius:50%; background:radial-gradient(circle, rgba(229,72,122,.45), rgba(229,72,122,0) 68%); }
  .g-hero .wrap{ position:relative; }
  .g-hero h1{ font-size:clamp(2.2rem,5.4vw,3.8rem); font-weight:900; max-width:18ch; margin-top:14px; }
  .g-hero p{ color:#E3D6EC; margin-top:12px; font-size:1.05rem; }
  .g-steps{ display:flex; gap:8px; overflow-x:auto; margin-top:24px; scrollbar-width:none; }
  .g-steps::-webkit-scrollbar{ display:none; }
  .g-steps a{ flex:none; text-decoration:none; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-radius:16px; padding:10px 14px; min-width:170px; }
  .g-steps a b{ display:block; font-family:var(--head); font-size:15px; }
  .g-steps a small{ font-size:12.5px; color:#E3D6EC; }
  .g-steps a .pc{ display:block; height:5px; border-radius:99px; background:rgba(255,255,255,.18); margin-top:8px; overflow:hidden; }
  .g-steps a .pc i{ display:block; height:100%; background:var(--lime); }
  .disclo{ background:var(--violet-tint); color:var(--ink-2); border-radius:14px; padding:11px 14px; font-size:13.5px; margin:22px 0 0; }
  .stage{ padding:34px 0 8px; scroll-margin-top:130px; }
  .stage-head{ display:flex; justify-content:space-between; align-items:end; gap:16px; flex-wrap:wrap; margin-bottom:14px; }
  .stage-head h2{ font-size:clamp(1.7rem,3.6vw,2.4rem); font-weight:900; }
  .stage-head .when{ font-family:var(--head); font-weight:800; font-size:13px; color:var(--violet-2); text-transform:uppercase; letter-spacing:.05em; }
  .stage-head .prog{ font-weight:700; font-size:14px; color:var(--ink-2); }
  .stage-intro{ color:var(--ink-2); margin-bottom:16px; }
  .items{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
  @media (max-width:820px){ .items{ grid-template-columns:1fr; } }
  .item{ background:var(--card); border-radius:18px; padding:16px 18px; display:grid; grid-template-columns:auto 1fr; gap:4px 14px; border:2px solid transparent; }
  .item.done{ border-color:var(--mint); }
  .item input{ width:22px; height:22px; margin-top:2px; accent-color:var(--mint); grid-row:span 4; cursor:pointer; }
  .item h3{ font-size:1.08rem; font-weight:700; letter-spacing:-.01em; display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; }
  .item.done h3{ text-decoration:line-through; text-decoration-color:var(--mint); text-decoration-thickness:2px; }
  .prio{ font-family:var(--body); font-size:11.5px; font-weight:800; padding:2px 8px; border-radius:999px; text-decoration:none; }
  .prio.p1{ background:#FDE8EF; color:var(--violet-2); } .prio.p2{ background:#FFF1D1; color:#9A6400; } .prio.p3{ background:#EEE8FF; color:#5B3DC8; }
  .item p{ font-size:14.5px; color:var(--ink-2); }
  .occ{ font-size:13px; font-weight:700; }
  .occ.ok{ color:#127A59; } .occ.mid{ color:#9A6400; } .occ.no{ color:var(--violet-2); }
  .shops{ display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
  .shops a{ font-size:13px; font-weight:700; text-decoration:none; padding:6px 11px; border-radius:999px; border:2px solid var(--line); color:var(--ink); }
  .shops a:hover{ border-color:var(--violet); color:var(--violet-2); }
  .shops .nolink{ font-size:12.5px; color:var(--mute); }
  .g-cta{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:20px; align-items:center; background:var(--card); border-radius:var(--r); padding:24px; margin:34px 0 60px; }
  @media (max-width:760px){ .g-cta{ grid-template-columns:1fr; } }
  .g-cta h3{ font-size:1.5rem; } .g-cta p{ color:var(--ink-2); margin-top:6px; }
  .g-cta .row{ display:flex; gap:10px; flex-wrap:wrap; }
  .btn2{ display:inline-block; font-family:var(--head); font-weight:800; text-decoration:none; padding:12px 18px; border-radius:999px; background:var(--violet); color:#fff; }
  .btn2.ghost{ background:transparent; color:var(--ink); border:2px solid var(--line); }
  body.reading #article{ display:block; }
  .art-hero{ background:var(--night); color:#fff; padding:40px 0 56px; }
  .back{ display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:14.5px; color:#E3D6EC; text-decoration:none; }
  .back:hover{ color:#fff; }
  .art-hero h1{ font-size:clamp(2.1rem,5vw,3.6rem); font-weight:900; max-width:20ch; margin-top:18px; }
  .art-hero .meta{ margin-top:14px; color:#E3D6EC; font-size:14px; }
  .art-hero .tag{ margin-top:22px; display:inline-block; }
  .art{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:28px; padding:40px 20px 64px; }
  @media (max-width:920px){ .art{ grid-template-columns:1fr; } }
  .prose{ background:var(--card); border-radius:var(--r); padding:32px; font-size:17px; line-height:1.7; }
  @media (max-width:600px){ .prose{ padding:22px; } }
  .prose .tldr{ background:var(--violet-tint); border-radius:16px; padding:16px 18px; margin-bottom:24px; font-size:15.5px; }
  .prose .tldr strong{ display:block; font-family:var(--head); color:var(--violet-2); margin-bottom:4px; }
  .prose h2{ font-size:1.6rem; margin:30px 0 10px; }
  .prose h3{ font-size:1.2rem; margin:22px 0 8px; }
  .prose p{ margin-bottom:14px; }
  .prose ul, .prose ol{ margin:0 0 16px 22px; } .prose li{ margin-bottom:6px; }
  .prose table{ width:100%; border-collapse:collapse; margin:8px 0 20px; font-size:15px; }
  .prose th, .prose td{ text-align:left; padding:9px 10px; border-bottom:1px solid var(--line); }
  .prose th{ font-family:var(--head); font-size:13px; color:var(--mute); text-transform:uppercase; letter-spacing:.04em; }
  .prose .tw{ overflow-x:auto; }
  .prose .note{ background:var(--warn-tint); color:var(--warn); border-radius:14px; padding:12px 16px; font-size:15px; margin:0 0 16px; }
  .prose .src{ font-size:13.5px; color:var(--mute); border-top:1px solid var(--line); padding-top:14px; margin-top:24px; }
  .side{ display:flex; flex-direction:column; gap:14px; }
  .side .box{ background:var(--violet); color:#fff; border-radius:var(--r); padding:22px; position:sticky; top:86px; }
  .side .box h3{ font-size:1.3rem; }
  .side .box p{ color:#FFEAF0; font-size:14.5px; margin:8px 0 14px; }
  .btn{ display:inline-block; font-family:var(--head); font-weight:800; text-decoration:none; padding:12px 18px; border-radius:999px; background:var(--lime); color:var(--night); }
  .side .others{ background:var(--card); border-radius:var(--r); padding:18px 20px; }
  .side .others h4{ font-family:var(--head); font-size:14px; text-transform:uppercase; letter-spacing:.05em; color:var(--mute); margin-bottom:8px; }
  .side .others a{ display:block; text-decoration:none; font-weight:600; padding:8px 0; border-bottom:1px solid var(--line); font-size:15px; }
  .side .others a:last-child{ border-bottom:none; }
  .side .others a:hover{ color:var(--violet); }

  footer{ background:var(--night); color:#BBA9C6; padding:30px 0 40px; font-size:13.5px; }
  .foot{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 24px; }
  .foot nav{ display:flex; gap:18px; flex-wrap:wrap; } .foot a{ text-decoration:none; color:#E3D6EC; }

  /* ===== palette douce : en-tête et bandeaux clairs ===== */
  header{ background:rgba(255,255,255,.92); color:var(--ink); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
  .brand b{ background:var(--violet); color:#fff; }
  .nav a{ color:var(--ink-2); } .nav a:hover{ color:var(--violet-2); background:var(--violet-tint); }
  .nav a.cta, .nav a.cta:hover{ background:var(--violet); color:#fff; }
  .moments-bar{ background:#FFF0F5; border-bottom:1px solid var(--line); }
  .chip{ color:var(--ink); background:#fff; border-color:var(--line); }
  .chip:hover{ background:#fff; border-color:var(--violet); color:var(--violet-2); }
  .chip .ci{ background:var(--violet-tint); color:var(--violet-2); }
  .hero, .art-hero, .g-hero{ background:var(--blush); color:var(--ink); }
  .hero:before{ background:radial-gradient(circle, rgba(224,96,143,.22), rgba(224,96,143,0) 68%); }
  .hero:after{ background:radial-gradient(circle, rgba(155,123,232,.22), rgba(155,123,232,0) 70%); }
  .g-hero:before{ background:radial-gradient(circle, rgba(224,96,143,.2), rgba(224,96,143,0) 68%); }
  .hero h1 em{ color:var(--violet); }
  .hero .lead, .g-hero p, .art-hero .meta{ color:var(--ink-2); }
  .pill{ background:#fff; color:var(--violet-2); box-shadow:0 1px 2px rgba(61,33,65,.06); }
  .pill i{ background:var(--violet); }
  .back{ color:var(--ink-2); } .back:hover{ color:var(--violet-2); }
  .art-hero .tag{ background:#fff; }
  .g-steps a{ color:var(--ink); background:#fff; border-color:var(--line); }
  .g-steps a small{ color:var(--ink-2); }
  .g-steps a .pc{ background:var(--line); } .g-steps a .pc i{ background:var(--violet); }
  .res{ background:linear-gradient(155deg,#E0608F 0%,#B568C8 100%); }
  .card{ box-shadow:0 1px 2px rgba(61,33,65,.05), 0 20px 44px -26px rgba(194,69,122,.45); }
  .tabs input:checked + span{ background:var(--violet); }
  .grp{ color:var(--violet-2); }
  .alertbox{ background:linear-gradient(150deg,#4A2550,#6B3570); }
  .alertbox:after{ background:#FFB8CF; opacity:.55; }
  .alertbox button{ background:#fff; color:var(--violet-2); }
  .alertbox .ok{ color:#FFD9E6; }
  footer{ background:#4A2550; }
  .side .box{ background:linear-gradient(155deg,#E0608F,#B568C8); }
  .btn{ background:#fff; color:var(--violet-2); }

  /* ===== budget première année ===== */
  .bud{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:20px; align-items:start; }
  @media (max-width:920px){ .bud{ grid-template-columns:1fr; } }
  .tabs-gad{ font-size:13px; color:var(--ink-2); margin:8px 2px 0; } .tabs-gad a{ color:var(--violet-2); font-weight:700; }
  .bud .seg{ display:flex; flex-wrap:wrap; gap:6px; }
  .bud .seg label{ position:relative; }
  .bud .seg input{ position:absolute; opacity:0; pointer-events:none; }
  .bud .seg span{ display:block; padding:8px 13px; border-radius:999px; border:2px solid var(--line); font-weight:700; font-size:14px; cursor:pointer; color:var(--ink-2); background:#fff; }
  .bud .seg input:checked + span{ border-color:var(--violet); background:var(--violet-tint); color:var(--violet-2); }
  .bud .seg input:focus-visible + span{ outline:3px solid var(--violet); }
  .bud .q{ margin-bottom:16px; }
  .bud .q > b{ display:block; font-size:14px; margin-bottom:7px; }
  .bud .q small{ display:block; font-size:12px; color:var(--mute); margin-top:5px; }
  .bud .chk{ display:flex; gap:10px; align-items:flex-start; font-size:14.5px; font-weight:600; cursor:pointer; }
  .bud .chk input{ width:20px; height:20px; accent-color:var(--violet); margin-top:1px; }
  .bres .big{ font-family:var(--head); font-weight:900; font-size:clamp(3rem,6.5vw,4.2rem); line-height:1; letter-spacing:-.03em; color:var(--violet-2); }
  .bres .big small{ font-size:1.1rem; color:var(--ink-2); font-weight:700; letter-spacing:0; }
  .bres .kpis{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:16px 0; }
  .bres .kpi{ background:var(--violet-tint); border-radius:16px; padding:12px 14px; }
  .bres .kpi span{ display:block; font-size:12.5px; font-weight:700; color:var(--ink-2); }
  .bres .kpi b{ font-family:var(--head); font-size:1.5rem; font-weight:800; }
  .brows{ list-style:none; display:flex; flex-direction:column; gap:10px; }
  .brows li{ display:grid; grid-template-columns:150px minmax(0,1fr) 82px; gap:10px; align-items:center; font-size:14.5px; }
  @media (max-width:520px){ .brows li{ grid-template-columns:110px minmax(0,1fr) 70px; font-size:13.5px; } }
  .brows .t{ height:12px; background:var(--line); border-radius:99px; overflow:hidden; }
  .brows .t i{ display:block; height:100%; border-radius:99px; }
  .brows .v{ text-align:right; font-weight:700; white-space:nowrap; }
  .brows li.aid .v{ color:#127A59; }
  .bnote{ font-size:12.5px; color:var(--mute); margin-top:14px; }

  /* ===== FAQ, chiffres clés, aperçu ===== */
  .faq{ display:flex; flex-direction:column; gap:10px; }
  .faq details{ background:var(--card); border-radius:16px; padding:2px 18px; border:2px solid var(--line); }
  .prose .faq details{ border-color:var(--line); }
  .faq details[open]{ border-color:var(--violet); }
  .faq summary{ cursor:pointer; list-style:none; font-family:var(--head); font-weight:700; font-size:16.5px; padding:14px 30px 14px 0; position:relative; }
  .faq summary::-webkit-details-marker{ display:none; }
  .faq summary:after{ content:"+"; position:absolute; right:0; top:10px; font-size:24px; color:var(--violet); font-weight:600; }
  .faq details[open] summary:after{ content:"–"; }
  .faq details p{ padding:0 0 16px; color:var(--ink-2); font-size:15px; margin:0; }
  .stats{ background:linear-gradient(150deg,#4A2550,#6B3570); color:#fff; border-radius:28px; padding:30px; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
  @media (max-width:860px){ .stats{ grid-template-columns:1fr 1fr; } }
  @media (max-width:440px){ .stats{ grid-template-columns:1fr; } }
  .stats b{ display:block; font-family:var(--head); font-weight:900; font-size:clamp(2rem,4vw,2.7rem); color:#FFB8CF; line-height:1; letter-spacing:-.02em; }
  .stats span{ display:block; margin-top:8px; font-weight:600; font-size:15px; }
  .stats small{ display:block; margin-top:4px; font-size:12px; color:#E8C9E6; }
  .hero-grid{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:30px; align-items:center; }
  .hero-prev{ background:#fff; border-radius:22px; padding:18px; box-shadow:0 24px 50px -28px rgba(194,69,122,.55); transform:rotate(1.5deg); }
  .hero-prev .hp-k{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--mute); }
  .hero-prev .hp-big{ font-family:var(--head); font-weight:900; font-size:2.4rem; color:var(--violet-2); line-height:1.05; margin:4px 0 10px; }
  .hero-prev .hp-big small{ font-size:1rem; color:var(--ink-2); }
  .hero-prev .hp-row{ display:flex; justify-content:space-between; font-size:14px; padding:7px 0; border-top:1px solid var(--line); }
  .hero-prev .hp-row b{ color:#127A59; }
  .hero-prev .hp-tag{ display:inline-block; margin-top:10px; font-size:12px; font-weight:700; background:var(--violet-tint); color:var(--violet-2); padding:4px 10px; border-radius:999px; }
  @media (max-width:920px){ .hero-grid{ grid-template-columns:1fr; } .hero-prev{ display:none; } }
  .trust{ display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:16px; font-size:13.5px; font-weight:600; color:var(--ink-2); }
  .trust span{ display:inline-flex; align-items:center; gap:6px; }
  .trust span:before{ content:""; width:16px; height:16px; border-radius:50%; background:var(--mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.3l2.2 2.2 4.8-4.8' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat; }
  .cmp{ margin-top:16px; background:var(--bg); border-radius:16px; padding:14px 16px; }
  .cmp h4{ font-family:var(--head); font-size:1.05rem; margin-bottom:6px; }
  .cmp p{ font-size:14px; color:var(--ink-2); }
  .scale{ position:relative; height:10px; border-radius:99px; background:var(--line); margin:22px 0 26px; }
  .scale .rng{ position:absolute; top:0; bottom:0; background:#F7C4D7; border-radius:99px; }
  .scale .me{ position:absolute; top:-7px; width:4px; height:24px; background:var(--violet-2); border-radius:4px; transform:translateX(-2px); }
  .scale .me:after{ content:attr(data-l); position:absolute; top:-20px; left:50%; transform:translateX(-50%); font-size:12px; font-weight:800; color:var(--violet-2); white-space:nowrap; }
  .scale .mk{ position:absolute; top:16px; font-size:11.5px; color:var(--mute); transform:translateX(-50%); white-space:nowrap; }

  /* ===== maquette Qui Garde Bébé ? ===== */
  :root{ --head:'Nunito', system-ui, sans-serif; --bg:#FCEFF4; }
  body{ background:linear-gradient(180deg,#FCE8F0 0%,#FCEFF4 30%,#FBF1F6 100%); }
  h1,h2,h3{ letter-spacing:-.01em; }
  header{ background:#fff; }
  .brand{ font-family:var(--head); font-weight:800; }
  .brand b.logo{ width:38px; height:38px; border-radius:12px; background:#FBDCE8; color:var(--violet-2); }
  .brand b.logo svg{ width:22px; height:22px; }
  .home-top{ padding:44px 0 30px; }
  .ht-grid{ display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:34px; align-items:start; }
  @media (max-width:980px){ .ht-grid{ grid-template-columns:1fr; } }
  .ht-left h1{ font-size:clamp(2.4rem,4.8vw,3.6rem); font-weight:900; color:var(--ink); margin-top:14px; max-width:14ch; }
  .ht-left .lead{ margin-top:14px; color:var(--ink-2); font-size:1.08rem; max-width:44ch; }
  .nursery{ display:block; width:100%; max-width:440px; margin-top:20px; }
  .ht-right{ display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; scroll-margin-top:90px; }
  @media (max-width:760px){ .ht-right{ grid-template-columns:1fr; } }
  .calc h2{ font-size:1.45rem; font-weight:800; margin-bottom:12px; }
  .calc .tabs{ margin-bottom:12px; }
  .calc .tabs span{ font-size:13.5px; padding:9px 6px; }
  .calc .fields{ grid-template-columns:1fr; gap:11px; }
  .calc .f input, .calc .f select{ background:#FDECEF; border-color:#FDECEF; padding:10px 12px; }
  .calc .f input:focus, .calc .f select:focus{ background:#fff; }
  .calc .grp{ margin-top:6px; }
  .res{ text-align:center; padding:26px 20px; }
  .res .res-ico{ width:64px; height:64px; border-radius:50%; background:#FFF0F5; color:var(--violet-2); display:inline-flex; align-items:center; justify-content:center; margin-bottom:10px; }
  .res .res-ico svg{ width:32px; height:32px; }
  .res h2{ font-size:1.05rem; }
  .res .big{ font-size:clamp(2.8rem,5vw,3.6rem); margin-top:4px; }
  .res .sub{ font-size:14px; }
  .r-cash{ margin-top:10px; background:rgba(255,255,255,.16); border-radius:14px; padding:9px 12px; font-size:13.5px; line-height:1.45; }
  .r-cash:empty{ display:none; }
  .rtiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:16px; }
  .rtiles > div{ background:rgba(255,255,255,.16); border-radius:14px; padding:10px 6px; }
  .rtiles .ri{ display:inline-flex; width:30px; height:30px; border-radius:50%; background:#fff; color:var(--violet-2); align-items:center; justify-content:center; }
  .rtiles .ri svg{ width:17px; height:17px; }
  .rtiles small{ display:block; font-size:11.5px; color:#FFE6EF; margin-top:6px; }
  .rtiles b{ display:block; font-family:var(--head); font-size:15px; font-weight:800; }
  .rdet{ margin-top:12px; text-align:left; }
  .rdet summary{ cursor:pointer; font-weight:700; font-size:13.5px; color:#FFE6EF; text-align:center; }
  .res .vs{ text-align:left; }
  .res .alerts{ text-align:left; }
  .row2{ margin-top:34px; }
  .h2s{ font-family:var(--head); font-size:1.7rem; font-weight:800; margin-bottom:14px; }
  .tiles{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
  @media (max-width:560px){ .tiles{ grid-template-columns:repeat(2,1fr); } }
  .tile{ background:#fff; border-radius:18px; padding:14px 8px; text-align:center; text-decoration:none; font-size:13px; font-weight:700; color:var(--ink-2); display:flex; flex-direction:column; align-items:center; gap:8px; border:2px solid transparent; }
  .tile:hover{ border-color:#F7C4D7; color:var(--violet-2); }
  .tile .ti{ color:var(--violet-2); } .tile .ti svg{ width:30px; height:30px; stroke-width:1.6; }
  .mapcard{ margin-top:16px; display:grid; grid-template-columns:minmax(0,1fr) 200px; gap:16px; align-items:center; }
  @media (max-width:520px){ .mapcard{ grid-template-columns:1fr; } .hexmap{ max-width:200px; margin:0 auto; } }
  .mapcard p{ color:var(--ink-2); font-size:14.5px; margin-bottom:14px; }
  .hexmap{ width:100%; }
  .tipgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  @media (max-width:760px){ .tipgrid{ grid-template-columns:1fr; } }
  .tipc{ background:#fff; border-radius:20px; padding:10px 10px 14px; text-decoration:none; display:flex; flex-direction:column; gap:8px; border:2px solid transparent; }
  .tipc:hover{ border-color:#F7C4D7; }
  .tip-img{ display:flex; align-items:center; justify-content:center; height:110px; border-radius:14px; color:#fff; }
  .tip-img svg{ width:46px; height:46px; stroke-width:1.5; }
  .tip-img.t1{ background:linear-gradient(135deg,#F9C6D8,#E9B7E8); } .tip-img.t2{ background:linear-gradient(135deg,#FFD6C4,#F7B6CB); } .tip-img.t3{ background:linear-gradient(135deg,#E3D4FA,#F8C7DA); }
  .tipc h3{ font-family:var(--head); font-size:1.02rem; font-weight:800; padding:0 4px; }
  .tipc p{ font-size:13px; color:var(--ink-2); padding:0 4px; }
  .tip-meta{ display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12px; color:var(--mute); padding:0 4px; margin-top:auto; }
  .tip-meta svg{ width:18px; height:18px; color:var(--violet); }
  .more-link{ display:inline-block; margin-top:14px; font-weight:800; color:var(--violet-2); text-decoration:none; }
  footer{ background:#fff; color:var(--ink-2); border-top:1px solid var(--line); }
  footer .foot a{ color:var(--ink-2); }
  footer .foot a:hover{ color:var(--violet-2); }
  footer .fbrand{ font-family:var(--head); font-weight:800; color:var(--ink); margin-right:10px; }

  .calc details.more{ grid-column:1/-1; background:#FFF5F8; border-radius:14px; padding:4px 12px; }
  .calc details.more[open]{ padding-bottom:12px; }
  .calc details.more summary{ cursor:pointer; font-weight:800; font-size:14px; color:var(--violet-2); padding:8px 0; }
  .calc details.more .fields{ grid-template-columns:1fr; gap:11px; }
  .calc .f small{ font-size:11.5px; }
  @media (max-width:980px){ .nursery{ display:none; } }

  .nursery{ border-radius:26px; height:auto; box-shadow:0 20px 40px -30px rgba(194,69,122,.5); }
  .hexmap{ height:auto; border-radius:16px; }
  .tip-img{ overflow:hidden; background:#FBE7EF !important; }
  .tip-img img{ width:100%; height:100%; object-fit:cover; display:block; }
  .ia-note{ font-size:11.5px; color:var(--mute); }

  .art-fig{ margin:0 0 22px; border-radius:18px; overflow:hidden; background:#FBE7EF; }
  .art-fig img{ display:block; width:100%; height:auto; }
  .g-img{ display:block; margin:-22px -22px 6px; height:150px; overflow:hidden; border-radius:22px 22px 0 0; background:#FBE7EF; }
  .g-img img{ width:100%; height:100%; object-fit:cover; display:block; }

  /* ===== vert sauge pour équilibrer le rose ===== */
  :root{ --mint:#7FAE93; --mint-tint:#E5F0E9; --sage:#7FAE93; --sage-2:#4F8268; --sage-tint:#E8F2EC;
    --blush:linear-gradient(160deg,#FDE6EF 0%,#F7EFF4 48%,#E6F1EA 100%); }
  body{ background:radial-gradient(1200px 600px at 90% -10%, #E3F0E7 0%, rgba(227,240,231,0) 60%), radial-gradient(900px 500px at -10% 10%, #FBE5EE 0%, rgba(251,229,238,0) 60%), #FAF6F2; }
  .res{ background:linear-gradient(155deg,#E0608F 0%,#C86FA6 60%,#A784BE 100%); }
  .brand b.logo{ background:var(--sage-tint); }
  .brand b.logo svg{ width:30px; height:30px; }
  .kicker, .grp, .calc .grp{ color:var(--sage-2); }
  .pill i{ background:var(--sage); }
  .trust span:before{ background-color:var(--sage); }
  .tiles .tile:nth-child(even) .ti{ color:var(--sage-2); }
  .tile:nth-child(even):hover{ border-color:#BFDCCB; color:var(--sage-2); }
  .mapcard{ background:linear-gradient(140deg,#fff 0%,#EEF6F1 100%); }
  .mapcard .btn2{ background:var(--sage-2); }
  .tip-img.t2{ background:var(--sage-tint) !important; }
  .stats{ background:linear-gradient(150deg,#4F8268,#6E9C83); }
  .stats b{ color:#fff; } .stats small{ color:#DCEDE3; }
  .alertbox{ background:linear-gradient(150deg,#4F8268,#6A9A80); }
  .alertbox:after{ background:#F4C6D6; opacity:.95; }
  .alertbox button{ color:var(--sage-2); }
  .alertbox .ok{ color:#EAF6EE; }
  .moment:nth-child(even) .ico{ background:var(--sage-tint) !important; }
  .guide:nth-child(3n+2) .tag{ background:var(--sage-tint); color:var(--sage-2); }
  .filters button[aria-pressed="true"]{ background:var(--sage-2); border-color:var(--sage-2); }
  .tabs input:checked + span{ background:var(--violet); }
  .calc .f input, .calc .f select{ background:#F3F7F4; border-color:#F3F7F4; }
  .calc details.more{ background:#F3F7F4; }
  .calc details.more summary{ color:var(--sage-2); }
  .faq details[open]{ border-color:var(--sage); }
  .faq summary:after{ color:var(--sage-2); }
  .bres .kpi:nth-child(2){ background:var(--sage-tint); }
  .item.done{ border-color:var(--sage); }
  .art-fig{ background:var(--sage-tint); }
  .prose .tldr{ background:var(--sage-tint); } .prose .tldr strong{ color:var(--sage-2); }
  .tabbar a.on{ color:var(--sage-2); background:var(--sage-tint); }
  footer{ border-top:3px solid var(--sage-tint); }
  .rtiles .ri{ color:var(--sage-2); }

  /* ===== mascotte Chou ===== */
  .brand b.logo{ background:transparent !important; width:46px; height:46px; }
  .brand b.logo img{ width:46px; height:46px; display:block; }
  .nwrap{ position:relative; max-width:440px; }
  .m-wave{ position:absolute; right:-34px; bottom:-26px; width:150px; height:auto; filter:drop-shadow(0 10px 14px rgba(61,33,65,.18)); }
  @media (max-width:980px){ .nwrap{ display:none; } }
  .calc{ position:relative; }
  .m-calc{ position:absolute; top:-54px; right:-14px; width:92px; height:auto; filter:drop-shadow(0 8px 10px rgba(61,33,65,.15)); }
  .bres{ position:relative; }
  .m-piggy{ position:absolute; top:-58px; right:12px; width:112px; height:auto; filter:drop-shadow(0 8px 10px rgba(61,33,65,.15)); }
  @media (max-width:520px){ .m-piggy{ width:84px; top:-40px; } .m-calc{ width:74px; top:-40px; right:-6px; } }
  .mwrap{ position:relative; }
  .m-map{ position:absolute; left:-30px; bottom:-14px; width:92px; height:auto; }
  .alertbox .m-sleep{ position:absolute; right:26px; top:-62px; width:150px; height:auto; z-index:2; }
  .alertbox{ overflow:visible; margin-top:40px; }
  .alertbox:after{ right:0; bottom:0; width:220px; height:150px; border-radius:220px 0 28px 0; }
  @media (max-width:860px){ .alertbox .m-sleep{ width:110px; top:-48px; right:14px; } }
  .g-hero .m-clip{ position:absolute; right:20px; bottom:-34px; width:150px; height:auto; }
  @media (max-width:760px){ .g-hero .m-clip{ display:none; } }
  .empty{ display:flex; gap:14px; align-items:center; background:#fff; border-radius:18px; padding:14px; }
  .empty img{ width:110px; height:auto; flex:none; }
  .empty p{ color:var(--ink-2); font-size:14.5px; }

  /* ===== animations légères ===== */
  @keyframes coucou{ 0%{transform:translateY(18px) scale(.9);opacity:0} 18%{transform:none;opacity:1} 30%{transform:rotate(-6deg)} 42%{transform:rotate(5deg)} 54%{transform:rotate(-4deg)} 66%,100%{transform:rotate(0)} }
  @keyframes balance{ 0%,100%{transform:rotate(-2.5deg)} 50%{transform:rotate(2.5deg)} }
  @keyframes flotte{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
  @keyframes respire{ 0%,100%{transform:scale(1)} 50%{transform:scale(1.035,1.05)} }
  .m-wave{ transform-origin:50% 95%; animation:coucou 1.8s ease-out .3s both, balance 5s ease-in-out 2.2s infinite; }
  .m-calc{ animation:flotte 3.6s ease-in-out infinite; }
  .m-piggy{ animation:flotte 4.2s ease-in-out .6s infinite; }
  .m-map{ animation:flotte 4s ease-in-out .3s infinite; }
  .g-hero .m-clip{ transform-origin:50% 95%; animation:balance 5.5s ease-in-out infinite; }
  .alertbox .m-sleep{ transform-origin:50% 90%; animation:respire 3.8s ease-in-out infinite; }
  .tile, .tipc, .guide, .moment, .cr{ transition:transform .25s ease, box-shadow .25s ease, border-color .2s; }
  .tile:hover, .tipc:hover, .moment:hover{ transform:translateY(-4px); box-shadow:0 16px 28px -22px rgba(61,33,65,.45); }
  .btn2, .nav a.cta, .alertbox button, .btn{ transition:transform .15s ease, filter .15s; }
  .btn2:hover, .nav a.cta:hover, .alertbox button:hover, .btn:hover{ transform:translateY(-1px); filter:brightness(1.05); }
  .rv{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
  .rv.in{ opacity:1; transform:none; }
  .res .big.pop{ animation:pop .45s ease; }
  @keyframes pop{ 0%{transform:scale(.96)} 60%{transform:scale(1.03)} 100%{transform:scale(1)} }
  @media (prefers-reduced-motion: reduce){
    .m-wave, .m-calc, .m-piggy, .m-map, .m-clip, .m-sleep, .res .big.pop{ animation:none !important; }
    .rv{ opacity:1 !important; transform:none !important; }
    .tile:hover, .tipc:hover, .moment:hover{ transform:none; }
  }

  .tpl{ background:var(--sage-tint); border-radius:16px; padding:14px; margin:0 0 18px; }
  .tpl textarea{ width:100%; border:none; background:#fff; border-radius:12px; padding:14px; font:14.5px/1.6 var(--body); color:var(--ink); resize:vertical; }
  .tpl-act{ display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }
  .tpl-act .btn2{ border:none; cursor:pointer; font-size:14.5px; }
  .btn2.ghost{ background:#fff; color:var(--ink); border:2px solid var(--line); }
  @media print{ header, footer, .tabbar, .side, .art-hero, .tpl-act, .tldr, .note, .src, .art-fig, .prose > h2, .prose > p, .faq, .prose details{ display:none !important; } .tpl{ background:none; padding:0; } .tpl textarea{ height:auto; min-height:90vh; } .prose{ box-shadow:none; padding:0; } }

  .docs{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; align-items:start; }
  @media (max-width:900px){ .docs{ grid-template-columns:1fr; } }
  .dgrp{ background:#fff; border-radius:20px; padding:4px 18px; border:2px solid transparent; }
  .dgrp[open]{ border-color:var(--sage-tint); }
  .dgrp summary{ list-style:none; cursor:pointer; font-family:var(--head); font-weight:800; font-size:17px; padding:15px 0; display:flex; align-items:center; gap:10px; }
  .dgrp summary::-webkit-details-marker{ display:none; }
  .dgrp summary .cnt{ font-family:var(--body); font-size:12px; font-weight:800; background:var(--sage-tint); color:var(--sage-2); border-radius:999px; padding:2px 9px; }
  .dgrp summary:after{ content:""; margin-left:auto; width:8px; height:8px; border-right:2.5px solid var(--sage-2); border-bottom:2.5px solid var(--sage-2); transform:rotate(45deg) translateY(-3px); transition:transform .2s; }
  .dgrp[open] summary:after{ transform:rotate(-135deg) translateY(-2px); }
  .dgrp ul{ list-style:none; padding:0 0 12px; display:flex; flex-direction:column; }
  .dgrp li a{ display:flex; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--line); text-decoration:none; font-weight:700; font-size:14.5px; color:var(--ink); }
  .dgrp li a:hover{ color:var(--violet-2); }
  .dico{ flex:none; width:38px; height:38px; border-radius:50%; background:#FDECEF; color:var(--violet-2); display:inline-flex; align-items:center; justify-content:center; }
  .dico svg{ width:19px; height:19px; }
  .dgrp .go{ margin-left:auto; color:var(--mute); }

  /* ===== outils et planning ===== */
  .tools{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  @media (max-width:900px){ .tools{ grid-template-columns:1fr 1fr; } }
  @media (max-width:520px){ .tools{ grid-template-columns:1fr; } }
  .tool{ position:relative; background:#fff; border-radius:22px; padding:22px; text-decoration:none; display:flex; flex-direction:column; gap:6px; border:2px solid transparent; transition:transform .25s, box-shadow .25s, border-color .2s; }
  .tool:hover{ transform:translateY(-4px); box-shadow:0 18px 30px -24px rgba(61,33,65,.5); border-color:var(--sage-tint); }
  .tool-ico{ width:54px; height:54px; border-radius:17px; background:var(--sage-tint); color:var(--sage-2); display:inline-flex; align-items:center; justify-content:center; margin-bottom:6px; }
  .tool:nth-child(even) .tool-ico{ background:#FDECEF; color:var(--violet-2); }
  .tool-ico svg{ width:28px; height:28px; }
  .tool h3{ font-family:var(--head); font-size:1.15rem; font-weight:800; }
  .tool p{ font-size:14px; color:var(--ink-2); }
  .tool-new{ position:absolute; top:18px; right:18px; font-size:11.5px; font-weight:800; background:var(--violet); color:#fff; border-radius:999px; padding:3px 9px; }
  .pl-grid{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:18px; align-items:start; }
  @media (max-width:900px){ .pl-grid{ grid-template-columns:1fr; } }
  .pl-mode{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; } .pl-mode label{ cursor:pointer; position:relative; } .pl-mode input{ position:absolute; opacity:0; pointer-events:none; width:1px; height:1px; margin:0; left:0; top:0; }
  .pl-mode span{ display:inline-block; padding:9px 16px; border-radius:999px; border:1.5px solid var(--line); font-weight:700; font-size:14.5px; background:#fff; } .pl-mode input:checked + span{ background:var(--violet-2); border-color:var(--violet-2); color:#fff; } .pl-mode input:focus-visible + span{ outline:2px solid var(--violet-2); outline-offset:2px; }
  #planning:not(.gad) .pl-gad{ display:none !important; } #planning.gad .pl-amo{ display:none !important; }
  .pl-row input.pl-p{ font:inherit; font-weight:600; padding:8px 6px; border-radius:12px; border:2px solid #F3F7F4; background:#F3F7F4; width:100%; min-width:0; text-align:center; }
  .pl-head, .pl-row{ display:grid; grid-template-columns:1.2fr 1fr 1fr .7fr; gap:10px; align-items:center; }
  .pl-head{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--mute); padding-bottom:6px; }
  #planning.gad .pl-head, #planning.gad .pl-row{ grid-template-columns:1.15fr 1fr 1fr .75fr .6fr !important; }
  .pl-row{ padding:8px 0; border-top:1px solid var(--line); }
  .pl-row input[type=time]{ font:inherit; font-weight:600; padding:8px 8px; border-radius:12px; border:2px solid #F3F7F4; background:#F3F7F4; width:100%; min-width:0; }
  .pl-row.off input[type=time]{ opacity:.35; }
  .pl-day{ display:flex; align-items:center; gap:8px; font-weight:700; cursor:pointer; }
  .pl-day input{ width:18px; height:18px; accent-color:var(--sage-2); }
  .pl-h{ text-align:right; font-weight:800; font-family:var(--head); }
  .pl-row.off .pl-h{ color:var(--mute); }
  .pl-opts{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px; }
  @media (max-width:520px){ .pl-opts{ grid-template-columns:1fr; } .pl-head, .pl-row{ grid-template-columns:1.1fr 1fr 1fr .6fr; gap:6px; font-size:14px; } }
  .pl-res h3{ font-family:var(--head); font-size:1.2rem; margin-bottom:12px; }
  .pl-kpis{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .pl-kpis div{ background:var(--sage-tint); border-radius:16px; padding:12px 14px; }
  .pl-kpis div:nth-child(even){ background:#FDECEF; }
  .pl-kpis b{ display:block; font-family:var(--head); font-size:1.6rem; font-weight:900; }
  .pl-kpis span{ font-size:12.5px; font-weight:700; color:var(--ink-2); }
  .pl-pause{ margin-top:12px; background:var(--sage-tint); border-radius:14px; padding:10px 12px; font-size:13.5px; color:var(--ink-2); line-height:1.5; } .pl-pause b{ color:var(--ink); }
  .pl-week{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin:16px 0 4px; height:120px; align-items:end; }
  .pl-week .col{ display:flex; flex-direction:column; align-items:center; gap:4px; height:100%; justify-content:flex-end; font-size:11.5px; font-weight:700; color:var(--mute); }
  .pl-week .bar{ width:100%; border-radius:8px 8px 4px 4px; background:linear-gradient(180deg,#9FC7AF,#7FAE93); min-height:4px; }
  .pl-act{ display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
  .pl-act .btn2{ border:none; cursor:pointer; font-size:14.5px; }
  @media print{ body.print-planning > *:not(main), body.print-planning main > *:not(#planning){ display:none !important; } body.print-planning #planning .pl-act, body.print-planning #planning .bnote, body.print-planning #planning .sec-head p{ display:none !important; } body.print-planning{ background:#fff; padding:0; } body.print-planning .card{ box-shadow:none; border:1px solid #ddd; } }

  .pl-dl{ align-items:center; margin-top:8px; }
  .pl-dl span{ font-size:13.5px; font-weight:700; color:var(--ink-2); }
  .pl-dl .btn2{ padding:9px 14px; font-size:13.5px; }

  .dl-row{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:14px; }
  .dl-row span{ font-size:13px; font-weight:700; color:#FFEAF0; }
  .dl-row button{ font:inherit; font-size:13.5px; font-weight:800; padding:8px 14px; border-radius:999px; border:2px solid rgba(255,255,255,.55); background:transparent; color:#fff; cursor:pointer; }
  .dl-row button:hover{ background:rgba(255,255,255,.15); }
  .dl-row.light span{ color:var(--ink-2); }
  .dl-row.light button{ border-color:var(--line); color:var(--ink); background:#fff; }
  .dl-row.light button:hover{ border-color:var(--sage); }

  /* ===== comparatif 3 modes + crédit d'impôt ===== */
  .cp-opts{ margin-bottom:16px; }
  .cp-opts > p{ font-size:14.5px; color:var(--ink-2); margin-bottom:12px; }
  .cp-opts a{ color:var(--violet-2); font-weight:700; }
  .cp-fields{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  @media (max-width:820px){ .cp-fields{ grid-template-columns:1fr; } }
  .cp-fields .f input, .cp-fields .f select{ background:#F3F7F4; border-color:#F3F7F4; }
  .cp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  @media (max-width:900px){ .cp-grid{ grid-template-columns:1fr; } }
  .cp-card{ background:#fff; border-radius:22px; padding:20px; border:2px solid transparent; position:relative; }
  .cp-card.best{ border-color:var(--sage); }
  .cp-card .best-tag{ position:absolute; top:-12px; left:20px; background:var(--sage-2); color:#fff; font-size:12px; font-weight:800; padding:3px 10px; border-radius:999px; }
  .cp-card h3{ font-family:var(--head); font-size:1.2rem; font-weight:800; }
  .cp-card .cp-big{ font-family:var(--head); font-weight:900; font-size:2.4rem; color:var(--violet-2); line-height:1.05; margin:8px 0 2px; }
  .cp-card .cp-big small{ font-size:1rem; color:var(--ink-2); font-weight:700; }
  .cp-card .cp-year{ font-size:13.5px; color:var(--mute); }
  .cp-card ul.cp-lines{ list-style:none; margin:12px 0; border-top:1px solid var(--line); }
  .cp-card ul.cp-lines li{ display:flex; justify-content:space-between; gap:10px; padding:7px 0; border-bottom:1px solid var(--line); font-size:14px; }
  .cp-card ul.cp-lines li b{ white-space:nowrap; }
  .cp-card ul.cp-lines li.m b{ color:#127A59; }
  .cp-pros{ font-size:13.5px; color:var(--ink-2); display:grid; gap:4px; }
  .cp-pros span:before{ content:"+ "; color:var(--sage-2); font-weight:800; }
  .cp-pros span.c:before{ content:"– "; color:var(--violet-2); }
  .ci-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  @media (max-width:900px){ .ci-grid{ grid-template-columns:1fr; } }
  .ci-card h3{ font-family:var(--head); font-size:1.15rem; font-weight:800; margin:10px 0; }
  .ci-card ul, .ci-card ol{ margin-left:18px; font-size:14.5px; color:var(--ink-2); display:grid; gap:6px; }
  .ci-tag{ display:inline-block; font-size:12px; font-weight:800; background:#FDECEF; color:var(--violet-2); border-radius:999px; padding:4px 10px; }
  .ci-tag.sage{ background:var(--sage-tint); color:var(--sage-2); }
  .cp-later{ display:block; font-size:11.5px; color:var(--mute); font-weight:600; }
  .cp-lines li.cp-pay{ border-top:1.5px dashed var(--line); margin-top:4px; padding-top:8px; font-weight:700; }
  .ci-warn{ background:#FDECEF; border-radius:12px; padding:9px 12px; font-size:14px; font-weight:700; margin:6px 0 10px; }
  .ci-dom{ font-size:13.5px; color:var(--ink-2); margin-top:10px; border-top:1px solid var(--line); padding-top:10px; }
  .ci-you{ margin-top:12px; background:var(--sage-tint); border-radius:14px; padding:10px 12px; font-size:14px; font-weight:600; }
  .ci-you:empty{ display:none; }
  #r-vs{ display:none !important; }
  #methode .method{ grid-template-columns:repeat(2,minmax(0,1fr)); } @media (max-width:760px){ #methode .method{ grid-template-columns:1fr; } }
  .vs-link{ display:block; text-align:center; margin:14px 0 4px; font-weight:800; color:#fff; text-decoration:underline; text-underline-offset:3px; }
