/* Maison Ti Laouen — feuille de style V7.
   Un seul système : palette mesurée sur sa carte, échelle d'espacements fixe, trois rayons, une ombre, une largeur de lecture.
   Seul le macareux bouge, doucement (clignement, respiration, coucou), et jamais si le système demande moins d'animations. */
@font-face{font-family:Nunito;src:url('assets/nunito-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Nunito;src:url('assets/nunito-bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Nunito;src:url('assets/nunito-black.ttf') format('truetype');font-weight:900;font-display:swap}
@font-face{font-family:Caveat;src:url('assets/Caveat.ttf') format('truetype');font-weight:400 700;font-display:swap}

:root{
  /* couleurs de la carte */
  --cream:#fff8e5; --paper:#fffdf6; --sand:#f6ecd2; --sand-2:#efe2c2; --line:#e8dcbc; --line-2:#cdbd98;
  --ink:#27384a; --ink-soft:#4b5d6e; --blue:#677f99; --blue-deep:#4d6480;
  --red:#dc5535; --rust:#b3402a; --rust-dark:#8f3020; --ochre:#efc165; --ochre-deep:#9a6d1c; --orange:#f49a48;
  /* échelle d'espacements : 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64 · 96 */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px; --s9:96px;
  --sec:var(--s8); --gutter:20px; --wrap:1200px; --measure:38em;
  /* trois rayons, une ombre */
  --r-s:12px; --r-m:20px; --r-l:28px;
  --shadow:0 1px 2px rgba(39,56,74,.05),0 14px 30px -20px rgba(39,56,74,.28);
  /* texte : corps 17 px au téléphone, 18 px à l'ordinateur ; petit texte jamais sous 16 px */
  --fs-body:1.0625rem; --fs-small:1rem; --fs-lead:1.125rem; --fs-label:.875rem;
  --header-h:72px; --art-bg:var(--sand);
}
@media (min-width:760px){:root{--gutter:40px;--sec:var(--s9);--fs-body:1.125rem;--fs-small:1.0625rem;--fs-lead:1.25rem;--header-h:80px}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 72px)}
body{margin:0;background:var(--cream);color:var(--ink);font:400 var(--fs-body)/1.6 Nunito,system-ui,sans-serif;overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column}
main{flex:1 0 auto}
[hidden]{display:none!important}
img,video,svg{display:block;max-width:100%}
img,video{height:auto}
h1,h2,h3{font-weight:900;line-height:1.14;letter-spacing:-.015em;margin:0 0 var(--s4);text-wrap:balance}
h1{font-size:clamp(2.25rem,1.55rem + 2.6vw,3.5rem)}
h2{font-size:clamp(1.625rem,1.3rem + 1.2vw,2.25rem)}
h3{font-size:1.25rem;line-height:1.25}
p{margin:0 0 var(--s4)}
p:last-child{margin-bottom:0}
ul,ol{margin:0;padding:0}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}
a:hover{color:var(--rust)}
strong{font-weight:900}
sup{font-size:.62em;line-height:0;vertical-align:.5em}
:focus-visible{outline:3px solid var(--blue-deep);outline-offset:3px;border-radius:8px}
.skip{position:absolute;left:8px;top:8px;transform:translateY(-200%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;z-index:99}
.skip:focus{transform:none}
.visually-hidden{position:absolute!important;left:0;top:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}

/* ---------- textes ---------- */
.eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);font-size:var(--fs-label);font-weight:900;text-transform:uppercase;letter-spacing:.12em;color:var(--rust);margin-bottom:var(--s3)}
.lead{font-size:var(--fs-lead);line-height:1.55;color:var(--ink-soft);max-width:var(--measure)}
.sub{font-weight:900;font-size:var(--fs-small);margin-bottom:var(--s3)}
.hand{font-family:Caveat,cursive;font-weight:700;font-size:1.75rem;line-height:1.1;color:var(--blue-deep)}
.fine{font-size:var(--fs-small);color:var(--ink-soft)}
.opt{font-weight:400;color:var(--ink-soft)}
.lbl{display:block;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:var(--ink-soft);margin-bottom:var(--s1)}
.ex{display:inline-flex;align-items:center;vertical-align:middle;font:700 .8125rem/1 Nunito,sans-serif;letter-spacing:.02em;text-transform:none;background:#f8e6b4;color:#5a4414;border-radius:999px;padding:5px 10px;white-space:nowrap}
.c-red{color:var(--red)}.c-ochre{color:#e8b24a}.c-blue{color:var(--blue)}.c-orange{color:var(--orange)}
.split-text p,.story-body p,.card p{max-width:var(--measure)}

/* ---------- boutons : trois formes, pas plus ---------- */
button{font:inherit;color:inherit}
.btn{font:900 var(--fs-small)/1.2 Nunito,sans-serif;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:52px;padding:var(--s3) var(--s5);border-radius:999px;border:2px solid var(--rust);background:var(--rust);color:#fff;text-decoration:none;cursor:pointer;text-align:center}
.btn:hover{background:var(--rust-dark);border-color:var(--rust-dark);color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{background:var(--sand);color:var(--ink);border-color:var(--line-2)}
.btn-light{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.btn-light:hover{background:#fff;color:var(--rust);border-color:#fff}
.btn-quiet{background:var(--paper);color:var(--ink);border:1px solid var(--line-2)}
.btn-quiet:hover{background:var(--sand);color:var(--ink);border-color:var(--line-2)}
.btn-small{min-height:44px;padding:var(--s2) var(--s4)}
.btn-block{width:100%}
.btn:disabled{opacity:.6;cursor:default}
.actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin:var(--s5) 0 0}
p.actions{max-width:none}
.code{font:700 var(--fs-small)/1 ui-monospace,Menlo,monospace;background:var(--sand);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r-s);min-height:44px;padding:var(--s2) var(--s3);cursor:pointer}
.code:hover{background:var(--sand-2)}

/* ---------- en-tête ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,248,229,.97);border-bottom:1px solid var(--line)}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:var(--s3);text-decoration:none;flex-shrink:0}
.brand-logo{width:52px;height:52px;border-radius:50%;overflow:hidden;display:block;flex-shrink:0;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.brand-logo img{width:100%;height:100%;object-fit:cover}
.brand-name{font-weight:700;font-size:var(--fs-small);line-height:1.1;color:var(--ink)}
.brand-name b{display:block;font-weight:900;font-size:1.25rem;color:var(--rust)}
.main-nav{display:flex;align-items:center;gap:var(--s3)}
.nav-links{display:flex;align-items:center;gap:var(--s1)}
.nav-links a{position:relative;text-decoration:none;font-weight:700;font-size:var(--fs-small);padding:var(--s2) var(--s3);border-radius:999px;white-space:nowrap}
.nav-links a:hover{background:var(--sand);color:var(--ink)}
.nav-links a[aria-current=page]{background:var(--sand);color:var(--rust)}
.nav-parents{display:inline-flex;align-items:center;gap:var(--s2);min-height:48px;padding:var(--s2) var(--s4) var(--s2) var(--s3);border-radius:999px;background:var(--blue-deep);color:#fff;font-weight:900;font-size:var(--fs-small);text-decoration:none;white-space:nowrap}
.nav-parents:hover{background:var(--ink);color:#fff}
.nav-parents[aria-current=page]{background:var(--blue-deep);box-shadow:0 0 0 3px var(--cream),0 0 0 6px var(--ochre)}
.nav-parents .nav-ico{width:28px;height:28px;background:var(--cream);border-radius:50%;padding:2px}
.nav-call{display:none}
.menu-btn{display:none;align-items:center;gap:var(--s2);background:var(--paper);color:var(--ink);border:1px solid var(--line-2);border-radius:999px;min-height:48px;padding:var(--s2) var(--s4);font-weight:900;cursor:pointer}
.burger{width:18px;height:2px;background:currentColor;position:relative;border-radius:2px}
.burger::before,.burger::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;border-radius:2px}
.burger::before{top:-6px}.burger::after{top:6px}
.nav-open .burger{background:transparent}
.nav-open .burger::before{top:0;transform:rotate(45deg)}
.nav-open .burger::after{top:0;transform:rotate(-45deg)}
@media (max-width:1179px){
  .menu-btn{display:inline-flex}
  .main-nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:var(--s4);background:var(--cream);border-bottom:1px solid var(--line);padding:var(--s4) var(--gutter) var(--s5);box-shadow:0 24px 40px -24px rgba(39,56,74,.35);max-height:calc(100vh - var(--header-h));overflow:auto}
  .nav-open .main-nav{display:flex}
  .nav-links{flex-direction:column;align-items:stretch;gap:0}
  .nav-links a{font-size:1.125rem;padding:var(--s3) var(--s4);border-radius:var(--r-s);border-bottom:1px solid var(--line)}
  .nav-links a:last-child{border-bottom:0}
  .nav-parents{justify-content:center;min-height:52px}
  .nav-call{display:block;margin:0;text-align:center;color:var(--ink-soft)}
  .nav-call a{font-weight:900;color:var(--ink);white-space:nowrap}
}

/* ---------- fil d'Ariane ---------- */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);font-size:var(--fs-small);color:var(--ink-soft);margin-bottom:var(--s4)}
.crumbs li{display:flex;align-items:center;gap:var(--s2)}
.crumbs li+li::before{content:"›";color:var(--line-2);font-weight:900}
.crumbs a{text-decoration:none;font-weight:700}
.crumbs a:hover{text-decoration:underline}
.crumbs [aria-current]{color:var(--rust);font-weight:900}

/* ---------- sections ---------- */
.sec{padding-block:var(--sec)}
.sec+.sec:not(.band),.sec-tight,.gate-anon,.gate-refused{padding-top:0}
.band{padding-block:var(--sec)}
.band+.sec:not(.band){padding-top:var(--sec)}
.band-sand{background:var(--sand);--art-bg:var(--cream)}
.band-blue{background:var(--blue-deep);color:var(--cream);--art-bg:var(--cream)}
.band-blue .eyebrow{color:#ffe4a8}
.band-blue p{color:#f3ead3}
.band-blue a:not(.btn){color:#fff}
.sec-head{max-width:46rem;margin-bottom:var(--s6)}
.sec-head h2{margin-bottom:var(--s3)}
.sec-head .lead{margin-top:var(--s3)}
.split{display:grid;gap:var(--s6);align-items:center}
.split>*{min-width:0}
.split-top{align-items:start}
@media (min-width:900px){
  .split{grid-template-columns:1fr 1fr;gap:var(--s8)}
  .split-rev>:first-child{order:2}
  .sticky{position:sticky;top:calc(var(--header-h) + var(--s6))}
}

/* ---------- en-tête de page ---------- */
.phead{padding-block:var(--s6) var(--s7)}
.phead-in{display:grid;gap:var(--s5);align-items:center}
.phead h1{margin-bottom:var(--s4)}
.phead .lead{margin-bottom:0}
@media (min-width:860px){
  .phead{padding-block:var(--s7) var(--s8)}
  .phead-in{grid-template-columns:minmax(0,1fr) 420px;gap:var(--s8)}
}
.anchors{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s5)}
.anchors a{display:inline-flex;align-items:center;min-height:44px;padding:var(--s2) var(--s4);border-radius:999px;background:var(--paper);border:1px solid var(--line);text-decoration:none;font-weight:700;font-size:var(--fs-small)}
.anchors a:hover{border-color:var(--line-2);color:var(--rust)}

/* ---------- le macareux, toujours dans son cadre ---------- */
.art{position:relative;background:var(--art-bg);border-radius:var(--r-l);overflow:hidden;aspect-ratio:6/5;margin:0}
.art .puffin{position:absolute;inset:0;margin:0;width:100%;height:100%}
.art svg{width:100%;height:100%}
.tl-scene{overflow:visible}
.art-head{width:100%}
@media (max-width:859px){.art-head{aspect-ratio:16/10}}
.art-split{width:100%;max-width:520px;justify-self:center}
.art-card{aspect-ratio:4/3;border-radius:var(--r-m)}
.art-gate{width:100%;max-width:300px}
.drawing{margin:0}.drawing svg{width:100%;height:auto;border-radius:var(--r-l)}

/* ---------- photos ---------- */
.photo{margin:0}
.photo img,.photo video{width:100%;border-radius:var(--r-l);aspect-ratio:3/2;object-fit:cover;background:var(--sand)}
.photo[data-bientot]{position:relative;cursor:pointer}
.photo .bientot{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);margin:0;padding:var(--s2) var(--s4);border-radius:999px;background:var(--cream,#fff8e5);color:var(--ink,#263548);font-weight:800;box-shadow:var(--shadow);white-space:nowrap}
.photo figcaption{font-size:.875rem;font-weight:700;color:var(--ink-soft);margin-top:var(--s2);text-align:right}
.shared-media{width:100%;border-radius:var(--r-m);display:block;aspect-ratio:3/2;object-fit:cover}

/* ---------- petits dessins et listes illustrées ---------- */
.tl-ico{width:44px;height:44px;flex:0 0 auto;display:block}
.tile,.ilist .tl-ico,.note .tl-ico,.tip .tl-ico,.how .tl-ico,.features .tl-ico,.toys .tl-ico,.call-card .tl-ico{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-s);padding:6px}
.card .ilist .tl-ico,.card .note .tl-ico,.card .how .tl-ico{background:var(--cream)}
.tile-lg{width:64px;height:64px;background:var(--cream);border:1px solid var(--line);border-radius:var(--r-m);padding:8px}
.band-sand .ilist .tl-ico,.band-sand .features .tl-ico{background:var(--cream)}
.ilist{list-style:none;display:grid;gap:var(--s3);margin:var(--s5) 0 0}
.ilist li{display:grid;grid-template-columns:44px 1fr;gap:var(--s4);align-items:center}
.card>.ilist:first-child{margin-top:0}
.note{display:flex;align-items:center;gap:var(--s4);font-size:var(--fs-small);color:var(--ink-soft);margin-top:var(--s5)}
.note a{color:var(--ink);font-weight:700}
.tip{display:flex;align-items:center;gap:var(--s4);font-weight:700;margin-top:var(--s5);max-width:none}
.tip span{max-width:var(--measure)}

/* ---------- cartes ---------- */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-l);padding:var(--s5);box-shadow:var(--shadow)}
@media (min-width:760px){.card{padding:var(--s6)}}
.band-sand .card{border-color:#e6d6ad}

/* ---------- accueil ---------- */
.hero{padding-block:var(--s6) var(--s8)}
.hero-in{display:grid;gap:var(--s5);align-items:center}
.hero-art{order:-1;display:flex;justify-content:flex-start}
.logo-big{width:220px}
@media (min-width:900px){
  .hero{padding-block:var(--s8) var(--s9)}
  .hero-in{grid-template-columns:1.1fr .9fr;gap:var(--s8)}
  .hero-art{order:0;justify-content:center}
  .logo-big{width:min(100%,440px)}
}
.kicker{font-weight:900;color:var(--blue-deep);letter-spacing:.12em;text-transform:uppercase;font-size:var(--fs-label);margin-bottom:var(--s3)}
.tl-title{font-size:clamp(2.9rem,10vw,5.75rem);line-height:.98;letter-spacing:.02em;margin:0 0 var(--s4)}
.tl-line{display:block;white-space:nowrap}
.tl-line .sp{display:inline-block;width:.3em}
.baseline{font-family:Caveat,cursive;font-weight:700;font-size:clamp(1.75rem,4.4vw,2.35rem);line-height:1.15;color:var(--blue-deep);margin-bottom:var(--s5);max-width:17em}
.call{font-size:var(--fs-small);color:var(--ink-soft);margin-top:var(--s4)}
.call a{font-weight:900;color:var(--ink);white-space:nowrap}
.poles{list-style:none;display:grid;gap:var(--s4)}
@media (min-width:640px){.poles{grid-template-columns:1fr 1fr;gap:var(--s5)}}
@media (min-width:1040px){.poles{grid-template-columns:repeat(3,1fr)}}
.pole{display:grid;grid-template-columns:112px 1fr;gap:var(--s4);align-items:center;height:100%;background:var(--paper);border:1px solid #e6d6ad;border-radius:var(--r-l);padding:var(--s3);text-decoration:none;box-shadow:var(--shadow)}
.pole .art-card{aspect-ratio:1/1;border-radius:var(--r-m)}
@media (min-width:640px){.pole{grid-template-columns:1fr;align-content:start;padding:var(--s3) var(--s3) var(--s5)}.pole .art-card{aspect-ratio:4/3}.pole-text{padding-inline:var(--s3)}}
.pole:hover{border-color:var(--line-2);color:var(--ink)}
.pole:hover .pole-t{color:var(--rust);text-decoration:underline}
.pole-text{display:grid;gap:var(--s1)}
.pole-t{font-weight:900;font-size:1.25rem;line-height:1.25}
.pole-d{color:var(--ink-soft);font-size:var(--fs-small);line-height:1.5}
.pull{margin:0 0 var(--s5);font-size:clamp(1.375rem,1.1rem + 1vw,1.875rem);font-weight:900;line-height:1.3;color:var(--rust);border-left:4px solid var(--ochre);padding-left:var(--s5);max-width:22em}
.rdv-card{display:grid;gap:var(--s5);align-items:center}
@media (min-width:860px){.rdv-card{grid-template-columns:1fr auto;gap:var(--s7);padding:var(--s7)}}
.rdv-card h2{margin-bottom:var(--s5)}
.rdv-card-act{display:grid;gap:0;justify-items:start}
.rdv-card-act .call{margin-top:var(--s3)}
.dispo{border-left:4px solid var(--red);padding:var(--s1) 0 var(--s1) var(--s4)}
.dispo-label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);font-weight:900;text-transform:uppercase;letter-spacing:.1em;font-size:var(--fs-label);color:var(--ink-soft);margin-bottom:var(--s2)}
.dispo-text{font-size:clamp(1.25rem,1.1rem + .6vw,1.5rem);font-weight:900;line-height:1.3;margin:0}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s5) 0 0}
.chips li{display:flex;align-items:center;gap:var(--s2);background:rgba(255,248,229,.1);border:1px solid rgba(255,248,229,.35);border-radius:999px;padding:var(--s1) var(--s4) var(--s1) var(--s1);font-weight:700;font-size:var(--fs-small)}
.chips .tl-ico{width:34px;height:34px;background:var(--cream);border-radius:50%;padding:3px}

