/* =============================================================
   NIGHT MARKET - marché de nuit
   Enseigne lumineuse, tableau de menu rétroéclairé, tableau des départs.
   Contrastes (AA) : encre #F4F1FF / nuit #0D0E1A 17:1 ; gris #ABA9C9 8,4:1 ;
   sodium #FFD23F avec encre 13:1 ; rose #FF4F9A sur nuit 6,2:1.
   ============================================================= */
.sr-d-nuit {
  --sr-open-text: #43F0D8;
  --sr-bar: #05060D;
  --sr-bar-ink: #F4F1FF;
  --sr-bar-accent: #FFD23F;
  /* barre panier du plugin */
  --sr-bg: #0D0E1A;
  --sr-surface: #181A2E;
  --sr-surface2: #12131F;
  --sr-ink: #F4F1FF;
  --sr-muted: #ABA9C9;
  --sr-line: #2C2F4A;
  --sr-accent: #FFD23F;
  --sr-on-accent: #0D0E1A;
  --sr-accent-text: #FFD23F;
  --sr-accent2: #FF4F9A;
  --sr-on-accent2: #0D0E1A;
  --sr-accent2-text: #FF4F9A;
  --sr-cyan: #43F0D8;
  --sr-radius: 14px;
  --sr-radius-sm: 10px;
  --sr-bw: 1px;
  --sr-shadow: none;
  --sr-fdisp: "Big Shoulders Display", Impact, "Arial Narrow", sans-serif;
  --sr-fbody: "Atkinson Hyperlegible", system-ui, sans-serif;
  --sr-focus: #FFD23F;
  --sr-stagger: 70ms;
  --glow-y: 0 0 18px rgba(255, 210, 63, .55), 0 0 42px rgba(255, 210, 63, .25);
  --glow-p: 0 0 18px rgba(255, 79, 154, .6), 0 0 42px rgba(255, 79, 154, .28);
}

.sr-d-nuit h1:not(.sr-island:not(.sr-d-nuit) *),
.sr-d-nuit h2:not(.sr-island:not(.sr-d-nuit) *),
.sr-d-nuit h3:not(.sr-island:not(.sr-d-nuit) *) {
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .01em;
}

.sr-d-nuit em:not(.sr-island:not(.sr-d-nuit) *) {
  font-style: normal;
}

/* ---------- Boutons ---------- */
.sr-d-nuit .btn:not(.sr-island:not(.sr-d-nuit) *) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 24px;
  border-radius: 999px;
  font-family: var(--sr-fbody);
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform var(--sr-dur-fast) var(--sr-ease-out), box-shadow var(--sr-dur) ease, background-color var(--sr-dur) ease, color var(--sr-dur) ease;
}

.sr-d-nuit .btn:active:not(.sr-island:not(.sr-d-nuit) *) {
  transform: scale(.97);
}

.sr-d-nuit .btn--sodium:not(.sr-island:not(.sr-d-nuit) *) {
  background: var(--sr-accent);
  color: var(--sr-on-accent);
}

.sr-d-nuit .btn--neon:not(.sr-island:not(.sr-d-nuit) *) {
  background: var(--sr-accent2);
  color: var(--sr-on-accent2);
}

.sr-d-nuit .btn--line:not(.sr-island:not(.sr-d-nuit) *) {
  background: transparent;
  color: var(--sr-ink);
  border-color: var(--sr-line);
}

.sr-d-nuit .btn--sm:not(.sr-island:not(.sr-d-nuit) *) {
  padding: 10px 16px;
  font-size: 14px;
}

@media (hover:hover) and (pointer:fine) {
  .sr-d-nuit .btn--sodium:hover:not(.sr-island:not(.sr-d-nuit) *) {
    box-shadow: var(--glow-y);
  }

  .sr-d-nuit .btn--neon:hover:not(.sr-island:not(.sr-d-nuit) *) {
    box-shadow: var(--glow-p);
  }

  .sr-d-nuit .btn--line:hover:not(.sr-island:not(.sr-d-nuit) *) {
    border-color: var(--sr-ink);
  }
}

.sr-d-nuit .eyebrow:not(.sr-island:not(.sr-d-nuit) *) {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--sr-cyan);
}

.sr-d-nuit .flag:not(.sr-island:not(.sr-d-nuit) *) {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  background: var(--sr-accent);
  color: var(--sr-on-accent);
}

