/* =========================================================
   Nova — base des thèmes avancés de Clochu (enfant de Lumière)
   Mises en page d'en-tête, 7 styles d'accueil, cartes en grille / mosaïque / défilement,
   séparateurs de sections, animations au défilement, mode sombre (fixe, automatique ou au choix du visiteur).
   Chaque réglage arrive comme classe sur <body> : hdr-*, motion-*, cards-*, div-*, btn-*.
   ========================================================= */
:root { --bgdark: var(--dark); --hh: 140px; --sidebar: 270px; --ease: cubic-bezier(.2, .7, .2, 1); }

/* ---------- Barre de lecture ---------- */
.nova-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--primary), var(--accent)); transform: scaleX(0); transform-origin: 0 50%; z-index: 300; pointer-events: none; }

/* ---------- En-tête collant qui se réduit ---------- */
.nova .site-header { position: sticky; top: 0; z-index: 40; transition: box-shadow .25s, background-color .25s, color .25s; }
.nova.is-scrolled .site-header { box-shadow: 0 10px 30px rgba(10, 14, 30, .10); }
@media (min-width: 1000px) {
  .nova .header-row { transition: min-height .25s var(--ease); }
  .nova.is-scrolled:not(.hdr-sidebar) .header-row { min-height: 60px; }
  .nova.is-scrolled:not(.hdr-sidebar) .brand img { width: 36px; height: 36px; }
}

/* Bouton mode sombre / clair */
.mode-toggle { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: transparent; color: inherit; cursor: pointer; display: inline-grid; place-items: center; padding: 0; }
.mode-toggle span { width: 16px; height: 16px; border-radius: 50%; box-shadow: inset -5px -3px 0 1px currentColor; transition: box-shadow .3s; }
html.is-dark .mode-toggle span { box-shadow: inset 0 0 0 8px currentColor, 0 0 0 3px transparent; }
.mode-toggle:hover { border-color: currentColor; }

/* ---------- En-tête centré ---------- */
@media (min-width: 1000px) {
  .hdr-centered .header-row { justify-content: center; position: relative; min-height: 100px; }
  .hdr-centered .brand { flex-direction: column; text-align: center; gap: 6px; }
  .hdr-centered .brand-text { align-items: center; }
  .hdr-centered .brand-text strong { font-size: 1.45rem; }
  .hdr-centered .header-tools { position: absolute; right: 28px; top: 50%; transform: translateY(-50%); }
  .hdr-centered .main-nav ul { justify-content: center; }
  .hdr-centered.is-scrolled .brand { flex-direction: row; }
}

/* ---------- En-tête partagé : menu de part et d'autre du nom ---------- */
.split-nav { display: none !important; }
@media (min-width: 1100px) {
  .hdr-split .header-row { display: grid; grid-template-columns: 1fr auto 1fr auto; gap: 24px; min-height: 92px; }
  .hdr-split .split-nav { display: block !important; border: 0 !important; }
  .hdr-split .split-nav ul { display: flex; flex-wrap: wrap; gap: 4px 20px; padding: 0; margin: 0; list-style: none; }
  .hdr-split .split-left ul { justify-content: flex-end; }
  .hdr-split .split-nav a, .hdr-split .split-nav .menu-heading { border: 0; padding: 6px 0; font-size: .95rem; }
  .hdr-split .brand { flex-direction: column; text-align: center; gap: 4px; }
  .hdr-split .brand-text { align-items: center; }
  .hdr-split .brand-text span { display: none; }
  .hdr-split #menu { display: none !important; }
  .hdr-split .site-header > .stripe { margin-top: 0; }
}

