/* ==========================================================================
   Bouts d'ficelle — feuille de style 2026
   Palette tirée du logo (arc-en-ciel + rose ballon + bleu robe).
   Règle d'or : les couleurs vives servent de FOND ; le texte reste sombre.
   Textes colorés = variantes foncées « -t » (contraste ≥ 4,5:1 vérifié).
   ========================================================================== */

@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-400.woff) format("woff")}
@font-face{font-family:"Inter";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/inter-400i.woff) format("woff")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/inter-600.woff) format("woff")}
@font-face{font-family:"Inter";font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/inter-800.woff) format("woff")}

:root{
  /* couleurs du logo (fonds, décors) */
  --pink:#FF3AD7; --blue:#378CE6; --yellow:#FFC72C; --green:#8FD63A;
  --turq:#22D3C5; --purple:#B58CFF; --orange:#FF7F32;
  /* variantes pour TEXTE et icônes sur fond clair */
  --pink-t:#B0007F; --blue-t:#1559A8; --green-t:#2E7508; --turq-t:#0A736B;
  --purple-t:#6A2FC4; --orange-t:#A94400; --yellow-t:#7A5600;
  /* neutres */
  --ink:#34103A; --ink-soft:#5E4563; --bg:#FFF9F2; --surface:#FFFFFF; --surface-2:#FFF1E3;
  --line:#E6D3DC; --line-strong:#7A5A82; --on-fill:#34103A;
  --shadow:0 2px 0 rgba(52,16,58,.06),0 12px 28px -12px rgba(52,16,58,.28);
  --focus:#34103A; --focus-halo:#FFFFFF;
  --link:#1559A8; --link-hover:#0E3F7A;
  --radius:22px; --radius-s:12px;
  --maxw:1180px; --gutter:clamp(1rem,4vw,2rem);
  --f:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --step:1;           /* échelle de texte (préférences) */
  color-scheme:light;
}

/* Thème sombre : automatique (selon l'appareil) ou choisi */
html[data-theme="dark"]{
  --bg:#1E0F27; --surface:#2A1636; --surface-2:#341C42; --ink:#FFF4FB; --ink-soft:#DCC8E3;
  --line:#4A2E5A; --line-strong:#B79ABF; --shadow:0 12px 28px -12px rgba(0,0,0,.6);
  --pink-t:#FF8AE8; --blue-t:#8CC1FF; --green-t:#A9E55F; --turq-t:#4FE6D9;
  --purple-t:#CDB0FF; --orange-t:#FFA66B; --yellow-t:#FFD966;
  --focus:#FFFFFF; --focus-halo:#1E0F27; --link:#8CC1FF; --link-hover:#BBDBFF; color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  html[data-theme="auto"]{
    --bg:#1E0F27; --surface:#2A1636; --surface-2:#341C42; --ink:#FFF4FB; --ink-soft:#DCC8E3;
    --line:#4A2E5A; --line-strong:#B79ABF; --shadow:0 12px 28px -12px rgba(0,0,0,.6);
    --pink-t:#FF8AE8; --blue-t:#8CC1FF; --green-t:#A9E55F; --turq-t:#4FE6D9;
    --purple-t:#CDB0FF; --orange-t:#FFA66B; --yellow-t:#FFD966;
    --focus:#FFFFFF; --focus-halo:#1E0F27; --link:#8CC1FF; --link-hover:#BBDBFF; color-scheme:dark;
  }
}
/* Contraste renforcé */
html[data-contrast="high"]{
  --ink:#000; --ink-soft:#000; --bg:#FFF; --surface:#FFF; --surface-2:#FFF; --line:#000; --line-strong:#000;
  --pink-t:#8A0063; --blue-t:#0B3F85; --green-t:#1C5A00; --turq-t:#00544E; --purple-t:#4B1C9A; --orange-t:#7C3000; --yellow-t:#5B3F00;
  --link:#0A2F6B; --link-hover:#000; --shadow:none; --focus:#000; --focus-halo:#FFF;
}
html[data-contrast="high"][data-theme="dark"]{
  --ink:#FFF; --ink-soft:#FFF; --bg:#000; --surface:#000; --surface-2:#000; --line:#FFF; --line-strong:#FFF;
  --pink-t:#FF9BEC; --blue-t:#A8D0FF; --green-t:#BDF07A; --turq-t:#6FF0E5; --purple-t:#DCC8FF; --orange-t:#FFB98A; --yellow-t:#FFE08A;
  --link:#A8D0FF; --link-hover:#FFF; --focus:#FFF; --focus-halo:#000;
}
@media (prefers-color-scheme:dark){
  html[data-contrast="high"][data-theme="auto"]{
    --ink:#FFF; --ink-soft:#FFF; --bg:#000; --surface:#000; --surface-2:#000; --line:#FFF; --line-strong:#FFF;
    --pink-t:#FF9BEC; --blue-t:#A8D0FF; --green-t:#BDF07A; --turq-t:#6FF0E5; --purple-t:#DCC8FF; --orange-t:#FFB98A; --yellow-t:#FFE08A;
    --link:#A8D0FF; --link-hover:#FFF; --focus:#FFF; --focus-halo:#000;
  }
}
html[data-text="1"]{--step:1.15} html[data-text="2"]{--step:1.32}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{font-size:calc(112.5% * var(--step));scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:6rem}
body{margin:0;font-family:var(--f);line-height:1.65;color:var(--ink);background:var(--bg);overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
html[data-read="1"] body{letter-spacing:.04em;word-spacing:.14em;line-height:1.95}
html[data-read="1"] p,html[data-read="1"] li{margin-bottom:1.4em}
main{flex:1;display:block}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{line-height:1.15;letter-spacing:-.02em;font-weight:800;margin:0 0 .6em;text-wrap:balance}
h1{font-size:clamp(2rem,1.2rem + 3.6vw,3.6rem)}
h2{font-size:clamp(1.6rem,1.1rem + 2vw,2.5rem)}
h3{font-size:clamp(1.2rem,1.05rem + .7vw,1.5rem)}
h4{font-size:1.05rem}
p,ul,ol,dl,figure,blockquote,table{margin:0 0 1.1em}
p{max-width:68ch}
a{color:var(--link);text-decoration-thickness:.09em;text-underline-offset:.18em}
a:hover{color:var(--link-hover);text-decoration-thickness:.16em}
strong{font-weight:800}
small,.small{font-size:.875rem}
hr{border:0;border-top:2px dashed var(--line);margin:2rem 0}
::selection{background:var(--yellow);color:#34103A}

/* focus : anneau double visible sur tous les fonds (WCAG 2.4.7 / 2.4.11 / 2.4.13) */
:focus{outline:none}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;box-shadow:0 0 0 6px var(--focus-halo);border-radius:6px;position:relative;z-index:2}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* liens d'évitement */
.skip{position:fixed;inset:.75rem auto auto .75rem;z-index:1000;display:flex;gap:.5rem;flex-wrap:wrap;transform:translateY(-250%);transition:transform .15s}
.skip:focus-within{transform:none}
.skip a{background:var(--ink);color:var(--bg);padding:.8rem 1.1rem;border-radius:var(--radius-s);font-weight:800;text-decoration:none;display:inline-block}
.skip a:focus-visible{outline-color:var(--yellow);box-shadow:0 0 0 6px var(--ink)}

.wrap{width:min(100% - 2*var(--gutter),var(--maxw));margin-inline:auto}
.section{padding-block:clamp(3rem,6vw,5.5rem)}
.section--alt{background:var(--surface-2)}
.section--tight{padding-block:clamp(2rem,4vw,3rem)}
.center{text-align:center}.center p{margin-inline:auto}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-weight:800;font-size:.8125rem;letter-spacing:.09em;text-transform:uppercase;color:var(--pink-t);margin:0 0 .8rem}
.eyebrow::before{content:"";width:1.6rem;height:.35rem;border-radius:9px;background:linear-gradient(90deg,var(--yellow),var(--green),var(--turq),var(--blue),var(--purple),var(--pink),var(--orange))}
.lead{font-size:clamp(1.1rem,1rem + .5vw,1.3rem);color:var(--ink-soft);max-width:60ch}
.muted{color:var(--ink-soft)}
.hl{background:linear-gradient(transparent 62%,var(--yellow) 62%,var(--yellow) 92%,transparent 92%);padding-inline:.1em;color:var(--ink)}
html[data-contrast="high"] .hl{background:none;text-decoration:underline;text-decoration-thickness:.18em}