.sr-d-nuit .flag--neon:not(.sr-island:not(.sr-d-nuit) *) {
  background: var(--sr-accent2);
  color: var(--sr-on-accent2);
}

.sr-d-nuit .flag--line:not(.sr-island:not(.sr-d-nuit) *) {
  background: transparent;
  color: var(--sr-cyan);
  box-shadow: inset 0 0 0 1px currentColor;
}

.sr-d-nuit .price:not(.sr-island:not(.sr-d-nuit) *) {
  font-family: var(--sr-fdisp);
  font-weight: 800;
  font-size: 24px;
  color: var(--sr-accent);
  white-space: nowrap;
}

.sr-d-nuit .shead h2 em:not(.sr-island:not(.sr-d-nuit) *),
.sr-d-nuit .cta__title em:not(.sr-island:not(.sr-d-nuit) *),
.sr-d-nuit .hero__title em:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-accent);
  text-shadow: var(--glow-y);
}

.sr-d-nuit .shead h2 em:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-accent2);
  text-shadow: var(--glow-p);
}

/* ---------- En-tête ---------- */
.sr-d-nuit .sr-header:not(.sr-island:not(.sr-d-nuit) *) {
  position: sticky;
  top: var(--sr-top);
  z-index: 100;
  border-bottom: 1px solid var(--sr-line);
}

/* Flou sur un pseudo-élément : un backdrop-filter sur l'en-tête lui-même
   piégerait le panneau mobile (position:fixed) dans l'en-tête. */
.sr-d-nuit .sr-header:not(.sr-island:not(.sr-d-nuit) *)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(13, 14, 26, .96);
  backdrop-filter: saturate(1.4) blur(12px);
  -webkit-backdrop-filter: saturate(1.4) blur(12px);
}

.sr-d-nuit .sr-header__bar:not(.sr-island:not(.sr-d-nuit) *) {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 72px;
}

.sr-d-nuit .logo:not(.sr-island:not(.sr-d-nuit) *) {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--sr-fdisp);
  font-weight: 900;
  font-size: 30px;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--sr-ink);
}

.sr-d-nuit .logo__dot:not(.sr-island:not(.sr-d-nuit) *) {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--sr-accent2);
  box-shadow: var(--glow-p);
}

.sr-d-nuit .sr-header__panel:not(.sr-island:not(.sr-d-nuit) *) {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-left: auto;
}

.sr-d-nuit .sr-menu__list:not(.sr-island:not(.sr-d-nuit) *) {
  display: flex;
  gap: 4px;
}

.sr-d-nuit .sr-menu__list a:not(.sr-island:not(.sr-d-nuit) *) {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 12px;
  font-weight: 700;
  text-decoration: none;
  color: var(--sr-muted);
  border-radius: 8px;
  transition: color var(--sr-dur) ease;
}

.sr-d-nuit .sr-menu__list a[aria-current="page"]:not(.sr-island:not(.sr-d-nuit) *),
.sr-d-nuit .sr-menu__list .current-menu-item>a:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-accent);
}

@media (hover:hover) and (pointer:fine) {
  .sr-d-nuit .sr-menu__list a:hover:not(.sr-island:not(.sr-d-nuit) *) {
    color: var(--sr-ink);
  }
}

.sr-d-nuit .sr-header__extra .sr-open:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-cyan);
}

.sr-d-nuit .sr-header__actions:not(.sr-island:not(.sr-d-nuit) *) {
  display: flex;
  align-items: center;
  gap: 10px;
}

.sr-d-nuit .sr-cart-link:not(.sr-island:not(.sr-d-nuit) *) {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--sr-line);
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  color: var(--sr-ink);
}

.sr-d-nuit .sr-cart-link.is-bump:not(.sr-island:not(.sr-d-nuit) *) {
  animation: nuit-bump 420ms var(--sr-ease-out);
}

@keyframes nuit-bump {
  40% {
    transform: scale(1.12);
  }
}

.sr-d-nuit .sr-burger:not(.sr-island:not(.sr-d-nuit) *) {
  display: none;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--sr-line);
  background: transparent;
  color: var(--sr-ink);
  font-weight: 700;
  cursor: pointer;
}

.sr-d-nuit .sr-burger__bars:not(.sr-island:not(.sr-d-nuit) *) {
  display: grid;
  gap: 4px;
  width: 18px;
}