/* ---------- suite de la visite ---------- */
.pager{display:grid;gap:var(--s4);padding-bottom:var(--sec)}
.band+.pager{padding-top:var(--s8)}
@media (min-width:760px){.pager{grid-template-columns:1fr 1.4fr;align-items:stretch}}
.pager a{display:flex;align-items:center;gap:var(--s5);text-decoration:none;border-radius:var(--r-l);border:1px solid var(--line);background:var(--paper);padding:var(--s4) var(--s5);box-shadow:var(--shadow)}
.pager a:hover{border-color:var(--line-2);color:var(--ink)}
.pager a:hover .pager-t{color:var(--rust);text-decoration:underline}
.pager-prev{flex-direction:column;align-items:flex-start!important;justify-content:center}
.pager-prev .pager-k::before{content:"← "}
.pager-next .pager-k::after{content:" →"}
.pager-art{position:relative;flex:0 0 132px;aspect-ratio:6/5;background:var(--sand);border-radius:var(--r-m);overflow:hidden}
.pager-art svg{position:absolute;inset:0;width:100%;height:100%}
.pager-k{display:block;font-size:var(--fs-label);font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.pager-t{display:block;font-weight:900;font-size:1.375rem;line-height:1.2;margin-top:var(--s1)}
@media (max-width:759px){.pager-art{flex-basis:96px}.pager-t{font-size:1.25rem}}

/* ---------- qui suis-je ---------- */
.story-row{display:grid;gap:var(--s4);padding-block:var(--s6);border-top:1px solid var(--line)}
.story-row:first-child{border-top:0;padding-top:0}
.story-side{display:flex;align-items:center;gap:var(--s4)}
.story-side h2{margin:0;font-size:clamp(1.5rem,1.3rem + .6vw,1.75rem);color:var(--rust)}
.story-body p{font-size:var(--fs-lead);line-height:1.7}
.story-body .pull{margin:var(--s5) 0 0}
@media (min-width:900px){.story-row{grid-template-columns:300px minmax(0,1fr);gap:var(--s8);padding-block:var(--s7)}.story-side{flex-direction:column;align-items:flex-start}}

/* ---------- le nid ---------- */
.toys{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3);margin-bottom:var(--s2)}
@media (min-width:480px){.toys{grid-template-columns:repeat(3,1fr)}}
.toys li{display:grid;justify-items:center;gap:var(--s2);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-m);padding:var(--s4) var(--s2);text-align:center;font-weight:700;font-size:var(--fs-small);line-height:1.3}
.toys .tl-ico{border:0;background:none;padding:0;width:48px;height:48px}
.features{list-style:none;display:grid;gap:var(--s4)}
@media (min-width:760px){.features{grid-template-columns:repeat(3,1fr);gap:var(--s5)}}
.features li{display:flex;align-items:center;gap:var(--s4);background:var(--paper);border:1px solid #e6d6ad;border-radius:var(--r-l);padding:var(--s5);font-weight:900;font-size:1.125rem;line-height:1.3;box-shadow:var(--shadow)}
.features .tl-ico{width:56px;height:56px}
.supplier{display:inline-flex;align-items:baseline;gap:var(--s3);margin-top:var(--s6);font-weight:900;font-size:1.5rem}
.supplier span{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft)}