/* ---------- Menu latéral (ordinateur) ---------- */
@media (min-width: 1100px) {
  .hdr-sidebar { padding-left: var(--sidebar); }
  .hdr-sidebar .site-header { position: fixed; left: 0; top: 0; bottom: 0; width: var(--sidebar); overflow-y: auto; border-right: 1px solid var(--line); display: flex; flex-direction: column; z-index: 60; }
  .hdr-sidebar .site-header > * { flex-shrink: 0; }
  .hdr-sidebar .header-row { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 18px; min-height: 0; padding: 28px 26px 10px; max-width: none; }
  .hdr-sidebar .brand { flex-direction: column; align-items: flex-start; }
  .hdr-sidebar .brand img { width: 56px; height: 56px; }
  .hdr-sidebar .brand-text span { white-space: normal; }
  .hdr-sidebar .main-nav { border: 0; flex: 1; }
  .hdr-sidebar .main-nav ul { flex-direction: column; flex-wrap: nowrap; gap: 2px; padding: 6px 14px 20px; max-width: none; }
  .hdr-sidebar .main-nav a, .hdr-sidebar .main-nav .menu-heading { padding: 9px 12px; border-radius: 10px; font-size: 1rem; }
  .hdr-sidebar .main-nav .nav-menu > li > .menu-heading { padding: 9px 12px; }
  .hdr-sidebar .main-nav a:hover { background: color-mix(in srgb, var(--primary) 8%, transparent); }
  .hdr-sidebar .main-nav a[aria-current="page"] { background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--primary); }
  .hdr-sidebar .main-nav a[aria-current="page"]::after { left: 0; right: auto; top: 8px; bottom: 8px; width: 3px; height: auto; }
  .hdr-sidebar .main-nav .nav-menu .sub-menu { position: static; display: flex !important; box-shadow: none; background: transparent; padding: 0 0 0 12px; min-width: 0; }
  .hdr-sidebar .main-nav .nav-menu > li > .sub-toggle { display: none; }
  .hdr-sidebar .site-header > .stripe { display: none; }
  .hdr-sidebar .wa-float { right: 16px; }
}