.sr-d-nuit .sr-burger__bars span:not(.sr-island:not(.sr-d-nuit) *) {
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transition: transform var(--sr-dur) var(--sr-ease-out), opacity var(--sr-dur) ease;
}

.sr-d-nuit .is-open .sr-burger__bars span:nth-child(1):not(.sr-island:not(.sr-d-nuit) *) {
  transform: translateY(6px) rotate(45deg);
}

.sr-d-nuit .is-open .sr-burger__bars span:nth-child(2):not(.sr-island:not(.sr-d-nuit) *) {
  opacity: 0;
}

.sr-d-nuit .is-open .sr-burger__bars span:nth-child(3):not(.sr-island:not(.sr-d-nuit) *) {
  transform: translateY(-6px) rotate(-45deg);
}

@media (max-width:420px) {
  .sr-d-nuit .logo:not(.sr-island:not(.sr-d-nuit) *) {
    font-size: 24px;
    gap: 6px;
  }

  .sr-d-nuit .sr-header__bar:not(.sr-island:not(.sr-d-nuit) *) {
    gap: 12px;
  }
}

@media (max-width:960px) {
  .sr-d-nuit .sr-burger:not(.sr-island:not(.sr-d-nuit) *) {
    display: inline-flex;
  }

  .sr-d-nuit .sr-header__actions .btn:not(.sr-island:not(.sr-d-nuit) *) {
    display: none;
  }

  .sr-d-nuit .sr-header__panel:not(.sr-island:not(.sr-d-nuit) *) {
    position: fixed;
    inset: calc(72px + var(--sr-top)) 0 0 0;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 28px;
    padding: 32px var(--sr-gutter);
    background: var(--sr-bg);
    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 220ms var(--sr-ease-out), transform 220ms var(--sr-ease-out), visibility 0s linear 220ms;
    overflow: auto;
  }

  .sr-d-nuit .is-open .sr-header__panel:not(.sr-island:not(.sr-d-nuit) *) {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition-delay: 0s;
  }

  .sr-d-nuit .sr-menu__list:not(.sr-island:not(.sr-d-nuit) *) {
    flex-direction: column;
    gap: 0;
  }

  .sr-d-nuit .sr-menu__list a:not(.sr-island:not(.sr-d-nuit) *) {
    font-family: var(--sr-fdisp);
    font-weight: 900;
    font-size: clamp(40px, 11vw, 64px);
    text-transform: uppercase;
    color: var(--sr-ink);
    padding: 0;
    min-height: 0;
    line-height: 1.1;
  }

  .sr-nav-open {
    overflow: hidden;
  }

  .sr-d-nuit .sr-cart-link span:not(.sr-island:not(.sr-d-nuit) *) {
    display: none;
  }
}

/* ---------- Hero : enseigne ---------- */
.sr-d-nuit .hero:not(.sr-island:not(.sr-d-nuit) *) {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--sr-line);
}

.sr-d-nuit .hero__glow:not(.sr-island:not(.sr-d-nuit) *) {
  position: absolute;
  inset: -20%;
  background: radial-gradient(40% 40% at 78% 30%, rgba(255, 79, 154, .22), transparent 70%), radial-gradient(40% 45% at 12% 85%, rgba(255, 210, 63, .14), transparent 70%);
  pointer-events: none;
}

.sr-d-nuit .hero__in:not(.sr-island:not(.sr-d-nuit) *) {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
  min-height: min(calc(100svh - 72px - var(--sr-top)), 920px);
  padding-block: clamp(40px, 7vw, 96px);
}

.sr-d-nuit .hero__open:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-cyan);
  margin-bottom: 18px;
}

.sr-d-nuit .hero__title:not(.sr-island:not(.sr-d-nuit) *) {
  font-size: clamp(64px, 11vw, 176px);
  line-height: .86;
  letter-spacing: .005em;
}

.sr-d-nuit .hero__lead:not(.sr-island:not(.sr-d-nuit) *) {
  max-width: 46ch;
  margin: 26px 0 30px;
  color: var(--sr-muted);
  font-size: clamp(17px, .6vw + 15px, 21px);
}

.sr-d-nuit .hero__cta:not(.sr-island:not(.sr-d-nuit) *) {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.sr-d-nuit .hero__board:not(.sr-island:not(.sr-d-nuit) *) {
  position: relative;
}

.sr-d-nuit .hero__photo:not(.sr-island:not(.sr-d-nuit) *) {
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid var(--sr-line);
  aspect-ratio: 4/5;
  max-height: 72svh;
}

.sr-d-nuit .hero__photo img:not(.sr-island:not(.sr-d-nuit) *) {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.05) contrast(1.05);
}