/* ---------- boutons ---------- */
.btn{--bf:var(--pink);--bt:#34103A;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:3rem;min-width:3rem;padding:.7rem 1.4rem;
  font:800 1rem/1.2 var(--f);color:var(--bt);background:var(--bf);border:3px solid #34103A;border-radius:999px;text-decoration:none;cursor:pointer;
  box-shadow:0 4px 0 #34103A;transition:transform .12s,box-shadow .12s,background-color .12s}
.btn:hover{color:var(--bt);transform:translateY(2px);box-shadow:0 2px 0 #34103A;text-decoration:none}
.btn:active{transform:translateY(4px);box-shadow:none}
.btn--yellow{--bf:var(--yellow)}.btn--blue{--bf:var(--blue)}.btn--green{--bf:var(--green)}.btn--turq{--bf:var(--turq)}.btn--orange{--bf:var(--orange)}
.btn--ghost{--bf:var(--surface);--bt:var(--ink);border-color:var(--ink);box-shadow:0 4px 0 var(--ink)}
.btn--ghost:hover{--bf:var(--surface-2)}
html[data-theme="dark"] .btn{box-shadow:0 4px 0 #000} html[data-theme="dark"] .btn--ghost{border-color:var(--ink);box-shadow:0 4px 0 var(--ink)}
.btn--sm{min-height:2.75rem;padding:.5rem 1rem;font-size:.9375rem}
.btn svg{width:1.25em;height:1.25em;flex:none}
html[data-contrast="high"] .btn{--bf:#000;--bt:#fff;border-color:#000;box-shadow:none}
html[data-contrast="high"] .btn--ghost{--bf:#fff;--bt:#000}
html[data-contrast="high"][data-theme="dark"] .btn{--bf:#fff;--bt:#000;border-color:#fff}
html[data-contrast="high"][data-theme="dark"] .btn--ghost{--bf:#000;--bt:#fff}
.actions{display:flex;flex-wrap:wrap;gap:1rem 1.1rem;margin-top:1.4rem}
.linkarrow{font-weight:800;display:inline-flex;gap:.4rem;align-items:center}
.linkarrow::after{content:"→";transition:transform .15s}.linkarrow:hover::after{transform:translateX(4px)}

/* ---------- en-tête ---------- */
.header{position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:4px solid transparent;border-image:linear-gradient(90deg,var(--yellow),var(--green),var(--turq),var(--blue),var(--purple),var(--pink),var(--orange)) 1}
.header__bar{display:flex;align-items:center;gap:1rem;min-height:4.5rem;padding-block:.5rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink);flex:none;border-radius:14px;padding:.2rem .4rem}
.brand img.brand__mouse{width:2.9rem;height:auto}
.brand img.brand__word{width:min(11.5rem,42vw);height:auto}
html[data-theme="dark"] .brand,html[data-theme="dark"] .hero__art,html[data-theme="dark"] .logo-chip{background:#fff}
@media (prefers-color-scheme:dark){html[data-theme="auto"] .brand,html[data-theme="auto"] .hero__art,html[data-theme="auto"] .logo-chip{background:#fff}}
.nav{margin-left:auto}
.nav__list{display:flex;align-items:center;gap:.15rem;list-style:none;margin:0;padding:0}
.nav__list>li{margin:0;position:relative}
.nav a,.nav button.nav__trigger{display:flex;align-items:center;gap:.35rem;min-height:2.75rem;padding:.45rem .8rem;border-radius:999px;font:600 .9375rem/1.2 var(--f);color:var(--ink);text-decoration:none;background:none;border:0;cursor:pointer}
.nav a:hover,.nav button.nav__trigger:hover{background:var(--surface-2);color:var(--ink)}
.nav a[aria-current="page"],.nav__trigger[data-current="true"]{background:var(--yellow);color:#34103A;font-weight:800}
html[data-contrast="high"] .nav a[aria-current="page"],html[data-contrast="high"] .nav__trigger[data-current="true"]{background:#000;color:#fff;text-decoration:underline}
html[data-contrast="high"][data-theme="dark"] .nav a[aria-current="page"]{background:#fff;color:#000}
.nav__trigger svg{width:.8em;height:.8em;transition:transform .15s}
.nav__trigger[aria-expanded="true"] svg{transform:rotate(180deg)}
.nav__sub{list-style:none;margin:0;padding:.5rem;position:absolute;left:0;top:calc(100% + .4rem);min-width:15.5rem;background:var(--surface);border:3px solid var(--ink);border-radius:var(--radius-s);box-shadow:var(--shadow);display:none;z-index:60}
.nav__sub.is-open{display:block}
.nav__sub a{border-radius:9px;padding:.65rem .85rem;font-weight:600}
.header__tools{display:flex;gap:.5rem;align-items:center;flex:none}
.iconbtn{display:inline-flex;align-items:center;gap:.45rem;min-height:2.75rem;min-width:2.75rem;padding:.4rem .8rem;border:2px solid var(--ink);border-radius:999px;background:var(--surface);color:var(--ink);font:700 .875rem/1 var(--f);cursor:pointer;justify-content:center}
.iconbtn:hover{background:var(--surface-2)}
.iconbtn svg{width:1.3rem;height:1.3rem;flex:none}
.menu-toggle{display:none}
@media (max-width:1140px){
  .menu-toggle{display:inline-flex;margin-left:auto}
  .header__bar{flex-wrap:wrap}
  .nav{display:none;order:5;flex-basis:100%;margin:0;padding:.5rem 0 1rem}
  .nav.is-open{display:block}
  .nav__list{flex-direction:column;align-items:stretch;gap:.2rem}
  .nav a,.nav button.nav__trigger{width:100%;justify-content:space-between;font-size:1.0625rem;min-height:3rem;border:2px solid transparent}
  .nav__sub{position:static;display:none;border:0;border-left:4px solid var(--yellow);border-radius:0;box-shadow:none;margin:.2rem 0 .5rem .9rem;padding:.1rem 0 .1rem .4rem;min-width:0}
  .nav__sub.is-open{display:block}
  .header__tools{margin-left:0}
}


/* ---------- héros ---------- */
.hero{position:relative;overflow:clip;padding-block:clamp(2.2rem,5vw,4.5rem) clamp(3rem,6vw,5rem)}
.hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
@media (max-width:860px){.hero__grid{grid-template-columns:1fr}}
.hero h1{margin-bottom:.5em}
.hero__art{position:relative;aspect-ratio:1/1;max-width:30rem;margin-inline:auto;width:100%;border-radius:50% 46% 54% 50%/52% 50% 50% 48%;background:var(--surface);display:grid;place-items:center;box-shadow:var(--shadow);border:4px solid var(--ink)}
.hero__art img{width:72%;height:auto;animation:float 6s ease-in-out infinite}
.confetti{position:absolute;border-radius:50%;pointer-events:none;border:3px solid var(--ink)}
.blob{position:absolute;z-index:-1;pointer-events:none;border-radius:50%;filter:none;opacity:.55}
.page-hero{position:relative;padding-block:clamp(2.2rem,5vw,4rem) clamp(2rem,4vw,3rem);border-bottom:2px dashed var(--line);overflow:clip}
.page-hero h1{margin-bottom:.4em}
.crumbs{font-size:.875rem;margin-bottom:1rem}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.2rem .5rem;list-style:none;padding:0;margin:0}
.crumbs li+li::before{content:"›";margin-right:.5rem;color:var(--ink-soft)}
.crumbs a{color:var(--ink-soft)}
@keyframes float{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-12px) rotate(1.5deg)}}
@keyframes wiggle{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
html[data-motion="reduce"] *,html[data-motion="reduce"] *::before,html[data-motion="reduce"] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ficelle : séparateur ondulé */
.string{display:block;width:100%;height:28px;color:var(--pink);margin:0}
.string path{stroke:currentColor;stroke-width:4;fill:none;stroke-linecap:round;stroke-dasharray:1 11}
.string--blue{color:var(--blue)}.string--yellow{color:var(--orange)}.string--green{color:var(--green-t)}

/* ---------- infos pratiques ---------- */
.infobar{background:#34103A;color:#FFF4FB;padding-block:1.1rem}
.infobar .wrap{display:flex;flex-wrap:wrap;gap:.6rem 2rem;align-items:center;justify-content:space-between}
.infobar p{margin:0;max-width:none}
.infobar a{color:var(--yellow);font-weight:800}
.infobar .dot{display:inline-block;width:.75rem;height:.75rem;border-radius:50%;background:var(--green);margin-right:.5rem;border:2px solid currentColor;vertical-align:baseline}
.infobar .dot[data-state="closed"]{background:var(--orange)}

/* ---------- grilles & cartes ---------- */
.grid{display:grid;gap:clamp(1rem,2.4vw,1.6rem)}
.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}
.grid--auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
@media (max-width:980px){.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}
.card{--c:var(--yellow);position:relative;background:var(--surface);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:0 6px 0 var(--c),0 6px 0 3px var(--ink);padding:1.4rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.2rem;height:100%}
html[data-contrast="high"] .card{box-shadow:none}
.card h3{margin-bottom:.35em}
.card p:last-child{margin-bottom:0}
.card--pink{--c:var(--pink)}.card--blue{--c:var(--blue)}.card--green{--c:var(--green)}.card--turq{--c:var(--turq)}.card--orange{--c:var(--orange)}.card--purple{--c:var(--purple)}.card--yellow{--c:var(--yellow)}
.card__icon{width:3.4rem;height:3.4rem;border-radius:16px;background:var(--c);color:#34103A;display:grid;place-items:center;border:3px solid #34103A;margin-bottom:.8rem;transform:rotate(-4deg)}
.card__icon svg{width:1.9rem;height:1.9rem}
.card__more{margin-top:auto;padding-top:.8rem}
.card--link{text-decoration:none;color:var(--ink);transition:transform .15s}
.card--link:hover{transform:translateY(-4px);color:var(--ink)}
.card__img{margin:-1.4rem -1.4rem 1.1rem;border-radius:calc(var(--radius) - 4px) calc(var(--radius) - 4px) 0 0;overflow:hidden;border-bottom:3px solid var(--ink);aspect-ratio:3/2;background:var(--surface-2)}
.card__img img{width:100%;height:100%;object-fit:cover}
.tag{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;background:var(--c,var(--yellow));color:#34103A;font-weight:800;font-size:.8125rem;line-height:1.1;padding:.4rem .75rem;border-radius:999px;border:2px solid #34103A;margin-bottom:.7rem}
.tag--pink{--c:var(--pink)}.tag--blue{--c:var(--blue)}.tag--green{--c:var(--green)}.tag--turq{--c:var(--turq)}.tag--orange{--c:var(--orange)}.tag--purple{--c:var(--purple)}.tag--yellow{--c:var(--yellow)}.tag--plain{--c:var(--surface-2);color:var(--ink);border-color:var(--ink)}

/* ---------- mise en page 2 colonnes ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.split--top{align-items:start}
.split--rev>:first-child{order:2}
@media (max-width:860px){.split{grid-template-columns:1fr}.split--rev>:first-child{order:0}}
.photo{border:4px solid var(--ink);border-radius:var(--radius);overflow:hidden;background:var(--surface-2);box-shadow:10px 10px 0 var(--c,var(--pink)),10px 10px 0 4px var(--ink);margin:0 10px 10px 0}
.photo img{width:100%;height:auto}
.photo figcaption{padding:.6rem .9rem;font-size:.875rem;background:var(--surface);color:var(--ink-soft);border-top:3px solid var(--ink)}
.photo--blue{--c:var(--blue)}.photo--green{--c:var(--green)}.photo--yellow{--c:var(--yellow)}.photo--turq{--c:var(--turq)}.photo--orange{--c:var(--orange)}
.photo--tilt{transform:rotate(1.2deg)}.photo--tilt-l{transform:rotate(-1.2deg)}
.photos-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:1.2rem}

/* Chiffres */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:0;padding:0;list-style:none}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--surface);border:3px solid var(--ink);border-radius:var(--radius);padding:1.2rem 1rem;text-align:center}
.stat b{display:block;font-size:clamp(2rem,1.4rem + 2.4vw,3rem);line-height:1;font-weight:800;letter-spacing:-.03em}
.stat:nth-child(1) b{color:var(--pink-t)}.stat:nth-child(2) b{color:var(--blue-t)}.stat:nth-child(3) b{color:var(--green-t)}.stat:nth-child(4) b{color:var(--orange-t)}
.stat span{display:block;margin-top:.4rem;color:var(--ink-soft);font-weight:600;font-size:.9375rem}

/* Encadrés */
.note{border:3px solid var(--ink);border-radius:var(--radius-s);padding:1rem 1.2rem;background:var(--surface);position:relative}
.note--yellow{background:var(--yellow);color:#34103A;border-color:#34103A}
.note--yellow a{color:#34103A}
.note--pink{border-left:12px solid var(--pink)}
.note--blue{border-left:12px solid var(--blue)}
.note--green{border-left:12px solid var(--green)}
.note h2,.note h3{font-size:1.15rem;margin-bottom:.3em}
.note p:last-child{margin-bottom:0}
.essential{background:var(--surface);border:3px dashed var(--ink);border-radius:var(--radius);padding:1.2rem 1.4rem;margin-block:1.5rem}
.essential h2{font-size:1.05rem;text-transform:uppercase;letter-spacing:.08em;color:var(--blue-t);margin-bottom:.5rem}
.essential ul{margin:0;padding-left:1.2rem}.essential li{margin-bottom:.3rem}

/* Listes de faits */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:1rem;margin:0 0 1.5rem;padding:0;list-style:none}
.facts li{background:var(--surface);border:3px solid var(--ink);border-radius:var(--radius-s);padding:.9rem 1rem}
.facts b{display:block;font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:.15rem}
.facts span{font-weight:800;font-size:1.1rem}
.checklist{list-style:none;padding:0;margin:0 0 1.2rem}
.checklist li{position:relative;padding-left:2.1rem;margin-bottom:.7rem}
.checklist li::before{content:"";position:absolute;left:0;top:.25em;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--green);border:2px solid #34103A}
.checklist li::after{content:"";position:absolute;left:.43rem;top:.43em;width:.45rem;height:.75rem;border:solid #34103A;border-width:0 3px 3px 0;transform:rotate(40deg) scale(.9)}
.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;gap:1rem}
.steps li{counter-increment:s;position:relative;background:var(--surface);border:3px solid var(--ink);border-radius:var(--radius);padding:1.1rem 1.2rem 1.1rem 4.4rem;min-height:4.5rem}
.steps li::before{content:counter(s);position:absolute;left:1rem;top:1rem;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--c,var(--yellow));color:#34103A;font-weight:800;font-size:1.25rem;display:grid;place-items:center;border:3px solid #34103A}
.steps li:nth-child(4n+1){--c:var(--yellow)}.steps li:nth-child(4n+2){--c:var(--turq)}.steps li:nth-child(4n+3){--c:var(--pink)}.steps li:nth-child(4n+4){--c:var(--green)}
.steps h3{font-size:1.1rem;margin-bottom:.2em}.steps p{margin:0}

/* FAQ natif */
.faq details{background:var(--surface);border:3px solid var(--ink);border-radius:var(--radius-s);margin-bottom:.8rem}
.faq summary{cursor:pointer;list-style:none;font-weight:800;padding:1rem 3.2rem 1rem 1.2rem;position:relative;min-height:3rem;display:flex;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:1rem;top:50%;translate:0 -50%;width:2rem;height:2rem;border-radius:50%;background:var(--yellow);color:#34103A;border:2px solid #34103A;display:grid;place-items:center;font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details>div{padding:0 1.2rem 1.1rem}.faq details>div p:last-child{margin:0}

/* ---------- agenda ---------- */
.filters{display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 1.5rem;padding:0;list-style:none}
.chip{display:inline-flex;align-items:center;gap:.4rem;min-height:2.75rem;padding:.45rem 1rem;border:3px solid var(--ink);border-radius:999px;background:var(--surface);color:var(--ink);font:700 .9375rem/1 var(--f);cursor:pointer}
.chip:hover{background:var(--surface-2)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
html[data-theme="dark"] .chip[aria-pressed="true"]{background:var(--yellow);color:#34103A;border-color:var(--yellow)}
@media (prefers-color-scheme:dark){html[data-theme="auto"] .chip[aria-pressed="true"]{background:var(--yellow);color:#34103A;border-color:var(--yellow)}}
.chip .count{font-weight:600;opacity:.85}
.events{display:grid;gap:1.4rem;list-style:none;padding:0;margin:0}
.event{display:grid;grid-template-columns:7.5rem 1fr;gap:1.2rem;background:var(--surface);border:3px solid var(--ink);border-radius:var(--radius);padding:1.1rem;box-shadow:0 6px 0 var(--c,var(--yellow)),0 6px 0 3px var(--ink)}
.event[hidden]{display:none}
.event--pink{--c:var(--pink)}.event--blue{--c:var(--blue)}.event--green{--c:var(--green)}.event--turq{--c:var(--turq)}.event--orange{--c:var(--orange)}.event--purple{--c:var(--purple)}
.event__date{background:var(--c,var(--yellow));color:#34103A;border:3px solid #34103A;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:.6rem .4rem;line-height:1.05;align-self:start}
.event__date b{font-size:2.1rem;font-weight:800;letter-spacing:-.03em}.event__date span{font-weight:800;font-size:.8125rem;text-transform:uppercase;letter-spacing:.06em}
.event__date--txt b{font-size:1.05rem;letter-spacing:0}
.event__body h3{margin-bottom:.3em}
.event__meta{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;list-style:none;padding:0;margin:.4rem 0 .8rem;font-size:.9375rem;color:var(--ink-soft)}
.event__meta li{display:flex;gap:.35rem;align-items:baseline}
.event__meta b{color:var(--ink)}
.event__status{display:inline-block;font-weight:800;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;padding:.25rem .6rem;border-radius:999px;border:2px solid var(--ink);margin-right:.4rem;vertical-align:middle}
.event__status[data-s="avenir"]{background:var(--green);color:#34103A;border-color:#34103A}
.event__status[data-s="cours"]{background:var(--turq);color:#34103A;border-color:#34103A}
.event__status[data-s="passe"]{background:var(--surface-2);color:var(--ink)}
.event--past{opacity:.97}
.event__thumb{margin-top:.6rem;display:flex;gap:.6rem;flex-wrap:wrap}
@media (max-width:640px){.event{grid-template-columns:1fr}.event__date{flex-direction:row;gap:.6rem;justify-content:flex-start;padding:.5rem .9rem;width:fit-content}.event__date b{font-size:1.4rem}}
.next{display:grid;gap:1rem}
.next-item{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;align-items:center;background:var(--surface);border:3px solid var(--ink);border-radius:var(--radius);padding:.9rem 1rem;text-decoration:none;color:var(--ink)}
a.next-item:hover{background:var(--surface-2);color:var(--ink)}
.next-item h3{margin:0 0 .15em;font-size:1.15rem}.next-item p{margin:0;color:var(--ink-soft);font-size:.9375rem}

/* ---------- galerie ---------- */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:1rem;list-style:none;padding:0;margin:0}
.gallery li{margin:0}
.gallery li[hidden]{display:none}
.gallery button{display:block;width:100%;padding:0;border:3px solid var(--ink);border-radius:var(--radius-s);overflow:hidden;background:var(--surface-2);cursor:zoom-in;aspect-ratio:1/1;position:relative}
.gallery button img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.gallery button:hover img{transform:scale(1.05)}
.gallery button::after{content:"Agrandir";position:absolute;left:.5rem;bottom:.5rem;background:var(--ink);color:var(--bg);font:700 .75rem/1 var(--f);padding:.4rem .6rem;border-radius:999px;opacity:0;transition:opacity .15s}
.gallery button:hover::after,.gallery button:focus-visible::after{opacity:1}
dialog.lightbox{width:min(96vw,60rem);max-height:94vh;border:4px solid var(--ink);border-radius:var(--radius);padding:0;background:var(--surface);color:var(--ink);overflow:auto}
dialog.lightbox::backdrop{background:rgba(30,15,39,.82)}
.lightbox__body{padding:1rem;display:grid;gap:.8rem}
.lightbox__body img{max-height:72vh;width:auto;max-width:100%;margin:0 auto;border-radius:10px}
.lightbox__bar{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:space-between;align-items:center}
.lightbox__cap{margin:0;max-width:none;font-weight:600}

/* ---------- partenaires ---------- */
.logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5rem),1fr));gap:1rem;list-style:none;margin:0;padding:0}
.logos li{margin:0;background:#fff;border:3px solid var(--ink);border-radius:var(--radius-s);display:grid;place-items:center;padding:.8rem;aspect-ratio:3/2}
.logos img{max-height:100%;width:auto;object-fit:contain}
.partner{display:grid;grid-template-columns:8rem 1fr;gap:1.2rem;align-items:start}
.partner__logo{background:#fff;border:3px solid var(--ink);border-radius:var(--radius-s);padding:.6rem;aspect-ratio:1/1;display:grid;place-items:center}
.partner__logo img{max-height:100%;object-fit:contain}
@media (max-width:560px){.partner{grid-template-columns:1fr}.partner__logo{max-width:8rem}}

/* ---------- équipe ---------- */
.team{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5rem),1fr));gap:1.2rem;list-style:none;margin:0;padding:0}
.team li{text-align:center;margin:0}
.team img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%;border:4px solid var(--ink);margin-bottom:.7rem;background:var(--surface-2);box-shadow:6px 6px 0 var(--c,var(--pink))}
.team li:nth-child(5n+1){--c:var(--pink)}.team li:nth-child(5n+2){--c:var(--blue)}.team li:nth-child(5n+3){--c:var(--yellow)}.team li:nth-child(5n+4){--c:var(--green)}.team li:nth-child(5n+5){--c:var(--turq)}
.team b{display:block}.team span{color:var(--ink-soft);font-size:.9375rem}

/* ---------- timeline ---------- */
.timeline{list-style:none;margin:0;padding:0 0 0 1.6rem;border-left:5px dotted var(--pink)}
.timeline li{position:relative;margin:0 0 1.6rem;padding-left:1.4rem}
.timeline li::before{content:"";position:absolute;left:-2.35rem;top:.3rem;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--c,var(--yellow));border:3px solid var(--ink)}
.timeline li:nth-child(5n+2){--c:var(--turq)}.timeline li:nth-child(5n+3){--c:var(--pink)}.timeline li:nth-child(5n+4){--c:var(--green)}.timeline li:nth-child(5n+5){--c:var(--blue)}
.timeline time{display:block;font-weight:800;color:var(--pink-t)}
.timeline h3{font-size:1.15rem;margin-bottom:.2em}

/* ---------- formulaires ---------- */
.form{display:grid;gap:1.2rem}
.field{display:grid;gap:.4rem}
.field label,.field legend{font-weight:800}
.field .hint{color:var(--ink-soft);font-size:.9375rem;margin:0}
.req{color:var(--pink-t);font-weight:800}
input[type=text],input[type=email],input[type=tel],select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--surface);border:3px solid var(--line-strong);border-radius:var(--radius-s);padding:.75rem .9rem;min-height:3rem}
textarea{min-height:9rem;resize:vertical}
input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--ink)}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:#B00020;border-width:4px}
html[data-theme="dark"] input[aria-invalid=true],html[data-theme="dark"] textarea[aria-invalid=true],html[data-theme="dark"] select[aria-invalid=true]{border-color:#FF8A9B}
.error{color:#B00020;font-weight:700;margin:0}
html[data-theme="dark"] .error{color:#FF9AA9}
@media (prefers-color-scheme:dark){html[data-theme="auto"] .error{color:#FF9AA9}html[data-theme="auto"] input[aria-invalid=true],html[data-theme="auto"] textarea[aria-invalid=true],html[data-theme="auto"] select[aria-invalid=true]{border-color:#FF8A9B}}
.check{display:flex;gap:.8rem;align-items:flex-start}
.check input{width:1.6rem;height:1.6rem;flex:none;margin-top:.15rem;accent-color:var(--pink);min-height:0}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.alert{border:3px solid var(--ink);border-radius:var(--radius-s);padding:1rem 1.2rem;font-weight:600}
.alert--ok{background:var(--green);color:#34103A;border-color:#34103A}
.alert--err{background:#FFD9DE;color:#5A0010;border-color:#B00020}
.alert:focus{outline:3px solid var(--focus)}
.alert ul{margin:.4rem 0 0;padding-left:1.2rem}
.alert a{color:inherit}

/* ---------- pages légales ---------- */
.prose{max-width:75ch}
.prose h2{font-size:1.5rem;margin-top:2.2rem}
.prose h3{font-size:1.2rem;margin-top:1.6rem}
.prose ul,.prose ol{padding-left:1.4rem}
.prose li{margin-bottom:.4rem}
.dl-table{display:grid;grid-template-columns:minmax(9rem,14rem) 1fr;gap:.5rem 1.4rem;margin:0 0 1.5rem}
.dl-table dt{font-weight:800}.dl-table dd{margin:0}
@media (max-width:560px){.dl-table{grid-template-columns:1fr}.dl-table dd{margin-bottom:.8rem}}
.legal-nav{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0;margin:0 0 2rem}

/* ---------- bandeau campagne ---------- */
.campaign{position:relative;overflow:clip;background:#34103A;color:#FFF4FB;border-radius:var(--radius);padding:clamp(1.6rem,4vw,3rem);border:4px solid #34103A}
.campaign h2,.campaign h3{color:#FFF4FB}
.campaign p{color:#F0DDF3}
.campaign .eyebrow{color:var(--yellow)}
.campaign a:not(.btn){color:var(--yellow)}
.campaign--pink{background:var(--pink);color:#34103A;border-color:#34103A}
.campaign--pink h2,.campaign--pink h3,.campaign--pink p{color:#34103A}
.campaign--pink .eyebrow{color:#34103A}
.campaign--pink .eyebrow::before{background:#34103A}
.campaign--pink a:not(.btn){color:#34103A}
.campaign--pink .btn{--bf:#FFF9F2}
html[data-theme="dark"] .campaign{border-color:var(--line-strong)}
@media (prefers-color-scheme:dark){html[data-theme="auto"] .campaign{border-color:var(--line-strong)}}
.lantern{display:inline-block;width:2.2rem;height:2.9rem;border-radius:40% 40% 46% 46%/30% 30% 52% 52%;background:var(--yellow);border:3px solid #34103A;position:relative;animation:wiggle 4s ease-in-out infinite;transform-origin:50% 0}
.lantern::before{content:"";position:absolute;left:50%;top:-.9rem;width:3px;height:.9rem;background:#FFF4FB}
.lantern:nth-child(2n){background:var(--orange);animation-delay:-1.3s}.lantern:nth-child(3n){background:var(--pink);animation-delay:-2.2s}
.lanterns{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem;padding-top:1rem}
.amounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:1rem;list-style:none;padding:0;margin:0 0 1.5rem}
.amounts li{background:var(--surface);color:var(--ink);border:3px solid var(--ink);border-radius:var(--radius);padding:1rem;text-align:center}
.amounts b{display:block;font-size:2rem;line-height:1.1}

/* ---------- pied de page ---------- */
.footer{background:var(--ink);color:#FFF4FB;margin-top:3rem;position:relative}
html[data-theme="dark"] .footer{background:#150A1C}
@media (prefers-color-scheme:dark){html[data-theme="auto"] .footer{background:#150A1C}}
html[data-contrast="high"] .footer{background:#000;color:#fff}
.footer .string{position:absolute;top:-14px;left:0;color:var(--pink)}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:2rem;padding-block:3.2rem 2rem}
@media (max-width:900px){.footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer__grid{grid-template-columns:1fr}}
.footer h2{font-size:1rem;text-transform:uppercase;letter-spacing:.09em;color:var(--yellow);margin-bottom:.8rem}
.footer ul{list-style:none;margin:0;padding:0}.footer li{margin-bottom:.15rem}
.footer a{color:#FFF4FB;display:inline-flex;min-height:2.5rem;align-items:center}
.footer a:hover{color:var(--yellow)}
.footer :focus-visible{outline-color:#fff;box-shadow:0 0 0 6px #150A1C}
.footer__brand{display:flex;gap:.8rem;align-items:center;margin-bottom:.8rem}
.footer .logo-chip{display:inline-block;background:#fff;border-radius:18px;padding:.5rem .8rem}
.footer .logo-chip img{width:9.5rem}
.footer__bottom{border-top:2px dashed rgba(255,244,251,.35);padding-block:1.2rem 1.6rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;font-size:.9375rem}
.footer__bottom p{margin:0;max-width:none}
.footer address{font-style:normal}
.social{display:flex;gap:.7rem;margin-top:.8rem}
.social a{border:2px solid #FFF4FB;border-radius:999px;padding:.4rem .9rem;font-weight:700}

/* ---------- panneau préférences ---------- */
dialog.prefs{width:min(94vw,34rem);border:4px solid var(--ink);border-radius:var(--radius);padding:0;background:var(--surface);color:var(--ink);margin:auto}
dialog.prefs::backdrop{background:rgba(30,15,39,.75)}
.prefs__head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.2rem;border-bottom:3px dashed var(--line)}
.prefs__head h2{margin:0;font-size:1.3rem}
.prefs__body{padding:1.2rem;display:grid;gap:1.3rem}
.prefs fieldset{border:0;margin:0;padding:0;min-width:0}
.prefs legend{font-weight:800;margin-bottom:.5rem;padding:0}
.seg{display:flex;flex-wrap:wrap;gap:.5rem}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.seg span{display:inline-flex;align-items:center;justify-content:center;min-height:2.9rem;min-width:3rem;padding:.4rem 1rem;border:3px solid var(--ink);border-radius:999px;font-weight:700;background:var(--surface)}
.seg input:checked+span{background:var(--ink);color:var(--bg)}
.seg input:focus-visible+span{outline:3px solid var(--focus);outline-offset:3px;box-shadow:0 0 0 6px var(--focus-halo)}
.prefs .switch{display:flex;gap:.8rem;align-items:center;min-height:2.9rem}
.prefs .switch input{width:1.7rem;height:1.7rem;accent-color:var(--pink)}
.prefs__foot{padding:1rem 1.2rem;border-top:3px dashed var(--line);display:flex;gap:.8rem;flex-wrap:wrap;justify-content:space-between}

/* ---------- utilitaires ---------- */
.mt0{margin-top:0}.mb0{margin-bottom:0}.mt2{margin-top:2rem}.mb2{margin-bottom:2rem}
.nowrap{white-space:nowrap}
.map{border:4px solid var(--ink);border-radius:var(--radius);overflow:hidden;background:var(--surface-2);min-height:20rem}
.map iframe{width:100%;height:24rem;border:0;display:block}
.map__ph{padding:2rem;text-align:center;display:grid;place-items:center;gap:1rem;min-height:20rem}
.back-top{position:fixed;right:1rem;bottom:1rem;z-index:40}
@media print{
  .header,.footer,.skip,.back-top,.actions,.filters,dialog{display:none!important}
  body{background:#fff;color:#000;font-size:12pt}
  a{color:#000}a[href^="http"]::after{content:" (" attr(href) ")"}
  .card,.event,.note{box-shadow:none;break-inside:avoid}
}
.footer__legal{display:flex;flex-wrap:wrap;gap:.2rem 1.2rem}
/* confettis décoratifs du héros (positions par classes : pas de style en ligne, CSP stricte) */
.c1{width:2.2rem;height:2.2rem;background:var(--yellow);top:2%;left:6%}
.c2{width:1.4rem;height:1.4rem;background:var(--turq);top:14%;right:0}
.c3{width:2.8rem;height:2.8rem;background:var(--pink);bottom:6%;left:-2%}
.c4{width:1.6rem;height:1.6rem;background:var(--green);bottom:20%;right:-3%}
.c5{width:1.1rem;height:1.1rem;background:var(--orange);top:40%;left:-4%}
.c6{width:1.9rem;height:1.9rem;background:var(--blue);top:-3%;right:22%}
.blob--1{width:34rem;height:34rem;background:var(--yellow);top:-14rem;right:-12rem}
.blob--2{width:26rem;height:26rem;background:var(--turq);bottom:-12rem;left:-10rem}
.blob--3{width:22rem;height:22rem;background:var(--pink);top:-10rem;right:-8rem;opacity:.35}
html[data-theme="dark"] .blob{opacity:.18}
@media (prefers-color-scheme:dark){html[data-theme="auto"] .blob{opacity:.18}}
html[data-contrast="high"] .blob,html[data-contrast="high"] .confetti{display:none}
.nav a,.nav button.nav__trigger{white-space:nowrap;padding-inline:.7rem}
.brand img.brand__word{width:min(10.5rem,40vw)}
.plain{list-style:none;padding:0;margin:0}
.actions--center{justify-content:center}
.photo--center{margin:0 auto 1rem}

.nav a,.nav button.nav__trigger{padding-inline:.6rem;font-size:.9rem}
.header__bar{gap:.6rem}
.campaign .facts li{background:var(--surface);color:var(--ink)}
.campaign .facts b{color:var(--ink-soft)}
.campaign .facts a{color:var(--link)}

/* mode compact (ajouté par le script quand le menu ne tient plus, ex. texte agrandi) */
html.nav-compact .menu-toggle{display:inline-flex;margin-left:auto}
html.nav-compact .header__bar{flex-wrap:wrap}
html.nav-compact .nav{display:none;order:5;flex-basis:100%;margin:0;padding:.5rem 0 1rem}
html.nav-compact .nav.is-open{display:block}
html.nav-compact .nav__list{flex-direction:column;align-items:stretch;gap:.2rem}
html.nav-compact .nav a,html.nav-compact .nav button.nav__trigger{width:100%;justify-content:space-between;font-size:1.0625rem;min-height:3rem;border:2px solid transparent}
html.nav-compact .nav__sub{position:static;display:none;border:0;border-left:4px solid var(--yellow);border-radius:0;box-shadow:none;margin:.2rem 0 .5rem .9rem;padding:.1rem 0 .1rem .4rem;min-width:0}
html.nav-compact .nav__sub.is-open{display:block}
html.nav-compact .header__tools{margin-left:0}
/* robustesse texte agrandi / petits écrans */
.grid>*,.split>*,.footer__grid>*,.event>*,.next-item>*,.partner>*{min-width:0}
.wrap{overflow-wrap:break-word}
html[data-text="1"] .grid--4,html[data-text="2"] .grid--4,html[data-text="2"] .grid--3{grid-template-columns:repeat(2,1fr)}
html[data-text="2"] .split{grid-template-columns:1fr}
html[data-text="2"] .stats{grid-template-columns:repeat(2,1fr)}
@media (max-width:640px){html[data-text] .grid--2,html[data-text] .grid--3,html[data-text] .grid--4{grid-template-columns:1fr}
 .next-item{grid-template-columns:1fr}.next-item .event__date{width:fit-content}}
@media (max-width:860px){html[data-text] .split{grid-template-columns:1fr}}
.actions .btn{max-width:100%;text-align:center}
.footer a{overflow-wrap:anywhere}
@media (max-width:480px){.stats,html[data-text] .stats{grid-template-columns:1fr}}
.steps{grid-template-columns:minmax(0,1fr)}
main a{overflow-wrap:anywhere}
/* en-tête compact : marque + Affichage + Menu sur une seule ligne */
@media (max-width:1140px){.brand{flex:1 1 auto;min-width:0}.header__tools{order:2}.menu-toggle{order:3;margin-left:0}.nav{order:5}}
html.nav-compact .brand{flex:1 1 auto;min-width:0}html.nav-compact .header__tools{order:2}html.nav-compact .menu-toggle{order:3;margin-left:0}html.nav-compact .nav{order:5}
@media (max-width:480px){.brand img.brand__word{width:7.6rem}.brand img.brand__mouse{width:2.4rem}.header__tools .iconbtn__txt{display:none}}
@media (max-width:1140px){.brand{flex:1 1 0}}
html.nav-compact .brand{flex:1 1 0}
.brand img.brand__word{min-width:0;height:auto}
@media (max-width:480px){.brand img.brand__mouse{display:none}.brand img.brand__word{width:100%;max-width:10rem}}
/* bulletins imprimables */
.print-only-title{display:none}
.sign{border:3px solid var(--line-strong);border-radius:var(--radius-s);height:7rem}
@media print{
  .no-print,.skip,.header,.footer{display:none!important}
  .print-only-title{display:block;font-size:16pt}
  .bulletin input,.bulletin textarea{border:0;border-bottom:1.5px solid #000;border-radius:0;background:#fff;color:#000;min-height:2rem}
  .bulletin .sign{border-color:#000}
  .seg span{border:1.5px solid #000}
  a[href^="http"]::after,a[href^="mailto"]::after,a[href^="tel"]::after{content:""}
}

/* ==========================================================================
   v2 — « Fête au village » : plus vivant, plus coloré, plus interactif
   (tout respecte prefers-reduced-motion et la préférence « moins d'animations »)
   ========================================================================== */
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/poppins-700.woff) format("woff")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-500.woff) format("woff")}
:root{
  --fd:"Poppins","Inter",system-ui,sans-serif;
  --bg:#FFFBF4;
  /* teintes de sections (fonds vifs mais lisibles avec l'encre #34103A : ≥ 12:1) */
  --tint-sun:#FFE9A8; --tint-sky:#CFE6FF; --tint-mint:#D4F5C2; --tint-rose:#FFD6F3; --tint-lilac:#E6D9FF; --tint-peach:#FFDCC7; --tint-aqua:#C6F3EE;
  --ease:cubic-bezier(.2,.8,.2,1); --t:.35s;
}
html[data-theme="dark"]{--tint-sun:#3A2A10;--tint-sky:#13284A;--tint-mint:#153A1A;--tint-rose:#45133A;--tint-lilac:#2B1A4F;--tint-peach:#3F1E10;--tint-aqua:#0F3836}
@media (prefers-color-scheme:dark){html[data-theme="auto"]{--tint-sun:#3A2A10;--tint-sky:#13284A;--tint-mint:#153A1A;--tint-rose:#45133A;--tint-lilac:#2B1A4F;--tint-peach:#3F1E10;--tint-aqua:#0F3836}}
html[data-contrast="high"]{--tint-sun:#FFF;--tint-sky:#FFF;--tint-mint:#FFF;--tint-rose:#FFF;--tint-lilac:#FFF;--tint-peach:#FFF;--tint-aqua:#FFF}
html[data-contrast="high"][data-theme="dark"]{--tint-sun:#000;--tint-sky:#000;--tint-mint:#000;--tint-rose:#000;--tint-lilac:#000;--tint-peach:#000;--tint-aqua:#000}
@media (prefers-color-scheme:dark){html[data-contrast="high"][data-theme="auto"]{--tint-sun:#000;--tint-sky:#000;--tint-mint:#000;--tint-rose:#000;--tint-lilac:#000;--tint-peach:#000;--tint-aqua:#000}}

h1,h2,h3,h4,.btn,.stat b,.event__date b,.chip,.tag,.eyebrow{font-family:var(--fd)}
h1,h2{font-weight:700;letter-spacing:-.01em}
h1{font-size:clamp(2.3rem,1.2rem + 4.4vw,4.4rem);line-height:1.05}
.btn{font-weight:700}

/* transitions de page (progressif, navigateurs récents) */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.25s}

/* sections teintées + vagues */
.section--sun{background:var(--tint-sun)}.section--sky{background:var(--tint-sky)}.section--mint{background:var(--tint-mint)}
.section--rose{background:var(--tint-rose)}.section--lilac{background:var(--tint-lilac)}.section--peach{background:var(--tint-peach)}.section--aqua{background:var(--tint-aqua)}
.wave{display:block;width:100%;height:clamp(28px,5vw,64px);margin:0;color:var(--bg)}
.wave svg{width:100%;height:100%;display:block}
.wave--sun{color:var(--tint-sun)}.wave--sky{color:var(--tint-sky)}.wave--mint{color:var(--tint-mint)}.wave--rose{color:var(--tint-rose)}.wave--lilac{color:var(--tint-lilac)}.wave--peach{color:var(--tint-peach)}.wave--aqua{color:var(--tint-aqua)}.wave--ink{color:var(--ink)}
.wave--flip svg{transform:scaleY(-1)}
.section+.wave{margin-top:-1px}

/* en-tête : verre dépoli + réduction au défilement */
.header{background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:box-shadow var(--t)}
html[data-contrast="high"] .header{background:var(--surface);backdrop-filter:none}
.header.is-scrolled{box-shadow:0 10px 30px -18px rgba(52,16,58,.45)}
.header.is-scrolled .header__bar{min-height:3.9rem}
.nav a,.nav button.nav__trigger{position:relative;transition:background-color .15s,transform .15s}
.nav a:hover,.nav button.nav__trigger:hover{transform:translateY(-1px)}
.btn--cta{--bf:var(--pink);box-shadow:0 4px 0 #34103A,0 0 0 0 var(--pink)}
.btn--cta:hover{animation:none}

/* héros v2 */
.hero{padding-block:clamp(2.6rem,6vw,5.5rem) clamp(3.5rem,7vw,6.5rem);background:
  radial-gradient(42rem 24rem at 8% 0%,var(--tint-sun) 0%,transparent 60%),
  radial-gradient(36rem 22rem at 100% 10%,var(--tint-rose) 0%,transparent 60%),
  radial-gradient(30rem 20rem at 70% 100%,var(--tint-sky) 0%,transparent 60%)}
html[data-contrast="high"] .hero{background:var(--bg)}
.hero .eyebrow{font-size:.9rem}
.hero__art{animation:morph 14s ease-in-out infinite;background:linear-gradient(145deg,#fff,var(--tint-sun))}
html[data-contrast="high"] .hero__art{animation:none;background:#fff}
@keyframes morph{0%,100%{border-radius:50% 46% 54% 50%/52% 50% 50% 48%}33%{border-radius:46% 54% 48% 52%/56% 44% 56% 44%}66%{border-radius:54% 46% 52% 48%/46% 56% 44% 54%}}
.blob{opacity:.8;animation:drift 18s ease-in-out infinite alternate}
.blob--2{animation-delay:-7s}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(2.5rem,-1.5rem) scale(1.12)}}
.confetti{animation:confetti 7s ease-in-out infinite}
.c2,.c5{animation-delay:-2.5s}.c3,.c6{animation-delay:-4.6s}
@keyframes confetti{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(25deg)}}
/* mot qui tourne dans le titre : sans JS ou avec « moins d'animations », la phrase complète reste en texte normal */
.rotator .w{color:var(--pink-t)}
.rotator .w:nth-child(3){color:var(--blue-t)}.rotator .w:nth-child(5){color:var(--green-t)}.rotator .w:nth-child(7){color:var(--orange-t)}
.rotator--live{display:inline-grid;vertical-align:bottom;text-align:left}
.rotator--live .sep{display:none}
.rotator--live .w{grid-area:1/1;opacity:0;transform:translateY(.4em);transition:opacity var(--t) var(--ease),transform var(--t) var(--ease);white-space:nowrap}
.rotator--live .w.is-on{opacity:1;transform:none}
/* autocollants */
.sticker{position:absolute;display:inline-grid;place-items:center;padding:.6rem .9rem;border:3px solid #34103A;border-radius:999px;background:var(--c,var(--yellow));color:#34103A;font:700 .9rem/1.15 var(--fd);text-align:center;box-shadow:0 4px 0 #34103A;transform:rotate(var(--r,-8deg));z-index:2;transition:transform .2s var(--ease)}
.sticker:hover{transform:rotate(0) scale(1.06)}
.sticker--1{--c:var(--yellow);--r:-10deg;top:-1rem;left:-1rem}
.sticker--2{--c:var(--turq);--r:7deg;right:-.5rem;top:18%}
.sticker--3{--c:var(--pink);--r:-6deg;bottom:4%;left:4%}
@media (max-width:480px){.sticker{font-size:.8rem;padding:.45rem .7rem}.sticker--1{left:0}.sticker--2{right:0}}

/* apparition au défilement */
html.js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
html.js [data-reveal].is-in{opacity:1;transform:none}
html.js [data-reveal][data-reveal="l"]{transform:translateX(-26px)}html.js [data-reveal][data-reveal="r"]{transform:translateX(26px)}
html.js [data-reveal].is-in{transform:none}
html[data-motion="reduce"] [data-reveal]{opacity:1!important;transform:none!important}
@media (prefers-reduced-motion:reduce){html.js [data-reveal]{opacity:1;transform:none}}
.stagger>*{transition-delay:calc(var(--i,0) * 70ms)}

/* cartes plus vivantes */
.card{transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.card:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:0 12px 0 var(--c),0 12px 0 3px var(--ink)}
.card:hover .card__icon{animation:wiggle .6s var(--ease)}
.card--pink{background:color-mix(in srgb,var(--pink) 14%,var(--surface))}.card--blue{background:color-mix(in srgb,var(--blue) 14%,var(--surface))}
.card--green{background:color-mix(in srgb,var(--green) 16%,var(--surface))}.card--yellow{background:color-mix(in srgb,var(--yellow) 18%,var(--surface))}
.card--orange{background:color-mix(in srgb,var(--orange) 14%,var(--surface))}.card--turq{background:color-mix(in srgb,var(--turq) 14%,var(--surface))}.card--purple{background:color-mix(in srgb,var(--purple) 16%,var(--surface))}
html[data-contrast="high"] .card{background:var(--surface)}
.photo{transition:transform var(--t) var(--ease)}
.photo:hover{transform:rotate(0) scale(1.02)}
.gallery button{transition:transform var(--t) var(--ease)}
.gallery li:nth-child(3n+1) button:hover{transform:rotate(-2deg) scale(1.03)}.gallery li:nth-child(3n+2) button:hover{transform:rotate(2deg) scale(1.03)}.gallery li:nth-child(3n) button:hover{transform:scale(1.03)}

/* chiffres animés */
.stat{background:var(--surface);transition:transform var(--t) var(--ease)}
.stat:hover{transform:translateY(-4px)}
.stat:nth-child(1){--c:var(--pink)}.stat:nth-child(2){--c:var(--blue)}.stat:nth-child(3){--c:var(--green)}.stat:nth-child(4){--c:var(--orange)}
.stat{box-shadow:0 6px 0 var(--c),0 6px 0 3px var(--ink)}
html[data-contrast="high"] .stat{box-shadow:none}

/* rail horizontal (événements) : défilement par boutons + clavier, sans autoplay */
.rail{position:relative}
.rail__track{position:relative;display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.6rem .6rem 1.2rem;margin:0 -.6rem;list-style:none;scrollbar-width:thin;scrollbar-color:var(--ink) transparent;overscroll-behavior-x:contain}
.rail__track>*{scroll-snap-align:start;flex:0 0 min(85%,22rem);min-width:0}
.rail__track .event{grid-template-columns:1fr;gap:.8rem}
.rail__track .event__date{flex-direction:row;gap:.6rem;justify-content:flex-start;padding:.5rem .9rem;width:fit-content}
.rail__track .event__date b{font-size:1.4rem}
.rail__nav{display:flex;gap:.6rem;justify-content:flex-end;margin-bottom:.4rem}
.rail__btn{width:3rem;height:3rem;border-radius:50%;border:3px solid var(--ink);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 0 var(--ink);transition:transform .12s,box-shadow .12s}
.rail__btn:hover{transform:translateY(2px);box-shadow:0 2px 0 var(--ink)}
.rail__btn[disabled]{opacity:.4;cursor:default;transform:none}
.rail__btn svg{width:1.3rem;height:1.3rem}
html:not(.js) .rail__nav{display:none}

/* « Je suis… » : onglets accessibles */
.who{border:3px solid var(--ink);border-radius:var(--radius);background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}
.who__tabs{display:flex;flex-wrap:wrap;gap:.4rem;padding:.8rem;background:var(--surface-2);border-bottom:3px solid var(--ink);margin:0;list-style:none}
.who__tab{min-height:3rem;padding:.5rem 1.1rem;border:3px solid var(--ink);border-radius:999px;background:var(--surface);color:var(--ink);font:700 .95rem/1.1 var(--fd);cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:transform .15s var(--ease)}
.who__tab svg{width:1.2rem;height:1.2rem}
.who__tab:hover{transform:translateY(-2px)}
.who__tab[aria-selected="true"]{background:var(--c,var(--yellow));color:#34103A;border-color:#34103A}
.who__tab--rose{--c:var(--pink)}.who__tab--sky{--c:var(--blue)}.who__tab--mint{--c:var(--green)}.who__tab--sun{--c:var(--yellow)}
html[data-contrast="high"] .who__tab[aria-selected="true"]{background:#000;color:#fff}
html[data-contrast="high"][data-theme="dark"] .who__tab[aria-selected="true"]{background:#fff;color:#000}
.who__panel{padding:1.4rem;display:grid;grid-template-columns:1.2fr 1fr;gap:1.5rem;align-items:center}
.who__panel[hidden]{display:none}
.who__panel h3{font-size:1.35rem}
.who__panel .photo{margin:0 10px 10px 0}
@media (max-width:760px){.who__panel{grid-template-columns:1fr}}
html:not(.js) .who__panel[hidden]{display:grid}html:not(.js) .who__tabs{display:none}

/* défilé des partenaires (pause au survol, bouton pause, désactivé si « moins d'animations ») */
.marquee{position:relative;overflow:hidden;padding-block:.6rem;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
html[data-contrast="high"] .marquee{mask-image:none}
.marquee__track{display:flex;gap:2.5rem;width:max-content;list-style:none;margin:0;padding:0;animation:marquee 38s linear infinite}
.marquee:hover .marquee__track,.marquee:focus-within .marquee__track,.marquee.is-paused .marquee__track{animation-play-state:paused}
.marquee__track li{flex:none;margin:0;display:grid;place-items:center;background:#fff;border:3px solid var(--ink);border-radius:var(--radius-s);padding:.7rem 1rem;width:11rem;height:5.6rem}
.marquee__track li img{max-height:3.8rem;width:auto;object-fit:contain}
@keyframes marquee{to{transform:translateX(-50%)}}
html[data-motion="reduce"] .marquee__track,html:not(.js) .marquee__track{animation:none;flex-wrap:wrap;width:auto;justify-content:center;gap:1rem}
html[data-motion="reduce"] .marquee,html:not(.js) .marquee{mask-image:none}
html[data-motion="reduce"] .marquee__track li[aria-hidden],html:not(.js) .marquee__track li[aria-hidden]{display:none}
@media (prefers-reduced-motion:reduce){.marquee__track{animation:none;flex-wrap:wrap;width:auto;justify-content:center;gap:1rem}.marquee{mask-image:none}.marquee__track li[aria-hidden]{display:none}}
.marquee__pause{margin:.6rem auto 0;display:flex}

/* barre d'action fixe sur mobile */
.quickbar{display:none}
@media (max-width:760px){
  .quickbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:45;gap:.5rem;padding:.6rem max(.8rem,env(safe-area-inset-left)) max(.6rem,env(safe-area-inset-bottom)) max(.8rem,env(safe-area-inset-right));background:var(--surface);border-top:3px solid var(--ink);box-shadow:0 -10px 30px -18px rgba(52,16,58,.5)}
  .quickbar .btn{flex:1;min-height:3rem;padding:.5rem .6rem;font-size:.9rem}
  body{padding-bottom:5.2rem}
  .back-top{bottom:5.6rem}
}
@media print{.quickbar{display:none!important}}

/* retour en haut */
.back-top{opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity var(--t),transform var(--t)}
.back-top.is-visible{opacity:1;pointer-events:auto;transform:none}
html:not(.js) .back-top{opacity:1;pointer-events:auto;transform:none}

/* bandeau campagne : plus de relief */
.campaign{box-shadow:var(--shadow);transform:rotate(.6deg)}
.campaign:hover{transform:rotate(0)}
.campaign{transition:transform var(--t) var(--ease)}

/* pied de page : dégradé vivant */
.footer{background:linear-gradient(160deg,#34103A,#4A1256 60%,#2A1E6B)}
html[data-contrast="high"] .footer{background:#000}
.footer__grid{position:relative}

/* titres de pages intérieures */
.page-hero{background:radial-gradient(40rem 20rem at 0% 0%,var(--tint-sun),transparent 60%),radial-gradient(30rem 18rem at 100% 100%,var(--tint-rose),transparent 60%);border-bottom:0}
html[data-contrast="high"] .page-hero{background:var(--bg)}
.page-hero::after{content:"";position:absolute;right:-6rem;top:-6rem;width:18rem;height:18rem;border-radius:50%;background:var(--tint-sky);opacity:.9;z-index:-1;animation:drift 20s ease-in-out infinite alternate}
html[data-contrast="high"] .page-hero::after{display:none}

/* moins d'animations : sécurité globale (en plus des règles existantes) */
html[data-motion="reduce"] .hero__art,html[data-motion="reduce"] .blob,html[data-motion="reduce"] .confetti,html[data-motion="reduce"] .page-hero::after{animation:none!important}
svg.flip{transform:scaleX(-1)}svg.up{transform:rotate(-90deg)}
@media print{[data-reveal]{opacity:1!important;transform:none!important}.rail__track{display:grid;overflow:visible}.marquee__track{animation:none;flex-wrap:wrap;width:auto}}
.photo--fit img{aspect-ratio:4/3;object-fit:cover;width:100%}
.hero__grid>*{min-width:0}
@media (max-width:640px){.rotator--live .w{white-space:normal}h1{font-size:clamp(2rem,1.4rem + 4vw,2.6rem)}}
main{overflow-x:clip}
html[data-theme="dark"] .hl{background:none;text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:.12em;text-underline-offset:.1em}
@media (prefers-color-scheme:dark){html[data-theme="auto"] .hl{background:none;text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:.12em;text-underline-offset:.1em}}