/* ---------- séparation ---------- */
.steps{list-style:none;display:grid;gap:0;counter-reset:st}
.steps li{position:relative;display:grid;grid-template-columns:44px 52px 1fr;gap:var(--s4);align-items:start;padding-bottom:var(--s6)}
.steps li:last-child{padding-bottom:0}
.steps li::before{content:"";position:absolute;left:21px;top:44px;bottom:0;width:2px;background:var(--line-2)}
.steps li:last-child::before{display:none}
.step-n{width:44px;height:44px;border-radius:50%;background:var(--rust);color:#fff;display:grid;place-items:center;font-weight:900;font-size:1.125rem}
.steps .tl-ico{width:52px;height:52px;background:var(--cream);border:1px solid #e6d6ad;border-radius:var(--r-s);padding:6px}
.steps h3{margin:var(--s2) 0 var(--s1)}
.steps p{color:var(--ink-soft);margin:0}
.yesno{display:grid;gap:var(--s5)}
@media (min-width:860px){.yesno{grid-template-columns:1fr 1fr}}
.yesno h3{display:flex;align-items:center;gap:var(--s3);font-size:1.375rem;padding-bottom:var(--s4);margin-bottom:0;border-bottom:3px solid var(--blue)}
.yesno .no h3{border-color:var(--red)}
.yesno h3 .tl-ico{width:44px;height:44px}
.yesno ul{list-style:none}
.yesno li{position:relative;padding:var(--s3) 0 var(--s3) var(--s5);border-bottom:1px solid var(--line)}
.yesno li:last-child{border-bottom:0;padding-bottom:0}
.yesno li::before{content:"";position:absolute;left:2px;top:calc(var(--s3) + .6em);width:10px;height:10px;border-radius:50%;background:var(--blue)}
.yesno .no li::before{background:var(--red)}

/* ---------- valise ---------- */
.packs{display:grid;gap:var(--s5)}
@media (min-width:760px){.packs{grid-template-columns:1fr 1fr}}
.pack{display:grid;grid-template-columns:64px 1fr;column-gap:var(--s4);align-items:center;align-content:start}
.pack h3{margin:0;font-size:1.375rem}
.pack .ilist{grid-column:1/-1}

/* ---------- repas (aperçu) ---------- */
.day-menu{display:grid;gap:var(--s5);max-width:880px}
.day-chip span{display:inline-block;background:var(--ink);color:#fff;font-weight:900;border-radius:999px;padding:var(--s1) var(--s4)}
.dm-cols{display:grid;gap:var(--s4)}
@media (min-width:640px){.dm-cols{grid-template-columns:1.4fr 1fr;gap:var(--s6)}}
.dm-lunch{font-weight:700;font-size:1.25rem;line-height:1.35}
.dm-rec{border-top:1px solid var(--line);padding-top:var(--s4)}
.dm-rec ol,.recipe ol{padding-left:1.3em;display:grid;gap:var(--s2)}
.locked-days{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);margin-top:var(--s5)}
.locked-days li{display:inline-flex;align-items:center;gap:var(--s2);background:var(--paper);border:1px dashed var(--line-2);border-radius:999px;padding:var(--s1) var(--s4) var(--s1) var(--s1);font-weight:700;color:var(--ink-soft);font-size:var(--fs-small)}
.locked-days .tl-ico{width:34px;height:34px}
.locked-days .ld-note{border:0;background:none;padding:0;font-weight:400}

/* ---------- formulaires ---------- */
.form h2{font-size:1.5rem;margin-bottom:var(--s5)}
.narrow-form{max-width:560px;margin-inline:auto}
form label{display:block;font-weight:700;font-size:var(--fs-small);margin-bottom:var(--s4)}
input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;margin-top:var(--s2);font:400 var(--fs-body)/1.4 Nunito,sans-serif;color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:var(--r-s);padding:var(--s3) var(--s4);min-height:52px}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(77,100,128,.35);border-color:var(--blue-deep)}
[aria-invalid=true]{border-color:var(--red)!important;background:#fff4f1!important}
fieldset{border:0;padding:0;margin:0 0 var(--s5);min-width:0}
legend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);font-weight:900;font-size:1.125rem;margin-bottom:var(--s3);padding:0}
.leg-n{width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;display:inline-grid;place-items:center;font-size:var(--fs-small)}
.feedback{margin-top:var(--s4);border-radius:var(--r-s)}
.feedback:empty{display:none}
.feedback.ok{background:#e8efe4;border:1px solid #b8cdb0;padding:var(--s3) var(--s4)}
.feedback.err{background:#fff0ec;border:1px solid #f1bfb2;padding:var(--s3) var(--s4)}
.feedback p{margin:0}.feedback p+p{margin-top:var(--s1)}
.feedback:focus{outline:none}
.form .fine{margin-top:var(--s3)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.grid-form{display:grid;gap:0 var(--s5)}
@media (min-width:760px){.grid-form{grid-template-columns:1fr 1fr}.grid-form .full{grid-column:1/-1}}

/* ---------- rendez-vous ---------- */
.rdv-side{display:grid;gap:var(--s6);align-content:start}
.dispo-card{display:grid;grid-template-columns:64px 1fr;gap:var(--s4);align-items:center}
.dispo-card .dispo-text{font-size:1.375rem}
.how{list-style:none;display:grid;gap:var(--s4)}
.how li{display:grid;grid-template-columns:44px 1fr;gap:var(--s4);align-items:start}
.how-t{font-weight:900;margin-bottom:var(--s1)}
.how li p:last-child{color:var(--ink-soft);font-size:var(--fs-small)}
.call-card{display:flex;align-items:center;gap:var(--s4);margin:0;font-weight:700}
.call-card a{font-weight:900;white-space:nowrap}
@media (min-width:900px){.rdv-side{position:sticky;top:calc(var(--header-h) + var(--s6))}}
.slots{display:grid;border-top:1px solid var(--line);margin-bottom:var(--s3)}
.slot-day{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2) var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--line)}
.slot-date{font-weight:900;margin:0}
.slot-row{display:flex;flex-wrap:wrap;gap:var(--s2)}
.slot{margin:0!important;position:relative}
.slot input{position:absolute;opacity:0;inset:0;cursor:pointer}
.slot span{display:inline-flex;align-items:center;min-height:44px;padding:var(--s2) var(--s4);border:2px solid var(--line-2);border-radius:999px;background:#fff;font-weight:700}
.slot input:checked+span{background:var(--blue-deep);border-color:var(--blue-deep);color:#fff}
.slot input:focus-visible+span{outline:3px solid var(--blue-deep);outline-offset:2px}

/* ---------- espace parents ---------- */
.pnav{background:var(--paper);border-bottom:1px solid var(--line)}
.pnav-in{display:flex;flex-direction:column;align-items:stretch;gap:var(--s1);padding-block:var(--s2) var(--s1)}
.pnav-side{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
.pnav-links{list-style:none;display:flex;gap:var(--s1);overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--gutter) * -1);padding:var(--s1) var(--gutter) var(--s2);scroll-snap-type:x proximity}
.pnav-links::-webkit-scrollbar{display:none}
.pnav-links a{display:flex;align-items:center;gap:var(--s2);white-space:nowrap;text-decoration:none;font-weight:700;font-size:var(--fs-small);padding:var(--s1) var(--s3) var(--s1) var(--s1);border-radius:999px;min-height:44px;scroll-snap-align:start;border:1px solid transparent}
.pnav-links .tl-ico{width:34px;height:34px;background:var(--cream);border:1px solid var(--line);border-radius:50%;padding:3px}
.pnav-links a:hover{background:var(--sand);color:var(--ink)}
.pnav-links a[aria-current=page]{background:var(--sand);color:var(--rust);border-color:#e6d6ad}
.pnav-links a[aria-current=page] .tl-ico{border-color:var(--ochre)}
.pnav-links a.locked{color:#665f53}
.pnav-links a.locked .tl-ico{opacity:.45}
.pnav-links a.locked span::after{content:" · fermé";font-weight:400}
.pnav-k{font-size:var(--fs-label);font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);display:flex;align-items:center;gap:var(--s3)}
.pass-chip{display:inline-flex;align-items:center;min-height:32px;font-size:.875rem;font-weight:900;letter-spacing:0;text-transform:none;background:var(--blue-deep);color:#fff;border-radius:999px;padding:var(--s1) var(--s3)}
.pass-cards{display:grid;gap:var(--s5)}
.pass-card{display:grid;grid-template-columns:64px 1fr;column-gap:var(--s4);align-items:center}
.pass-card h3{margin:0;font-size:1.375rem}
.pass-card.red h3{color:var(--rust)}.pass-card.blue h3{color:var(--blue-deep)}
.pass-card>p{grid-column:1/-1;margin:var(--s3) 0 0;color:var(--ink-soft)}
.pass-card .ilist{grid-column:1/-1;margin-top:var(--s4);gap:var(--s2)}
.pass-card .ilist li.off{color:var(--ink-soft)}
.pass-card .ilist li.off .tl-ico{background:transparent;border-style:dashed}
.pass-card em{font-style:normal;font-size:var(--fs-small)}
.demo-codes{margin-top:var(--s5);padding-top:var(--s5);border-top:1px dashed var(--line-2)}
.demo-codes ul{list-style:none;display:grid;gap:var(--s2)}
.demo-codes li{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);align-items:center;font-size:var(--fs-small)}
.dash{list-style:none;display:grid;gap:var(--s4)}
@media (min-width:700px){.dash{grid-template-columns:1fr 1fr;gap:var(--s5)}}
@media (min-width:1080px){.dash{grid-template-columns:repeat(3,1fr)}}
.dash>li>*{display:grid;grid-template-columns:56px 1fr;gap:var(--s1) var(--s4);align-content:start;height:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-l);padding:var(--s5);text-decoration:none;box-shadow:var(--shadow)}
.dash a:hover{border-color:var(--line-2);color:var(--ink)}
.dash a:hover .dash-t{color:var(--rust);text-decoration:underline}
.dash .tl-ico{width:56px;height:56px;grid-row:span 3;background:var(--cream);border:1px solid var(--line);border-radius:var(--r-m);padding:6px}
.dash-t{font-weight:900;font-size:1.25rem;margin:0}
.dash-d{margin:0;color:var(--ink-soft);font-size:var(--fs-small);line-height:1.5}
.dash-go{margin:var(--s2) 0 0;font-weight:900;color:var(--rust);font-size:var(--fs-small)}
.dash .dash-off{background:transparent;box-shadow:none;border-style:dashed;border-color:var(--line-2)}
.dash .dash-off .dash-go{color:var(--ink-soft)}
.dash .dash-pass{background:var(--sand);border-color:#e6d6ad;box-shadow:none}
.gate{display:grid;gap:var(--s5);align-items:center}
@media (min-width:760px){.gate{grid-template-columns:300px 1fr;gap:var(--s7);padding:var(--s7)}}
.gate h2{margin-bottom:var(--s3)}
.gate-k{font-weight:900;margin-top:var(--s5)}
.gate .opens{margin-top:var(--s3)}
.gate .opens a{font-weight:700}

/* ---------- journal ---------- */
.day-sheet{display:grid;gap:var(--s5)}
@media (min-width:900px){.day-sheet{grid-template-columns:1.25fr 1fr;gap:var(--s7);align-items:start}}
.jcard{display:grid;gap:var(--s5)}
.jcard .hand{margin-bottom:var(--s2)}
.j-text{font-size:1.1875rem;line-height:1.6}
.jcard .ilist{margin:0;padding-top:var(--s5);border-top:1px solid var(--line)}
.facts{margin:0;display:grid;gap:var(--s4);padding-top:var(--s5);border-top:1px solid var(--line)}
@media (min-width:600px){.facts{grid-template-columns:1fr 1fr}}
.facts>div{display:grid;grid-template-columns:44px 1fr;gap:0 var(--s4);align-items:start}
.facts .tl-ico{grid-row:span 2;background:var(--cream);border:1px solid var(--line);border-radius:var(--r-s);padding:6px}
.facts dt{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:var(--ink-soft)}
.facts dd{margin:0}
.photo-day{margin:0}
.photo-day .frame{overflow:hidden;background:#fff;padding:var(--s3) var(--s3) var(--s4);border-radius:var(--r-m);border:1px solid var(--line);box-shadow:var(--shadow);transform:rotate(1deg)}
.photo-day .frame svg{border-radius:var(--r-s);background:#fff3dc;width:100%;height:auto;overflow:hidden}
.photo-day figcaption{font:700 1.375rem/1.2 Caveat,cursive;color:var(--blue-deep);margin-top:var(--s3);text-align:center}
.week{list-style:none;display:grid;gap:var(--s4)}
@media (min-width:860px){.week{grid-template-columns:1fr 1fr;gap:var(--s5)}}
.week>li:not(.week-empty){display:grid;grid-template-columns:44px 1fr;gap:var(--s1) var(--s4);align-content:start;background:var(--paper);border:1px solid #e6d6ad;border-radius:var(--r-l);padding:var(--s5);box-shadow:var(--shadow)}
.week .tl-ico{grid-row:span 2;background:var(--cream);border:1px solid var(--line);border-radius:var(--r-s);padding:6px}
.week-day{font-weight:900;margin:0}
.week-body p{margin-bottom:var(--s2)}
.week-meta{font-size:var(--fs-small);color:var(--ink-soft)}
.week-empty{color:var(--ink-soft)}

/* ---------- repas de la semaine ---------- */
.menu{list-style:none;display:grid;gap:var(--s4)}
.menu-day{display:grid;gap:var(--s4)}
@media (min-width:760px){.menu-day{grid-template-columns:120px 1fr;gap:var(--s6)}}
.md-date{display:flex;align-items:baseline;gap:var(--s2)}
@media (min-width:760px){.md-date{flex-direction:column;align-items:flex-start;gap:0;border-right:1px solid var(--line)}}
.md-dname{font-weight:900;font-size:1.25rem;margin:0}
.md-dnum{font-weight:900;font-size:1.25rem;color:var(--rust);margin:0}
@media (min-width:760px){.md-dnum{font-size:2.25rem;line-height:1.1}}
.md-body .dm-cols{margin-bottom:0}
.recipe{grid-column:1/-1;border-top:1px solid var(--line);padding-top:var(--s2)}
@media (min-width:760px){.recipe{grid-column:2}}
.recipe summary{cursor:pointer;font-weight:900;color:var(--rust);min-height:44px;display:flex;align-items:center;list-style:none}
.recipe summary::-webkit-details-marker{display:none}
.recipe summary::before{content:"+";display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--sand);margin-right:var(--s3);font-weight:900}
.recipe[open] summary::before{content:"–"}
.recipe ol{margin:var(--s2) 0 var(--s3)}

/* ---------- sorties ---------- */
.outings{list-style:none;display:grid;gap:var(--s5)}
.outing{display:grid;gap:var(--s5);align-items:center}
@media (min-width:860px){.outing{grid-template-columns:1fr 1fr;gap:var(--s7)}}
.outing .photo video{border-radius:var(--r-m)}
.outing-art{position:relative;aspect-ratio:3/2;background:var(--sand);border-radius:var(--r-m);overflow:hidden}
.outing-art svg{position:absolute;inset:0;width:100%;height:100%}
.outing-date{font-weight:900;color:var(--rust);font-size:var(--fs-small);margin-bottom:var(--s1)}
.outing h3{font-size:1.5rem;margin-bottom:var(--s3)}

/* ---------- références ---------- */
.reviews{display:grid;gap:var(--s4)}
.review{margin:0;display:grid;grid-template-columns:44px 1fr;gap:var(--s2) var(--s4);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-l);padding:var(--s5);box-shadow:var(--shadow)}
.review .tl-ico{grid-row:span 2}
.review blockquote{margin:0;font-size:1.1875rem;line-height:1.55}
.review figcaption{font-family:Caveat,cursive;font-weight:700;font-size:1.5rem;color:var(--blue-deep)}
.group-note .note{margin:0}

/* ---------- mentions ---------- */
.legal{display:grid;gap:var(--s5)}
@media (min-width:900px){.legal{grid-template-columns:1fr 1fr}}
.legal-item h2{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);font-size:1.375rem}
.legal-item h2 .tl-ico{background:var(--cream);border:1px solid var(--line);border-radius:var(--r-s);padding:6px}
.blank{display:grid;gap:var(--s3);padding:var(--s4) var(--s5);background:var(--cream);border:1px dashed var(--line-2);border-radius:var(--r-m)}
.blank-line{display:block;height:12px;border-radius:6px;background:#e5dcc6}
.blank-line:nth-child(2){width:80%}.blank-line:nth-child(3){width:55%}
.blank-label{margin:var(--s1) 0 0;font-size:var(--fs-small);color:var(--ink-soft)}

/* ---------- gestion ---------- */
.admin-grid{display:grid;gap:var(--s5);grid-template-columns:minmax(0,1fr)}
.admin-grid>*,.g-sec,.day-edit,.day-edit summary{min-width:0}
@media (min-width:1000px){.admin-grid{grid-template-columns:250px minmax(0,1fr);gap:var(--s6);align-items:start}}
.admin-nav{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-l);padding:var(--s3);box-shadow:var(--shadow)}
.admin-nav ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:var(--s1)}
.admin-nav a{display:flex;align-items:center;gap:var(--s2);min-height:48px;padding:var(--s1) var(--s2);border-radius:var(--r-s);text-decoration:none;font-weight:700;font-size:var(--fs-small)}
.admin-nav a:hover{background:var(--sand);color:var(--ink)}
.admin-nav .tl-ico{width:36px;height:36px;background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:4px}
.admin-nav .btn{width:100%;margin-top:var(--s3)}
@media (min-width:1000px){.admin-nav{position:sticky;top:calc(var(--header-h) + var(--s5))}.admin-nav ul{grid-template-columns:1fr}}
.admin-main{display:grid;gap:var(--s5);min-width:0}
.g-sec{scroll-margin-top:calc(var(--header-h) + var(--s5))}
.g-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2) var(--s4);margin-bottom:var(--s5);padding-bottom:var(--s4);border-bottom:1px solid var(--line)}
.g-head h2{margin:0;font-size:1.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3)}
.g-head .tile{width:48px;height:48px;background:var(--cream)}
.g-link{font-weight:700;font-size:var(--fs-small)}
.g-cols{display:grid;gap:var(--s5)}
.g-cols>*{min-width:0}
@media (min-width:900px){.g-cols{grid-template-columns:1fr 1fr;align-items:start}}
.subform{background:var(--cream);border:1px solid var(--line);border-radius:var(--r-m);padding:var(--s5);margin:0}
fieldset.subform legend{float:left;width:100%}
.subform .fine{clear:both}
.records{list-style:none}
.records li{padding:var(--s4) 0;border-bottom:1px solid var(--line)}
.records li:last-child{border-bottom:0}
.records li p{margin:var(--s1) 0}
.records li.empty{color:var(--ink-soft)}
.slots-grid{display:grid;column-gap:var(--s6)}
@media (min-width:1100px){.slots-grid{grid-template-columns:1fr 1fr}.slots-grid li:nth-last-child(2):nth-child(odd){border-bottom:0}}
.slots-grid li{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);align-items:center;padding:var(--s2) 0}
.slot-lbl{flex:1 1 180px}
.rec-head{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);align-items:center}
.rec-actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.status{font-size:.875rem;font-weight:900;border-radius:999px;padding:var(--s1) var(--s3)}
.status.ok{background:#e1ecdc;color:#2c5935}.status.wait{background:#fbe6b5;color:#5e420c}
.records code{font:700 var(--fs-small) ui-monospace,Menlo,monospace;background:var(--sand);padding:3px 8px;border-radius:6px}
.day-edit{border-bottom:1px solid var(--line)}
.day-edit summary{cursor:pointer;min-height:56px;display:flex;align-items:center;gap:var(--s3);list-style:none;padding-block:var(--s2)}
.day-edit summary::-webkit-details-marker{display:none}
.day-edit summary::before{content:"+";flex:0 0 28px;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--sand);font-weight:900}
.day-edit[open] summary::before{content:"–"}
.de-day{font-weight:900;flex:0 0 100px}
.de-sum{color:var(--ink-soft);font-size:var(--fs-small);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.de-body{padding:var(--s2) 0 var(--s4) 40px}
#g-menu-form>.btn{margin-top:var(--s5)}
.present{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5)}
.check{display:flex!important;align-items:center;gap:var(--s2);margin:0!important;min-height:44px}
.check input{width:22px;height:22px;accent-color:var(--rust)}
.media-preview img,.media-preview video{max-width:320px;width:100%;border-radius:var(--r-s)}
.file-field{margin-bottom:var(--s4)}.file-title{font-weight:700;margin-bottom:var(--s2);font-size:var(--fs-small)}
.file-btn{margin:0!important;cursor:pointer}
#g-media:focus-visible+.file-btn{outline:3px solid var(--blue-deep);outline-offset:3px}
.g-reset{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3)}
#g-reset-status:empty{display:none}
.g-sec .sub{margin-top:var(--s5)}