.sr-d-nuit .hero__mini:not(.sr-island:not(.sr-d-nuit) *) {
  position: absolute;
  left: -28px;
  bottom: 28px;
  width: min(320px, 80%);
  padding: 16px 18px;
  border-radius: 14px;
  background: rgba(13, 14, 26, .9);
  border: 1px solid var(--sr-accent);
  box-shadow: var(--glow-y);
}

.sr-d-nuit .hero__mini-h:not(.sr-island:not(.sr-d-nuit) *) {
  margin: 0 0 8px;
  font-family: var(--sr-fdisp);
  font-weight: 900;
  font-size: 18px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--sr-accent);
}

.sr-d-nuit .hero__mini li:not(.sr-island:not(.sr-d-nuit) *) {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 5px 0;
  font-weight: 700;
}

.sr-d-nuit .hero__mini .lead:not(.sr-island:not(.sr-d-nuit) *) {
  flex: 1;
  border-bottom: 2px dotted var(--sr-line);
  transform: translateY(-4px);
}

.sr-d-nuit .hero__mini .price:not(.sr-island:not(.sr-d-nuit) *) {
  font-size: 20px;
}

@media (max-width:860px) {
  .sr-d-nuit .hero__in:not(.sr-island:not(.sr-d-nuit) *) {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .sr-d-nuit .hero__photo:not(.sr-island:not(.sr-d-nuit) *) {
    aspect-ratio: 4/3;
  }

  .sr-d-nuit .hero__mini:not(.sr-island:not(.sr-d-nuit) *) {
    position: relative;
    left: auto;
    bottom: auto;
    width: auto;
    margin: -36px 12px 0;
  }
}

/* ---------- Bandeau ---------- */
.sr-d-nuit .ticker:not(.sr-island:not(.sr-d-nuit) *) {
  overflow: hidden;
  background: var(--sr-accent);
  color: var(--sr-on-accent);
  border-block: 1px solid var(--sr-accent);
}

.sr-d-nuit .ticker__track:not(.sr-island:not(.sr-d-nuit) *) {
  display: flex;
  width: max-content;
  gap: 28px;
  padding: 14px 0;
  font-family: var(--sr-fdisp);
  font-weight: 900;
  font-size: clamp(22px, 2.6vw, 34px);
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
  animation: nuit-tick 30s linear infinite;
}

.sr-d-nuit .ticker__sep:not(.sr-island:not(.sr-d-nuit) *) {
  opacity: .6;
}

@keyframes nuit-tick {
  to {
    transform: translateX(-50%);
  }
}

/* ---------- Carte : tableau ---------- */
.sr-d-nuit .board-frame:not(.sr-island:not(.sr-d-nuit) *) {
  position: relative;
  padding: clamp(14px, 2vw, 28px);
  border-radius: 22px;
  background: linear-gradient(180deg, #14162A, #0F1020);
  border: 1px solid var(--sr-line);
  box-shadow: inset 0 0 0 6px #0B0C16, 0 30px 80px -40px rgba(255, 210, 63, .35);
}

.sr-d-nuit .board:not(.sr-island:not(.sr-d-nuit) *) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(20px, 3vw, 48px);
}

.sr-d-nuit .board__row:not(.sr-island:not(.sr-d-nuit) *) {
  border-bottom: 1px dashed var(--sr-line);
}

.sr-d-nuit .board__row a:not(.sr-island:not(.sr-d-nuit) *) {
  display: grid;
  grid-template-columns: 64px minmax(0, auto) 1fr auto 32px;
  align-items: center;
  gap: 14px;
  padding: 14px 4px;
  text-decoration: none;
  color: var(--sr-ink);
  border-radius: 10px;
  transition: background-color var(--sr-dur) ease;
}

.sr-d-nuit .board__thumb img:not(.sr-island:not(.sr-d-nuit) *) {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--sr-line);
}