/* ---------- En-tête transparent au-dessus de la photo d'accueil ---------- */
.hdr-overlay .site-header { margin-bottom: calc(-1 * var(--hh)); background: transparent; color: #fff; box-shadow: none; }
.hdr-overlay .site-header .brand, .hdr-overlay .site-header .brand-text strong, .hdr-overlay .main-nav a, .hdr-overlay .main-nav .nav-menu > li > .menu-heading, .hdr-overlay .sub-toggle { color: #fff; }
.hdr-overlay .site-header .brand-text span, .hdr-overlay .site-header .lang a { color: rgba(255,255,255,.82); }
.hdr-overlay .site-header .lang { border-color: rgba(255,255,255,.4); }
.hdr-overlay .main-nav { border-color: rgba(255,255,255,.2); }
.hdr-overlay .site-header > .stripe { opacity: 0; }
.hdr-overlay .hero-photo .hero-inner, .hdr-overlay .hero-card .hero-inner { padding-top: calc(var(--hh) + 40px); }
.hdr-overlay.is-scrolled .site-header { background: var(--paper); color: var(--ink); box-shadow: 0 10px 30px rgba(10,14,30,.12); }
.hdr-overlay.is-scrolled .site-header .brand, .hdr-overlay.is-scrolled .brand-text strong, .hdr-overlay.is-scrolled .main-nav a, .hdr-overlay.is-scrolled .main-nav .nav-menu > li > .menu-heading, .hdr-overlay.is-scrolled .sub-toggle { color: var(--dark); }
.hdr-overlay.is-scrolled .site-header .brand-text span, .hdr-overlay.is-scrolled .site-header .lang a { color: var(--muted); }
.hdr-overlay.is-scrolled .main-nav a[aria-current="page"] { color: var(--accent); }
@media (max-width: 999px) { .hdr-overlay .main-nav.open { background: var(--paper); border-radius: 0 0 18px 18px; } .hdr-overlay .main-nav.open a, .hdr-overlay .main-nav.open .menu-heading { color: var(--dark); } }

/* ---------- Menu plein écran ---------- */
.hdr-drawer .menu-toggle { display: inline-flex !important; }
.hdr-drawer .main-nav { display: none !important; }
.hdr-drawer .main-nav.open { display: flex !important; position: fixed; inset: 0; z-index: 250; background: var(--bgdark); color: #fff; align-items: flex-start; overflow-y: auto; border: 0; animation: nova-fade .25s var(--ease); }
.hdr-drawer .main-nav.open .nav-menu { display: flex !important; flex-direction: column; gap: 4px; padding: 80px 28px 40px; width: 100%; max-width: 900px; margin-block: auto; }
.hdr-drawer .main-nav.open a, .hdr-drawer .main-nav.open .menu-heading { color: #fff !important; border: 0; font: 700 clamp(1.6rem, 1.1rem + 2.4vw, 2.8rem)/1.2 var(--font-head); padding: 6px 0; display: inline-block; }
.hdr-drawer .main-nav.open a:hover, .hdr-drawer .main-nav.open a[aria-current="page"] { color: var(--accent) !important; }
.hdr-drawer .main-nav.open a[aria-current="page"]::after { display: none; }
.hdr-drawer .main-nav.open .sub-menu { position: static !important; display: flex !important; flex-direction: column; background: transparent !important; box-shadow: none !important; padding: 0 0 10px 18px !important; }
.hdr-drawer .main-nav.open .sub-menu a { font-size: 1.15rem !important; opacity: .85; }
.hdr-drawer .main-nav.open .sub-toggle { display: none; }
.menu-close { position: fixed; top: 18px; right: 18px; width: 52px; height: 52px; border-radius: 50%; border: 2px solid rgba(255,255,255,.4); background: transparent; color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; }
.menu-open { overflow: hidden; }
@keyframes nova-fade { from { opacity: 0; } to { opacity: 1; } }

/* ---------- Accueil : plein écran ---------- */
.hero-full .hero-inner { min-height: calc(100vh - 40px); min-height: calc(100svh - 40px); align-items: center; }
.hero-full::before { background: linear-gradient(180deg, rgba(8,10,20,.35), rgba(8,10,20,.55) 60%, rgba(8,10,20,.8)); }
.hero-full h1 { font-size: clamp(2.6rem, 1.4rem + 5vw, 5.6rem); max-width: 16ch; }
.scroll-cue { position: absolute; left: 50%; bottom: 26px; width: 30px; height: 48px; margin-left: -15px; border: 2px solid rgba(255,255,255,.75); border-radius: 18px; z-index: 2; }
.scroll-cue span { position: absolute; left: 50%; top: 9px; width: 4px; height: 9px; margin-left: -2px; border-radius: 2px; background: #fff; animation: nova-cue 1.8s infinite; }
@keyframes nova-cue { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(14px); opacity: 0; } 100% { opacity: 0; } }

/* ---------- Accueil : photo et carte flottante ---------- */
.hero-card { background: var(--bgdark) var(--hero) center/cover no-repeat; color: var(--ink); }
.hero-card .hero-inner { min-height: min(80vh, 720px); display: flex; align-items: flex-end; }
.hero-card .hero-panel { background: var(--paper); color: var(--ink); border-radius: calc(var(--radius) + 10px); padding: clamp(24px, 4vw, 44px); max-width: 620px; box-shadow: 0 30px 70px rgba(0,0,0,.28); }
.hero-card .hero-panel h1 { color: var(--dark); }
.hero-card .hero-panel .tagline { color: var(--accent); opacity: 1; font-style: normal; font-weight: 700; }
.hero-card .hero-panel .hero-lede { color: var(--muted); opacity: 1; }
.hero-card .hero-panel .btn-ghost { color: var(--dark); border-color: var(--line); }
.hero-card .hero-panel .btn-ghost:hover { background: var(--dark); color: var(--paper); }
@media (max-width: 700px) { .hero-card .hero-inner { min-height: 0; padding-top: 220px; } }

/* ---------- Accueil : éditorial ---------- */
.hero-editorial { background: var(--paper); color: var(--ink); overflow: visible; }
.hero-editorial .hero-inner { padding-bottom: 30px; }
.hero-editorial h1 { color: var(--dark); font-size: clamp(2.6rem, 1.2rem + 6vw, 6.6rem); max-width: 14ch; line-height: .98; letter-spacing: -.035em; }
.hero-editorial .tagline { color: var(--accent); opacity: 1; font-style: normal; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; font-size: .8rem; }
.hero-editorial .hero-lede { color: var(--muted); opacity: 1; }
.hero-editorial .btn-ghost { color: var(--dark); border-color: var(--line); }
.hero-editorial .btn-ghost:hover { background: var(--dark); color: var(--paper); }
@media (min-width: 900px) { .hero-editorial .hero-text { display: grid; grid-template-columns: 1.5fr 1fr; column-gap: 48px; align-items: end; } .hero-editorial .tagline, .hero-editorial h1 { grid-column: 1 / -1; } .hero-editorial .hero-lede { grid-column: 1; margin: 0; } .hero-editorial .hero-actions { grid-column: 2; margin: 0; justify-content: flex-end; } }
.hero-wide { margin: 0 0 clamp(30px, 5vw, 60px); }
.hero-wide img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: calc(var(--radius) + 6px); }
@media (max-width: 700px) { .hero-wide img { aspect-ratio: 4 / 3; } }

/* ---------- Accueil : mosaïque ---------- */
.hero-bento { background: var(--light); color: var(--ink); }
.bento { display: grid; gap: 14px; padding-top: clamp(24px, 4vw, 44px); padding-bottom: clamp(24px, 4vw, 44px); grid-template-columns: 1fr 1fr; }
.b-tile { border-radius: calc(var(--radius) + 8px); padding: 22px; background: var(--paper); color: var(--ink); text-decoration: none; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; min-height: 140px; overflow: hidden; position: relative; border: 1px solid var(--line); }
.b-main { grid-column: 1 / -1; background: var(--primary); color: #fff; border: 0; padding: clamp(24px, 4vw, 46px); justify-content: center; }
.b-main h1 { color: #fff; font-size: clamp(2rem, 1.2rem + 3vw, 3.6rem); margin: 0 0 .3em; }
.b-main .tagline { opacity: .9; margin-bottom: .6em; }
.b-main .hero-lede { opacity: .92; }
.b-photo { padding: 0; grid-column: 1 / -1; min-height: 220px; }
.b-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.b-stat strong, .b-prog strong { font: 800 clamp(2rem, 1.4rem + 2vw, 3rem)/1 var(--font-head); color: var(--primary); }
.b-stat span, .b-prog span { color: var(--muted); }
.b-stat2 { background: var(--accent); color: var(--on-accent, #fff); border: 0; }
.b-stat2 strong, .b-stat2 span { color: inherit; }
.b-kicker { font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); margin-bottom: auto; }
.b-event .datebox { margin-bottom: 4px; }
.b-event strong { font-size: 1.1rem; }
a.b-tile:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(10,14,30,.12); }
a.b-tile { transition: transform .2s var(--ease), box-shadow .2s; }
@media (min-width: 900px) {
  .bento { grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(150px, auto); }
  .b-main { grid-column: 1 / 3; grid-row: 1 / 3; }
  .b-photo { grid-column: 3 / 5; grid-row: 1 / 3; min-height: 0; }
  .b-main:only-child { grid-column: 1 / -1; }
}

/* ---------- Cartes : grille, mosaïque, défilement ---------- */
.cards-grid .program-list, .cards-bento .program-list { display: grid; gap: 16px; border-top: 0; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.cards-grid .program a, .cards-bento .program a { height: 100%; background: var(--paper); border: 1px solid var(--line); border-radius: calc(var(--radius) + 4px); padding: 24px 22px 22px 30px; }
.cards-grid .program a::before, .cards-bento .program a::before { left: 14px; top: 24px; bottom: 24px; }
@media (min-width: 900px) {
  .cards-bento .program-list { grid-template-columns: repeat(3, 1fr); }
  .cards-bento .program:first-child { grid-column: span 2; grid-row: span 2; }
  .cards-bento .program:first-child a { background: var(--primary); color: #fff; border: 0; display: flex; flex-direction: column; justify-content: flex-end; min-height: 260px; }
  .cards-bento .program:first-child h3 { color: #fff; font-size: 1.8rem; }
  .cards-bento .program:first-child p { color: rgba(255,255,255,.85); }
  .cards-bento .program:first-child a::before { background: var(--accent); }
  .cards-bento .post-grid { grid-template-columns: 2fr 1fr 1fr; }
  .cards-bento .post-card:first-child img, .cards-bento .post-card:first-child .noimg { aspect-ratio: 4 / 3; }
}
.cards-scroll .program-list, .cards-scroll .post-grid { display: grid !important; grid-auto-flow: column; grid-template-columns: none !important; grid-auto-columns: min(82%, 330px); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 16px; border-top: 0; scrollbar-width: thin; }
.cards-scroll .program, .cards-scroll .post-card { scroll-snap-align: start; }
.cards-scroll .program a { height: 100%; background: var(--light); border: 0; border-radius: calc(var(--radius) + 4px); padding: 24px 22px 22px 30px; }
.cards-scroll .program a::before { left: 14px; }

/* ---------- Séparateurs de sections ---------- */
.div-wave .section-tint, .div-wave .cta-band, .div-wave .stats-band, .div-wave .site-footer,
.div-slant .section-tint, .div-slant .cta-band, .div-slant .stats-band, .div-slant .site-footer,
.div-curve .section-tint, .div-curve .cta-band, .div-curve .stats-band, .div-curve .site-footer { position: relative; }
.div-wave .section-tint::before, .div-wave .cta-band::before, .div-wave .stats-band::before, .div-wave .site-footer::before,
.div-slant .section-tint::before, .div-slant .cta-band::before, .div-slant .stats-band::before, .div-slant .site-footer::before,
.div-curve .section-tint::before, .div-curve .cta-band::before, .div-curve .stats-band::before, .div-curve .site-footer::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: calc(100% - 1px); height: clamp(22px, 4vw, 48px); background: inherit; background-position: bottom; pointer-events: none;
}
.div-wave :is(.section-tint, .cta-band, .stats-band, .site-footer)::before { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 48' preserveAspectRatio='none'%3E%3Cpath d='M0 48V24C180 4 360 4 540 22s360 26 540 8 270-24 360-12v26z'/%3E%3C/svg%3E") center / 100% 100%; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 48' preserveAspectRatio='none'%3E%3Cpath d='M0 48V24C180 4 360 4 540 22s360 26 540 8 270-24 360-12v26z'/%3E%3C/svg%3E") center / 100% 100%; }
.div-slant :is(.section-tint, .cta-band, .stats-band, .site-footer)::before { clip-path: polygon(0 100%, 100% 0, 100% 100%); }
.div-curve :is(.section-tint, .cta-band, .stats-band, .site-footer)::before { clip-path: ellipse(62% 100% at 50% 100%); }
.div-wave .site-footer > .stripe, .div-slant .site-footer > .stripe, .div-curve .site-footer > .stripe { display: none; }

/* ---------- Boutons (réglage du client) ---------- */
.btn-pill .btn { border-radius: 999px !important; }
.btn-soft .btn { border-radius: 12px !important; }
.btn-square .btn { border-radius: 0 !important; }

/* ---------- Animations ---------- */
.js-motion .rv { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--ease) var(--rv-delay, 0ms), transform .7s var(--ease) var(--rv-delay, 0ms); }
.js-motion .rv.in { opacity: 1; transform: none; }
.motion-expressive.js-motion .rv, .js-motion .motion-expressive .rv { transform: translateY(36px) scale(.97); }
html.js-motion body.motion-expressive .rv:not(.in) { transform: translateY(36px) scale(.97); }
html.js-motion body.motion-expressive .rv.in { transform: none; }
.motion-subtle .program a, .motion-subtle .post-card a, .motion-expressive .program a, .motion-expressive .post-card a { transition: transform .25s var(--ease), box-shadow .25s, border-color .2s; }
.motion-subtle .program a:hover, .motion-subtle .post-card a:hover { transform: translateY(-3px); }
.motion-expressive .program a:hover, .motion-expressive .post-card a:hover { transform: translateY(-6px) rotate(-.4deg); box-shadow: 0 22px 44px rgba(10,14,30,.14); }
.motion-expressive .post-card img, .motion-expressive .gallery img, .motion-expressive .people img { transition: transform .6s var(--ease); }
.motion-expressive .post-card a { overflow: hidden; }
.motion-expressive .post-card a:hover img { transform: scale(1.05); }
.motion-expressive .hero-photo, .motion-expressive .hero-card { background-position: center calc(50% + var(--scroll, 0) * .3px); }
.motion-expressive .btn-accent { position: relative; overflow: hidden; }
.motion-expressive .btn-accent::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%); transform: translateX(-120%); transition: transform .7s var(--ease); }
.motion-expressive .btn-accent:hover::after { transform: translateX(120%); }
@media (prefers-reduced-motion: reduce) { .js-motion .rv { opacity: 1 !important; transform: none !important; } .scroll-cue span { animation: none; } }
@media print { .rv { opacity: 1 !important; transform: none !important; } .nova-progress, .mode-toggle { display: none; } }

/* =========================================================
   Mode sombre : les couleurs se recalculent depuis la palette du thème
   ========================================================= */
html.is-dark {
  color-scheme: dark;
  --paper: color-mix(in srgb, var(--primary) 9%, #0B0D12);
  --light: color-mix(in srgb, var(--primary) 15%, #141821);
  --ink: #E8EBF2; --muted: #A6ADBD; --line: rgba(255,255,255,.12);
  --dark: #F2F4F8;
  --bgdark: color-mix(in srgb, var(--primary) 20%, #05060A);
  --sun: #F5C451;
}
html.is-dark body { background: var(--paper); color: var(--ink); }
html.is-dark a { color: color-mix(in srgb, var(--accent) 60%, #fff); }
html.is-dark .brand, html.is-dark .brand-text strong, html.is-dark .main-nav a:not([aria-current]), html.is-dark .site-footer a { color: var(--ink); }
html.is-dark .btn { color: var(--ink); border-color: color-mix(in srgb, var(--ink) 35%, transparent); }
html.is-dark .btn:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
html.is-dark .btn-accent { color: var(--on-accent, #fff); border-color: var(--accent); }
html.is-dark .btn-accent:hover { background: color-mix(in srgb, var(--accent) 80%, #fff); color: var(--on-accent, #fff); }
html.is-dark .btn-light { background: var(--ink); color: var(--paper); }
html.is-dark :is(.skip, .stats-band, .filters a[aria-current], .video-load, .video iframe, .site-footer, .style-sombre, .blk-sombre, .slider, .top-bar, .ep-embed .video-load, .ep-embed iframe) { background-color: var(--bgdark); }
html.is-dark .site-footer { background: var(--bgdark); }
html.is-dark .stats-band { color: #fff; }
html.is-dark .menu-toggle { background: var(--accent); color: var(--on-accent, #fff); }
html.is-dark .form input, html.is-dark .form textarea, html.is-dark .form select, html.is-dark .bcontact-form input, html.is-dark .bcontact-form textarea { background: var(--light); color: var(--ink); border-color: var(--line); }
html.is-dark .pk-item, html.is-dark .ep-a11y-p { background: var(--light) !important; color: var(--ink) !important; }
html.is-dark .alert.success, html.is-dark .pk-ok { background: #123524; color: #9BE7B8; }
html.is-dark .alert.error, html.is-dark .pk-err { background: #3A1512; color: #FFB4A8; }
html.is-dark .logos img { filter: grayscale(1) invert(1); opacity: .7; }
html.is-dark .lb button, html.is-dark .bembed iframe, html.is-dark .ep-embed-badge, html.is-dark .sl-prev, html.is-dark .sl-next { background: var(--light); color: var(--ink); }
html.is-dark .avatar { color: var(--accent); }
html.is-dark .hero:not(.hero-photo):not(.hero-card):not(.hero-bento):not(.hero-editorial) .btn-ghost:hover { background: #fff; color: #111; }
html.is-dark .hero-card .hero-panel { background: var(--light); }
html.is-dark .mode-toggle { border-color: var(--line); }
html.is-dark .main-nav .nav-menu .sub-menu { background: var(--light) !important; }
html.is-dark .datebox { color: #fff; }
html.is-dark .b-main, html.is-dark .cards-bento .program:first-child a { background: color-mix(in srgb, var(--primary) 70%, #000); }
html.is-dark img { filter: brightness(.94); }

/* ---------- Corrections d'ensemble ---------- */
@media (min-width: 1100px) {
  .hdr-sidebar .main-nav .nav-menu .sub-menu a, .hdr-sidebar .main-nav .nav-menu .sub-menu .menu-heading { color: inherit !important; opacity: .85; padding: 7px 12px !important; }
  .hdr-sidebar .main-nav .nav-menu > li { color: inherit; }
  .hdr-sidebar .main-nav a[aria-current="page"] { color: inherit !important; font-weight: 800; }
  .hdr-split .split-nav a, .hdr-split .split-nav .menu-heading { font-size: .88rem !important; letter-spacing: .02em; }
  .hdr-split .split-nav ul { gap: 2px 16px !important; }
}
html.is-dark .main-nav a[aria-current="page"]:not(:where(.hdr-drawer *)) { color: color-mix(in srgb, var(--accent) 55%, #fff); }
html.is-dark .hero .tagline, html.is-dark .hero-editorial .tagline { color: color-mix(in srgb, var(--accent) 50%, #fff); }
html.is-dark .blk .btn-light, html.is-dark .blk .btn-ghost:hover, html.is-dark .btn-ghost:hover { color: #14161C !important; }
html.is-dark .blk .btn-light { background: #fff; border-color: #fff; }