/* ---------- pied de page ---------- */
.site-footer{background:var(--ink);color:#f3ead3;padding:var(--s8) 0 var(--s6)}
.site-footer a{color:#fff}
.foot-in{display:grid;gap:var(--s6)}
@media (min-width:700px){.foot-in{grid-template-columns:1fr 1fr}}
@media (min-width:1080px){.foot-in{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:var(--s7)}}
.foot-brand{display:flex;gap:var(--s4);align-items:flex-start}
.foot-brand img{width:88px;height:88px;object-fit:cover;background:var(--cream);border-radius:50%;flex-shrink:0}
.foot-name{font-weight:900;font-size:1.375rem;margin:0}
.site-footer .hand{color:#ffd88a;margin:0 0 var(--s2)}
.foot-base{font-size:var(--fs-small);color:#d7dee6;margin:0;max-width:18em}
.foot-title{font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:var(--fs-label);color:#c9d3dd;margin-bottom:var(--s3)}
.foot-list{list-style:none;display:grid;gap:var(--s2);font-size:var(--fs-small)}
.foot-list a{text-decoration-color:rgba(255,255,255,.45)}
.foot-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3) var(--s5);margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid rgba(255,255,255,.18);font-size:var(--fs-small);color:#c9d3dd}
.foot-bottom p{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}
.preview-badge{display:inline-block;background:var(--ochre);color:var(--ink);font-weight:900;font-size:.875rem;border-radius:999px;padding:3px 10px}

@media print{.site-header,.site-footer,.pager,.pnav{display:none!important}body{background:#fff}}

/* ---------- le macareux bouge, doucement ---------- */
@media (prefers-reduced-motion:no-preference){
  .tl-blink{transform-box:fill-box;transform-origin:center;animation:tl-blink 7s ease-in-out infinite}
  .tl-breathe{transform-box:fill-box;transform-origin:50% 90%;animation:tl-breathe 5s ease-in-out infinite}
  .tl-z{opacity:0;animation:tl-z 5s ease-in-out infinite}
  .tl-z2{animation-delay:.8s}.tl-z3{animation-delay:1.6s}
  .tl-wave{animation:tl-wave 1.3s ease-in-out 2}
  .puffin:hover .tl-wave{animation:tl-wave 1.3s ease-in-out 1}
  .puffin:hover .tl-wing:not(.tl-wave):not(.tl-spoon){animation:tl-flap .9s ease-in-out 1}
  .tl-spoon{animation:tl-spoon 3.6s ease-in-out infinite}
  .tl-float{transform-box:fill-box;transform-origin:center;animation:tl-float 6s ease-in-out infinite}
  .tl-d2{animation-delay:-2s}.tl-d3{animation-delay:-4s}
  .tl-steam{animation:tl-steam 4s ease-in-out infinite}
}
@keyframes tl-blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.12)}}
@keyframes tl-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.025)}}
@keyframes tl-z{0%{opacity:0;transform:translate(0,6px)}25%,70%{opacity:1}100%{opacity:0;transform:translate(6px,-10px)}}
@keyframes tl-wave{0%,100%{transform:rotate(0)}30%{transform:rotate(-18deg)}65%{transform:rotate(10deg)}}
@keyframes tl-flap{0%,100%{transform:rotate(0)}40%{transform:rotate(-14deg)}}
@keyframes tl-spoon{0%,55%,100%{transform:rotate(0)}70%{transform:rotate(-7deg)}85%{transform:rotate(3deg)}}
@keyframes tl-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes tl-steam{0%,100%{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.stamp-pub{display:block;font-size:var(--fs-small);font-weight:700;color:var(--ink-soft);letter-spacing:0;margin-top:var(--s2)}
.phead+.sec:not(.band),.phead+.gate-anon+.gate-refused+.private>.sec:first-child{padding-top:0}
.play-poster{position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;border-radius:var(--r-m);overflow:hidden}
.play-poster img{border-radius:var(--r-m)}
.play-ico{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:rgba(255,253,246,.94);box-shadow:var(--shadow);display:grid;place-items:center}
.play-ico::before{content:"";margin-left:6px;border-style:solid;border-width:14px 0 14px 22px;border-color:transparent transparent transparent var(--rust)}
.play-poster:hover .play-ico{background:#fff}
.play-label{position:absolute;left:var(--s3);bottom:var(--s3);background:rgba(39,56,74,.88);color:#fff;font-weight:900;font-size:var(--fs-small);border-radius:999px;padding:var(--s1) var(--s3)}
.outing .photo video{aspect-ratio:3/2;object-fit:cover;width:100%;border-radius:var(--r-m)}
.foot-links{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5)}
.day-side{display:grid;gap:var(--s3);align-content:start}
.day-side .locked-days{flex-direction:column;align-items:stretch;margin:0}
.day-side .locked-days li{border-radius:var(--r-m);padding:var(--s2) var(--s4) var(--s2) var(--s2)}
.steps-art{margin-top:var(--s6);max-width:420px}
@media (max-width:899px){.steps-art{display:none}}
.sorties-tip{margin-top:var(--s6)}
/* V7 : finitions téléphone */
.pass-chip{white-space:nowrap}
@media (max-width:759px){
  .pnav-lbl{display:none}
  .foot-in{grid-template-columns:1fr 1fr;column-gap:var(--s5)}
  .foot-brand,.foot-in>div:last-child{grid-column:1/-1}
  .row2{grid-template-columns:1fr}
}
@media (max-width:479px){.dispo-card{grid-template-columns:1fr}}
.g-head h2{display:grid;grid-template-columns:48px 1fr;column-gap:var(--s3);align-items:center}
.g-head h2 .ex{grid-column:2;justify-self:start;margin-top:var(--s1)}
.rules-h{display:grid;grid-template-columns:44px 1fr;column-gap:var(--s3);align-items:center}
.rules-h .ex{grid-column:2;justify-self:start}
@media (min-width:760px){.rules-h{display:flex}}
@media (min-width:900px){.day-split{grid-template-columns:1.4fr 1fr}}
.legal-item h2{display:grid;grid-template-columns:44px 1fr;column-gap:var(--s3);align-items:center}
.legal-item h2 .ex{grid-column:2;justify-self:start;margin-top:var(--s1)}

/* V8 reconstituée : ligne « À compléter » (CSS d'origine perdu, refait d'après le PDF envoyé) */
.todo{margin:0;padding:var(--s3) var(--s4);background:var(--paper);border:1px dashed var(--line-2);border-radius:var(--r-s);color:var(--ink-soft);font-size:var(--fs-small)}
.todo-stack{display:grid;gap:var(--s7)}
.todo-stack h2{margin-bottom:var(--s4)}
.split-text .todo{margin-top:var(--s2)}
/* 09/10/2026 : dans les petits formulaires de la gestion, un champ de date ou d’heure ne dépasse plus de sa colonne */
.row2>label,.row2 input{min-width:0}

/* ---------- espace parents réel (09/10/2026) : photos servies par le serveur, rappels et listes de la gestion ---------- */
.photo-day .frame img{display:block;width:100%;height:auto;border-radius:var(--r-s);background:#fff3dc}
.photo-day .frame+.frame{margin-top:var(--s5)}
.week-photos{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2)}
.week-photos img{width:96px;height:72px;object-fit:cover;border-radius:var(--r-s);background:var(--sand)}
.outing .photo .shared-media+.shared-media{margin-top:var(--s3)}
.media-preview{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:flex-start}
.media-preview img,.media-preview video{max-width:200px}
.media-preview p{flex-basis:100%;margin:0}
.rappel{margin:0 0 var(--s4);padding:var(--s3) var(--s4);background:#fbe6b5;border:1px solid #e9c97a;border-radius:var(--r-s);font-size:var(--fs-small);color:#5e420c}
.progres:empty{display:none}
#g-j-photos:focus-visible+.file-btn{outline:3px solid var(--blue-deep);outline-offset:3px}
.file-btn.is-disabled{opacity:.5;cursor:not-allowed}
.rec-actions.confirm{align-items:center}
.rec-actions.confirm .fine{flex-basis:100%;margin:0}
.records .feedback{margin-top:var(--s3)}

/* 11/10/2026 : ses textes (qui suis-je, le nid, la séparation, la valise, les repas), demandes de rendez-vous */
.phead-p{color:var(--ink-soft);max-width:var(--measure);font-size:var(--fs-lead);line-height:1.55;margin-top:var(--s4)}
.phead .phead-p+.anchors,.phead .lead+.anchors{margin-top:var(--s5)}
.ilist.facon li,.ilist.provenances li{align-items:start}
.ilist.facon b,.ilist.provenances b{color:var(--rust)}
.story-body .ilist.facon{margin-top:0}
.story-body .ilist.facon span{font-size:var(--fs-lead);line-height:1.6}
.nid-duo{display:grid;gap:var(--s6)}
@media (min-width:900px){.nid-duo{grid-template-columns:1fr 1fr}}
.nid-duo h2,.split-text h2+p{margin-bottom:var(--s3)}
.split-text p+h2{margin-top:var(--s6)}
.sep-texte p{max-width:var(--measure);font-size:var(--fs-lead);line-height:1.65;margin-bottom:var(--s4)}
.valise{display:grid;gap:var(--s6);margin-top:var(--s6)}
@media (min-width:900px){.valise{grid-template-columns:1fr 1fr}}
.valise-groupe h2{font-size:clamp(1.3rem,1.15rem + .5vw,1.55rem);color:var(--rust);margin-bottom:0}
.valise-groupe .ilist{margin-top:var(--s4)}
.valise-intro{margin-bottom:0}
.valise-fourni{margin-top:var(--s7)}
.slogan{font-size:2.1rem;text-align:center;margin:0}
.gouter-note{margin-top:var(--s3)}
.slots.mercredis{display:flex;flex-wrap:wrap;gap:var(--s2);border-top:0;padding-top:var(--s2)}
.row-form{display:flex;flex-wrap:wrap;align-items:end;gap:var(--s2) var(--s3);margin:0;width:100%}
.row-form label{margin:0;font-size:var(--fs-small)}
.row-form input,.row-form select{min-width:0}
.row-form .feedback{flex-basis:100%}

/* ===== Accueil avec le motif de la cliente : options 1A à 1D et ruban (questionnaire du 11/10/2026, _outils/choix.json) ===== */
.mot{background:#1d1820 url(assets/motif.jpg) 0 0/268px 172px repeat}
.ruban-motif{height:14px;border-bottom:3px solid #e3a93d}
.hero.h3{padding:0;position:relative;overflow:hidden}
.hero.h3 .hero-in{display:block}
.h3.full{padding:var(--s5) 0 var(--s6)}
.full .card3{position:relative;background:var(--cream);border-radius:28px;box-shadow:0 0 0 6px rgba(255,248,229,.55),0 30px 60px -30px rgba(0,0,0,.6);padding:var(--s5);display:grid;gap:var(--s4)}
.full .card3 .lg{width:150px;margin:0 auto}
.full .card3 .lg img{width:100%;height:auto}
.side .art3{position:relative;height:150px}
.side .art3 .mot{position:absolute;inset:0}
.side .circ{position:absolute;left:50%;bottom:-74px;transform:translateX(-50%);width:180px;height:180px;border-radius:50%;background:var(--cream);box-shadow:0 0 0 7px var(--cream),0 16px 34px -16px rgba(0,0,0,.55);display:grid;place-items:center}
.side .circ img{width:88%;height:auto}
.side .hero-text{padding:100px 0 var(--s8)}
.ribbon .hero-text{padding:var(--s6) 0 var(--s7);text-align:center;margin:0 auto}
.ribbon .rb{height:110px;border-top:5px solid #e3a93d;border-bottom:5px solid #e3a93d;box-shadow:inset 0 3px 0 #fffaf0,inset 0 -3px 0 #fffaf0}
.ribbon .tl-title,.arch .tl-title{font-size:clamp(2.8rem,12vw,4.4rem)}
.ribbon .actions{justify-content:center}
.ribbon .baseline,.ribbon .lead{margin-inline:auto}
.ribbon .tl-line{justify-content:center}
.arch .in3{display:grid;gap:var(--s5);padding:var(--s5) 0 var(--s8)}
.arch .win{height:200px;border-radius:200px 200px 24px 24px;border:6px solid var(--paper);box-shadow:0 24px 50px -28px rgba(0,0,0,.55);width:min(320px,80%);margin:0 auto}
@media (min-width:900px){
 .h3.full{padding:var(--s8) 0}
 .full .card3{grid-template-columns:1.15fr .85fr;align-items:center;padding:var(--s7) var(--s8);gap:var(--s7)}
 .full .card3 .lg{width:100%;max-width:340px;order:2}
 .side .art3{position:absolute;top:0;right:0;bottom:0;width:40vw;height:auto}
 .side .circ{left:0;top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(380px,27vw);height:min(380px,27vw);box-shadow:0 0 0 12px var(--cream),0 30px 60px -26px rgba(0,0,0,.6)}
 .side .hero-in{margin-left:max(0px,(100vw - var(--wrap))/2);max-width:none;width:calc(60vw - max(0px,(100vw - var(--wrap))/2) - 15vw)}
 .side .hero-text{padding:var(--s9) 0}
 .ribbon .hero-text{padding:var(--s9) 0 var(--s8);max-width:820px}
 .ribbon .tl-title{font-size:clamp(4rem,7vw,6.4rem)}
 .ribbon .rb{height:172px}
 .arch .in3{grid-template-columns:1.1fr .9fr;align-items:center;gap:var(--s8);padding:var(--s8) 0 var(--s9)}
 .arch .win{order:2;width:100%;max-width:440px;height:540px;border-radius:260px 260px 32px 32px;border-width:10px}
 .arch .tl-title{font-size:clamp(3.4rem,5.6vw,5.4rem)}
}

/* Tarifs et congés (espace parents, 11/10/2026) */
.tarifs-card h2{display:flex;align-items:center;gap:.5em}
.tarifs{display:grid;gap:.6rem;margin:0}
.tarifs .tarif{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.55rem 0;border-bottom:1px dashed var(--sand, #e9dcc0)}
.tarifs .tarif:last-child{border-bottom:0}
.tarifs dt{font-weight:700}
.tarifs dd{margin:0;font-weight:900;font-size:1.25rem;color:var(--rust, #b5432c);white-space:nowrap}
.jours{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.jours li{padding:.55rem 0 .55rem 1.1rem;border-left:4px solid var(--ochre, #efc165);font-weight:600}

/* Gestion, tarifs et congés : des lignes qu'on ajoute et qu'on retire (12/10/2026) */
.tarifs-edit fieldset{border:0;margin:0 0 1.25rem;padding:0}
.tarifs-edit legend{font-weight:800;font-size:1.05rem;margin-bottom:.6rem;padding:0}
.t-lignes{list-style:none;margin:0 0 .6rem;padding:0;display:grid;gap:.6rem}
.t-ligne{display:grid;gap:.5rem;align-items:center;grid-template-columns:1fr 2.75rem}
.t-ligne.prix{grid-template-columns:minmax(0,1fr) 5.75rem 2.75rem}
.t-entetes{display:grid;grid-template-columns:minmax(0,1fr) 5.75rem 2.75rem;gap:.5rem;margin:0 0 .3rem;font-size:.85rem;font-weight:700;color:var(--muted, #5f6b78)}
.t-entetes span:last-child{grid-column:2}
.t-ligne textarea{resize:vertical;min-height:0}
.t-aide{margin:-.2rem 0 .6rem}
.t-ligne label{margin:0;min-width:0}
.t-ligne input,.t-ligne textarea{width:100%;margin:0}
.t-retirer{width:2.75rem;height:2.75rem;border-radius:50%;border:1.5px solid var(--line, #d9c9a3);background:transparent;color:inherit;font-size:1rem;cursor:pointer}
.t-retirer:hover,.t-retirer:focus-visible{border-color:var(--rust, #b5432c);color:var(--rust, #b5432c)}
@media (max-width:600px){
 .t-entetes{display:none}
 .t-ligne.prix{grid-template-columns:minmax(0,1fr) 2.75rem;grid-template-areas:"nom x" "montant x"}
 .t-ligne.prix .t-nom{grid-area:nom}.t-ligne.prix .t-montant{grid-area:montant;max-width:9rem}.t-ligne.prix .t-retirer{grid-area:x}
 .t-ligne.prix{padding-bottom:.6rem;border-bottom:1px dashed var(--line, #d9c9a3)}
}
.t-ligne textarea{overflow:hidden}

/* Une rangée à deux colonnes qui n'a plus qu'un bloc (photos d'illustration retirées à la mise en ligne) : une seule colonne de lecture */
.split:has(> :only-child){grid-template-columns:minmax(0,46rem)}

/* Ce que j'accepte ou non (son texte du 12/10/2026) */
.accepte{display:grid;gap:1rem;margin-bottom:1.5rem}
@media (min-width:760px){.accepte{grid-template-columns:1fr 1fr}}
.accepte-col h3{display:flex;align-items:center;gap:.5em;margin:0 0 .6rem}
.accepte-col ul{margin:0;padding-left:1.1rem;display:grid;gap:.35rem}
.accepte-col.non{border-top:4px solid var(--rust, #b5432c)}
.accepte-col.oui{border-top:4px solid #5f8f6a}
.accepte-bas{display:grid;gap:1rem}
@media (min-width:760px){.accepte-bas{grid-template-columns:1fr 1fr}}
.accepte-bas h3{margin:0 0 .4rem}