.sr-d-nuit .board__main:not(.sr-island:not(.sr-d-nuit) *) {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.sr-d-nuit .board__name:not(.sr-island:not(.sr-d-nuit) *) {
  font-family: var(--sr-fdisp);
  font-weight: 900;
  font-size: clamp(22px, 2vw, 28px);
  text-transform: uppercase;
  line-height: 1;
}

.sr-d-nuit .board__main .flag:not(.sr-island:not(.sr-d-nuit) *) {
  justify-self: start;
}

.sr-d-nuit .board__desc:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-muted);
  font-size: 14px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.sr-d-nuit .board__lead:not(.sr-island:not(.sr-d-nuit) *) {
  align-self: center;
  border-bottom: 2px dotted var(--sr-line);
  min-width: 16px;
}

.sr-d-nuit .board__add:not(.sr-island:not(.sr-d-nuit) *) {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  border: 1px solid var(--sr-accent);
  color: var(--sr-accent);
  transition: background-color var(--sr-dur) ease, color var(--sr-dur) ease;
}

@media (hover:hover) and (pointer:fine) {
  .sr-d-nuit .board__row a:hover:not(.sr-island:not(.sr-d-nuit) *) {
    background: rgba(255, 210, 63, .06);
  }

  .sr-d-nuit .board__row a:hover .board__add:not(.sr-island:not(.sr-d-nuit) *) {
    background: var(--sr-accent);
    color: var(--sr-on-accent);
  }
}

.sr-d-nuit .board__row a:focus-visible:not(.sr-island:not(.sr-d-nuit) *) {
  outline-offset: -3px;
}

@media (max-width:900px) {
  .sr-d-nuit .board:not(.sr-island:not(.sr-d-nuit) *) {
    grid-template-columns: 1fr;
  }
}

@media (max-width:520px) {
  .sr-d-nuit .board__row a:not(.sr-island:not(.sr-d-nuit) *) {
    grid-template-columns: 52px 1fr auto;
  }

  .sr-d-nuit .board__thumb img:not(.sr-island:not(.sr-d-nuit) *) {
    width: 52px;
    height: 52px;
  }

  .sr-d-nuit .board__lead:not(.sr-island:not(.sr-d-nuit) *),
  .sr-d-nuit .board__add:not(.sr-island:not(.sr-d-nuit) *) {
    display: none;
  }
}

.sr-d-nuit .sr-menu-cat:not(.sr-island:not(.sr-d-nuit) *) {
  margin-bottom: 48px;
}

.sr-d-nuit .sr-menu-cat__h:not(.sr-island:not(.sr-d-nuit) *) {
  font-size: clamp(30px, 4vw, 48px);
  margin-bottom: 16px;
  color: var(--sr-accent);
}

/* ---------- Étapes : enseignes ---------- */
.sr-d-nuit .signs:not(.sr-island:not(.sr-d-nuit) *) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 24px);
  counter-reset: none;
}

.sr-d-nuit .sign:not(.sr-island:not(.sr-d-nuit) *) {
  position: relative;
  padding: 28px 24px 26px;
  border-radius: 18px;
  border: 1px solid var(--sr-line);
  background: var(--sr-surface);
}

.sr-d-nuit .sign__n:not(.sr-island:not(.sr-d-nuit) *) {
  display: block;
  font-family: var(--sr-fdisp);
  font-weight: 900;
  font-size: clamp(72px, 8vw, 112px);
  line-height: .8;
  color: transparent;
  -webkit-text-stroke: 2px var(--sr-accent2);
  margin-bottom: 18px;
}

.sr-d-nuit .sign h3:not(.sr-island:not(.sr-d-nuit) *) {
  font-size: clamp(24px, 2.4vw, 32px);
  margin-bottom: 10px;
}

.sr-d-nuit .sign p:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-muted);
}

@media (max-width:860px) {
  .sr-d-nuit .signs:not(.sr-island:not(.sr-d-nuit) *) {
    grid-template-columns: 1fr;
  }
}

/* ---------- Spots : tableau des départs ---------- */
.sr-d-nuit .dep:not(.sr-island:not(.sr-d-nuit) *) {
  border-radius: 18px;
  border: 1px solid var(--sr-line);
  overflow: hidden;
  background: #0A0B14;
}

.sr-d-nuit .dep__head:not(.sr-island:not(.sr-d-nuit) *),
.sr-d-nuit .dep__row:not(.sr-island:not(.sr-d-nuit) *) {
  display: grid;
  grid-template-columns: 1.1fr 1.6fr 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 14px 22px;
}

.sr-d-nuit .dep__head:not(.sr-island:not(.sr-d-nuit) *) {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--sr-muted);
  background: var(--sr-surface);
}

.sr-d-nuit .dep__row:not(.sr-island:not(.sr-d-nuit) *) {
  border-top: 1px solid var(--sr-line);
}

.sr-d-nuit .dep__name:not(.sr-island:not(.sr-d-nuit) *) {
  font-family: var(--sr-fdisp);
  font-weight: 900;
  font-size: 26px;
  text-transform: uppercase;
  color: var(--sr-accent);
}

.sr-d-nuit .dep__addr small:not(.sr-island:not(.sr-d-nuit) *) {
  display: block;
  color: var(--sr-muted);
  font-size: 13px;
}

.sr-d-nuit .dep__hours:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-cyan);
  font-weight: 700;
  font-size: 14px;
}

.sr-d-nuit .dep__go:not(.sr-island:not(.sr-d-nuit) *) {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid var(--sr-line);
  font-weight: 700;
  text-decoration: none;
  color: var(--sr-ink);
  white-space: nowrap;
}

@media (hover:hover) and (pointer:fine) {
  .sr-d-nuit .dep__go:hover:not(.sr-island:not(.sr-d-nuit) *) {
    border-color: var(--sr-accent);
    color: var(--sr-accent);
  }
}

@media (max-width:860px) {
  .sr-d-nuit .dep__head:not(.sr-island:not(.sr-d-nuit) *) {
    display: none;
  }

  .sr-d-nuit .dep__row:not(.sr-island:not(.sr-d-nuit) *) {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .sr-d-nuit .dep__go:not(.sr-island:not(.sr-d-nuit) *) {
    justify-self: start;
    margin-top: 6px;
  }
}

/* ---------- Appel à l'action ---------- */
.sr-d-nuit .cta:not(.sr-island:not(.sr-d-nuit) *) {
  padding-block: var(--sr-section);
  text-align: center;
  background: radial-gradient(60% 80% at 50% 100%, rgba(255, 210, 63, .16), transparent 70%);
}

.sr-d-nuit .cta__in:not(.sr-island:not(.sr-d-nuit) *) {
  display: grid;
  justify-items: center;
  gap: 18px;
}

.sr-d-nuit .cta__title:not(.sr-island:not(.sr-d-nuit) *) {
  font-size: clamp(56px, 10vw, 160px);
  line-height: .86;
}

.sr-d-nuit .cta p:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-muted);
  font-size: 18px;
}

/* ---------- Pied de page ---------- */
.sr-d-nuit .sr-footer:not(.sr-island:not(.sr-d-nuit) *) {
  border-top: 1px solid var(--sr-line);
  padding: clamp(48px, 7vw, 88px) 0 28px;
}

.sr-d-nuit .sr-footer__sign:not(.sr-island:not(.sr-d-nuit) *) {
  font-family: var(--sr-fdisp);
  font-weight: 900;
  text-transform: uppercase;
  font-size: clamp(64px, 15vw, 220px);
  line-height: .8;
  color: transparent;
  -webkit-text-stroke: 1px var(--sr-line);
  white-space: nowrap;
  overflow: hidden;
  margin-bottom: 40px;
}

.sr-d-nuit .sr-footer__grid:not(.sr-island:not(.sr-d-nuit) *) {
  display: grid;
  grid-template-columns: 1.6fr repeat(3, 1fr);
  gap: 32px;
}

.sr-d-nuit .sr-footer__grid p:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-muted);
  margin: 14px 0;
  max-width: 36ch;
}

.sr-d-nuit .sr-footer__h:not(.sr-island:not(.sr-d-nuit) *) {
  font-family: var(--sr-fbody);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .16em;
  color: var(--sr-cyan);
  margin-bottom: 14px;
}

.sr-d-nuit .sr-footer ul:not(.sr-island:not(.sr-d-nuit) *) {
  display: grid;
  gap: 4px;
}

.sr-d-nuit .sr-footer li a:not(.sr-island:not(.sr-d-nuit) *) {
  display: inline-block;
  padding: 6px 0;
  color: var(--sr-muted);
  text-decoration: none;
}

@media (hover:hover) and (pointer:fine) {
  .sr-d-nuit .sr-footer li a:hover:not(.sr-island:not(.sr-d-nuit) *) {
    color: var(--sr-ink);
  }
}

.sr-d-nuit .sr-socials:not(.sr-island:not(.sr-d-nuit) *) {
  display: flex !important;
  gap: 16px;
  margin-top: 12px;
}

.sr-d-nuit .sr-footer__bottom:not(.sr-island:not(.sr-d-nuit) *) {
  margin-top: 40px;
  padding-top: 18px;
  border-top: 1px solid var(--sr-line);
  color: var(--sr-muted);
  font-size: 14px;
}

.sr-d-nuit .sr-open.is-open .sr-open__dot:not(.sr-island:not(.sr-d-nuit) *) {
  animation: nuit-breathe 2.4s ease-in-out infinite;
}

.sr-d-nuit .sr-open.is-closed:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-muted);
}

@keyframes nuit-breathe {
  50% {
    opacity: .35;
  }
}

@media (max-width:860px) {
  .sr-d-nuit .sr-footer__grid:not(.sr-island:not(.sr-d-nuit) *) {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width:520px) {
  .sr-d-nuit .sr-footer__grid:not(.sr-island:not(.sr-d-nuit) *) {
    grid-template-columns: 1fr;
  }
}

/* ---------- En-tête de page interne ---------- */
.sr-d-nuit .sr-phead:not(.sr-island:not(.sr-d-nuit) *) {
  background: radial-gradient(50% 120% at 90% 0%, rgba(255, 79, 154, .14), transparent 70%);
}

.sr-d-nuit .sr-phead__media img:not(.sr-island:not(.sr-d-nuit) *) {
  border-radius: 22px;
  border: 1px solid var(--sr-line);
}

.sr-d-nuit .sr-split__img img:not(.sr-island:not(.sr-d-nuit) *) {
  border-radius: 22px;
}

/* ---------- Mouvement : « allumage » ----------
   Entrées : opacité + montée + mise au point (ease-out, 720 ms, cascade 70 ms).
   Titre du hero : chaque lettre s'allume. Lignes du tableau : glissent depuis la gauche. */
.sr-motion .sr-d-nuit [data-rv]:not(.is-in):not(.sr-island:not(.sr-d-nuit) *) {
  opacity: 0;
  transform: translateY(22px);
  filter: blur(8px);
}

.sr-motion .sr-d-nuit .board__row[data-rv]:not(.is-in):not(.sr-island:not(.sr-d-nuit) *) {
  transform: translateX(-14px);
  filter: none;
}

.sr-motion .sr-d-nuit .dep__row[data-rv]:not(.is-in):not(.sr-island:not(.sr-d-nuit) *) {
  transform: translateY(8px);
  filter: none;
}

.sr-motion .sr-d-nuit [data-split] .sr-ch:not(.sr-island:not(.sr-d-nuit) *) {
  animation: nuit-ignite 720ms var(--sr-ease-expo) both;
  animation-delay: calc(120ms + min(var(--c, 0), 40) * 28ms);
}

@keyframes nuit-ignite {
  from {
    opacity: 0;
    transform: translateY(.3em);
    filter: blur(10px);
  }
}

.sr-motion .sr-d-nuit .hero__mini:not(.sr-island:not(.sr-d-nuit) *) {
  animation: nuit-sign 900ms var(--sr-ease-out) 700ms both;
}

@keyframes nuit-sign {
  from {
    opacity: 0;
    transform: translateY(12px);
    box-shadow: none;
  }
}

.sr-motion .sr-d-nuit .hero__glow:not(.sr-island:not(.sr-d-nuit) *) {
  animation: nuit-drift 18s ease-in-out infinite alternate;
}

@keyframes nuit-drift {
  to {
    transform: translate3d(3%, 2%, 0) scale(1.06);
  }
}

.sr-motion .sr-d-nuit .logo__dot:not(.sr-island:not(.sr-d-nuit) *) {
  animation: nuit-breathe 2.6s ease-in-out infinite;
}

/* En-tête : jamais de retour à la ligne (y compris posé sur une autre direction) */
.sr-d-nuit .sr-menu__list a:not(.sr-island:not(.sr-d-nuit) *),
.sr-d-nuit .sr-cart-link:not(.sr-island:not(.sr-d-nuit) *),
.sr-d-nuit .sr-header .btn:not(.sr-island:not(.sr-d-nuit) *) {
  white-space: nowrap;
}

@media (min-width:961px) and (max-width:1240px) {
  .sr-d-nuit .sr-header__extra:not(.sr-island:not(.sr-d-nuit) *) {
    display: none;
  }

  .sr-d-nuit .sr-menu__list a:not(.sr-island:not(.sr-d-nuit) *) {
    padding: 0 9px;
  }

  .sr-d-nuit .sr-header__bar:not(.sr-island:not(.sr-d-nuit) *) {
    gap: 16px;
  }
}

/* ---------- Effets rares : Night Market ----------
   Palettes (split-flap) : les lettres en cours de défilement passent au rose.
   Lampe torche : le tableau s'éclaire sous le pointeur (souris uniquement). */
.sr-d-nuit .sr-flap.is-flipping:not(.sr-island:not(.sr-d-nuit) *) {
  color: var(--sr-accent2);
}

.sr-d-nuit .board-frame:not(.sr-island:not(.sr-d-nuit) *)::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: screen;
  background: radial-gradient(320px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 210, 63, .16), transparent 70%);
  transition: opacity 300ms ease;
}

@media (hover:hover) and (pointer:fine) {
  .sr-d-nuit .board-frame:not(.sr-island:not(.sr-d-nuit) *):hover::after {
    opacity: 1;
  }
}

/* ---- Kiosque de commande (plugin) : tableau de menu rétroéclairé ---- */
.sr-d-nuit {
  --sr-k-radius: 16px;
  --sr-k-radius-sm: 10px;
  --sr-k-ring: inset 0 0 0 1px #2C2F4A;
  --sr-k-shadow: 0 18px 40px -26px rgba(0, 0, 0, .9);
  --sr-k-shadow-hi: 0 0 0 1px rgba(255, 210, 63, .55), 0 0 26px rgba(255, 210, 63, .18), 0 26px 50px -26px rgba(0, 0, 0, .95);
}

.sr-d-nuit .srcc-k-steps:not(.sr-island:not(.sr-d-nuit) *),
.sr-d-nuit .srcc-k-cats:not(.sr-island:not(.sr-d-nuit) *) {
  background: #12131F;
}

.sr-d-nuit .srcc-k-step.is-active:not(.sr-island:not(.sr-d-nuit) *) {
  box-shadow: var(--glow-y);
}

.sr-d-nuit .srcc-k-cat:not(.sr-island:not(.sr-d-nuit) *) {
  text-transform: uppercase;
  letter-spacing: .08em;
}

.sr-d-nuit .srcc-k-cat:hover:not(.sr-island:not(.sr-d-nuit) *) {
  background: rgba(244, 241, 255, .05);
}

.sr-d-nuit .srcc-k-cat.is-active:not(.sr-island:not(.sr-d-nuit) *) {
  background: rgba(255, 210, 63, .1);
  color: #FFD23F;
}

.sr-d-nuit .srcc-k-cat.is-active .srcc-k-cat__count:not(.sr-island:not(.sr-d-nuit) *) {
  background: #FFD23F;
  color: #0D0E1A;
}

/* Photo rétroéclairée qui se fond dans le panneau */
.sr-d-nuit .srcc-k-item__img:not(.sr-island:not(.sr-d-nuit) *)::after,
.sr-d-nuit .srcc-k-formula-card__img:not(.sr-island:not(.sr-d-nuit) *)::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 45%;
  background: linear-gradient(transparent, #181A2E);
  pointer-events: none;
}

.sr-d-nuit .srcc-k-formula-card__img:not(.sr-island:not(.sr-d-nuit) *) {
  position: relative;
}

.sr-d-nuit .srcc-k-item__name:not(.sr-island:not(.sr-d-nuit) *),
.sr-d-nuit .srcc-k-formula-card__name:not(.sr-island:not(.sr-d-nuit) *) {
  letter-spacing: .02em;
}

.sr-d-nuit .srcc-k-item__price:not(.sr-island:not(.sr-d-nuit) *),
.sr-d-nuit .srcc-k-formula-card__price:not(.sr-island:not(.sr-d-nuit) *) {
  color: #FFD23F;
  text-shadow: 0 0 14px rgba(255, 210, 63, .45);
}

.sr-d-nuit .srcc-k-formula-card__steps:not(.sr-island:not(.sr-d-nuit) *) {
  color: #43F0D8;
}

.sr-d-nuit .srcc-k-item__add:not(.sr-island:not(.sr-d-nuit) *) {
  box-shadow: 0 0 14px rgba(255, 210, 63, .45);
}

.sr-d-nuit .srcc-k-recapbar:not(.sr-island:not(.sr-d-nuit) *) {
  box-shadow: inset 0 1px 0 rgba(255, 210, 63, .45), 0 18px 40px -16px rgba(0, 0, 0, .8);
}