.page-accueil .site-header {
  background: rgba(16, 18, 20, .78);
  border-bottom-color: rgba(243, 239, 230, .08);
}
.page-accueil .site-header.is-scrolled {
  box-shadow: 0 1px 0 rgba(243, 239, 230, .06), 0 12px 32px rgba(0, 0, 0, .35);
}
.page-accueil .nav__links a { color: var(--ivoire-mute); }
.page-accueil .nav__links a:hover,
.page-accueil .nav__links a.is-active { color: #fff; }
.page-accueil .nav__links a::after { background: var(--laiton); }
.page-accueil .nav__cart {
  color: var(--ivoire);
  border-color: rgba(243, 239, 230, .25);
}
.page-accueil .nav__cart:hover { border-color: var(--ivoire); }
.page-accueil .nav__burger span,
.page-accueil .nav__burger span::before,
.page-accueil .nav__burger span::after { background: var(--ivoire); }
.page-accueil .nav__burger[aria-expanded="true"] span { background: transparent; }

.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap; border: 0;
}

.acc-hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  grid-template-rows: auto 1fr auto;
  row-gap: clamp(1.5rem, 4vh, 3rem);
  padding-top: clamp(5.5rem, 12vh, 8.5rem);
  padding-bottom: clamp(1.1rem, 2.6vh, 1.8rem);
  overflow: hidden;
  background: var(--nuit);
  color: var(--ivoire);
}
.acc-hero__media,
.acc-hero__media img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.acc-hero__media { inset: -6% 0; height: auto; bottom: -6%; filter: brightness(1.06) contrast(1.05) saturate(1.08); }
.acc-hero__media img { transform: scale(1.02); transform-origin: 50% 34%; }
.acc-hero__veil {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(16,18,20,.34) 0%, rgba(16,18,20,.06) 24%, transparent 52%, rgba(16,18,20,.22) 74%, rgba(16,18,20,.76) 100%),
    linear-gradient(95deg, rgba(16,18,20,.72) 0%, rgba(16,18,20,.26) 46%, rgba(16,18,20,.04) 78%, transparent 100%);
}
.acc-hero__top,
.acc-hero__content { position: relative; }
.acc-hero__top { align-self: start; }
.acc-hero__content { align-self: center; transform: translateY(-7vh); --titre-x: 11.2rem; }

.acc-hero__top,
.acc-hero__content,
.acc-hero__bar-inner {
  max-width: none;
  margin-inline: 0;
  padding-left: clamp(1.25rem, 3vw, 3.25rem);
}

.acc-sur {
  display: inline-flex; align-items: center; gap: 1rem;
  font-size: .8rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--laiton);
  margin-bottom: 1.2rem;
}
.acc-sur::before {
  content: "";
  width: 44px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--laiton));
}

.acc-hero h1 {
  font-size: clamp(2.7rem, 7.2vw, 5.8rem);
  line-height: 1.02;
  color: #fff;
  max-width: 12ch;
}
.acc-hero h1 .ligne { display: block; }
.acc-hero h1 .ligne > span { display: inline-block; }
.acc-hero h1 .ligne:nth-child(2) > span { color: #e59e27; }

.acc-hero h1 { max-width: none; }
.acc-titre-script {
  position: relative; z-index: 2;
  padding-left: var(--titre-x);
  font-family: "Tangerine", var(--font-serif), cursive;
  font-weight: 700;
  font-size: clamp(3.8rem, 9.5vw, 7.2rem);
  line-height: 1.2;
  padding-bottom: .0em;
  color: #fff;
}
.acc-titre-fort {
  font-family: "Bebas Neue", var(--font-sans);
  padding-left: var(--titre-x);
  font-weight: 400;
  font-size: clamp(3rem, 8vw, 6.4rem);
  line-height: .9;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: #e59e27;
}
.acc-hero h1 .ligne:nth-child(2) { margin-top: -.55em; }

.acc-hero__lead {
  margin-top: 1.4rem;
  margin-left: var(--titre-x);
  max-width: 46ch;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.18rem;
  line-height: 1.6;
  text-align: justify;
  color: var(--ivoire);
}
.acc-hero__cta {
  display: flex; gap: var(--sp-3); flex-wrap: wrap;
  margin-left: var(--titre-x);
  margin-top: clamp(6rem, 18vh, 12rem);
}
.btn--nuit-ghost {
  background: transparent;
  color: var(--ivoire);
  border: 1.5px solid rgba(243, 239, 230, .35);
}
.btn--nuit-ghost:hover { border-color: var(--ivoire); transform: translateY(-2px); }

.acc-hero__bar {
  position: relative;
  align-self: end;
  border-top: 1px solid rgba(243, 239, 230, .16);
  padding-top: clamp(1rem, 2.4vh, 1.6rem);
}
.acc-hero__bar-inner {
  display: flex; flex-direction: column;
  gap: clamp(.7rem, 1.6vh, 1.2rem);
}
.acc-hero__cues {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--sp-6);
}
.acc-hero__credit {
  font-size: .72rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--ivoire-mute);
}
.acc-hero__credit a:hover { color: var(--laiton); }
.acc-defile {
  display: flex; align-items: center; gap: .7rem; flex-shrink: 0;
  font-size: .72rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--ivoire-mute);
}
.acc-defile span {
  width: 1px; height: 26px; display: block;
  background: linear-gradient(var(--laiton), transparent);
}
.acc-hero__stats {
  display: flex; gap: var(--sp-6);
  justify-content: space-between;
}
.acc-hero__stat { min-width: 0; }
.acc-hero__stat strong {
  display: block;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(1.5rem, 2.4vw, 2.1rem);
  line-height: 1.1;
  color: #fff;
}
.acc-hero__stat span { font-size: .8rem; color: var(--ivoire-mute); }

.acc-pieces__pied {
  margin-top: var(--sp-8);
  display: flex; align-items: center; gap: var(--sp-6); flex-wrap: wrap;
}
.acc-pieces__pied .note { font-size: .88rem; color: var(--ink-mute); }

.acc-rail-tete {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: var(--sp-6); flex-wrap: wrap;
  margin-top: clamp(2.6rem, 6vh, 4.5rem);
  margin-bottom: var(--sp-6);
}
.acc-rail-tete .eyebrow { color: var(--brass); }
.acc-rail-tete h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); margin-top: var(--sp-2); }

.acc-rail__nav { display: flex; gap: .6rem; }
.acc-rail__bouton {
  width: 48px; height: 48px; border-radius: var(--r-pill);
  display: grid; place-items: center;
  background: var(--white); color: var(--ink);
  border: 1.5px solid var(--line);
  transition: background .2s var(--ease), color .2s var(--ease),
              border-color .2s var(--ease), opacity .2s var(--ease);
}
.acc-rail__bouton svg { width: 20px; height: 20px; }
.acc-rail__bouton:hover:not(:disabled) { background: var(--ink); color: var(--white); border-color: var(--ink); }
.acc-rail__bouton:disabled { opacity: .28; cursor: default; }

.acc-rail {
  padding-inline: clamp(1rem, 4vw, 3rem);
  overflow-x: auto; overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scroll-padding-left: clamp(1rem, 4vw, 3rem);
  scrollbar-width: none;
  cursor: grab;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3.5%, #000 96.5%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 3.5%, #000 96.5%, transparent 100%);
}
.acc-rail::-webkit-scrollbar { display: none; }
.acc-rail:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
.acc-rail.saisi { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.acc-rail.saisi a { pointer-events: none; }

.acc-rail__piste {
  display: flex;
  gap: clamp(1rem, 1.8vw, 1.6rem);
  width: max-content;
  padding-block: .2rem .6rem;
}
.rail-carte {
  flex: 0 0 clamp(230px, 24vw, 300px);
  scroll-snap-align: start;
}
.rail-carte > a { display: block; }
.rail-carte__vignette {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--paper-2);
  overflow: hidden;
}
.rail-carte__vignette img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .9s var(--ease-cine);
}
.rail-carte > a:hover .rail-carte__vignette img { transform: scale(1.05); }
.rail-carte__legende { padding-top: var(--sp-4); }
.rail-carte__legende h3 {
  font-family: var(--font-sans);
  font-size: .98rem; font-weight: 600; line-height: 1.35;
  color: var(--ink);
  transition: color .2s var(--ease);
}
.rail-carte > a:hover .rail-carte__legende h3 { color: var(--brand-dark); }
.rail-carte__legende span {
  display: block; margin-top: 4px;
  font-size: .86rem; color: var(--ink-mute);
}

.acc-rail__barre { margin-top: var(--sp-6); }
.acc-rail__rail-fond { position: relative; height: 2px; background: var(--line); }
.acc-rail__jauge {
  position: absolute; top: -1px; left: 0; height: 4px;
  width: 30%; background: var(--ink);
  transition: left .1s linear, width .1s linear;
}

.acc-collection {
  position: relative;
  overflow: hidden;
  background: var(--paper);
  color: var(--ivoire);
  padding-block: clamp(5rem, 13vh, 9rem);
}
.acc-collection__media {
  position: absolute;
  inset: clamp(20px, 4vh, 40px) clamp(24px, 6.5vw, 94px);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.acc-collection__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 60% 40%;
}
.acc-collection__voile {
  position: absolute;
  inset: clamp(20px, 4vh, 40px) clamp(24px, 6.5vw, 94px);
  background:
    linear-gradient(270deg, rgba(16, 18, 20, .70) 0%, rgba(16, 18, 20, .64) 30%, rgba(16, 18, 20, 0) 46%);
}
.acc-collection__inner { position: relative; }
.acc-collection__texte {
  max-width: 380px;
  margin-left: auto;
  margin-right: clamp(36px, 4.2vw, 54px);
  transform: translateX(76px);
}
.acc-collection__texte h2 {
  color: #fff;
  font-size: clamp(1.9rem, 3vw, 2.5rem);
  margin-block: var(--sp-4) var(--sp-6);
}
.acc-collection__texte p {
  color: rgba(243, 239, 230, .94);
  margin-bottom: var(--sp-8);
}
.acc-collection__legende {
  position: absolute; left: var(--sp-6); top: 0;
  writing-mode: vertical-rl;
  font-size: .85rem; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--brass);
}
.acc-espaces .section-head { max-width: 640px; margin-bottom: var(--sp-12); }
.acc-espaces .section-head h2 { margin-block: var(--sp-3) var(--sp-4); }

.acc-repertoire { border-bottom: 1px solid var(--line); }
.rep {
  position: relative;
  display: grid;
  grid-template-columns: 3.4rem 1.15fr 1fr auto;
  align-items: center;
  gap: var(--sp-6);
  padding: 1.35rem .5rem;
  border-top: 1px solid var(--line);
  transition: padding .4s var(--ease-cine);
}
.rep::before {
  content: "";
  position: absolute; inset: 0;
  background: var(--nuit);
  transform: scaleX(0); transform-origin: left;
  transition: transform .45s var(--ease-cine);
}
.rep:hover { padding-left: 1.4rem; padding-right: 1rem; }
.rep:hover::before { transform: scaleX(1); }
.rep > * { position: relative; transition: color .35s var(--ease); }

.rep__num {
  font-family: var(--font-serif);
  font-size: .95rem;
  color: var(--ink-mute);
}
.rep__nom {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(1.3rem, 2.4vw, 1.9rem);
  line-height: 1.15;
  color: var(--ink);
  text-wrap: balance;
}
.rep__desc { font-size: .9rem; color: var(--ink-mute); }
.rep__fleche {
  width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center;
  color: var(--ink-soft);
  border: 1.5px solid var(--line);
  transition: background .3s var(--ease), color .3s var(--ease),
              border-color .3s var(--ease), transform .4s var(--ease-cine);
}
.rep__fleche svg { width: 17px; height: 17px; }

.rep:hover .rep__num   { color: var(--laiton); }
.rep:hover .rep__nom   { color: var(--ivoire); }
.rep:hover .rep__desc  { color: var(--ivoire-mute); }
.rep:hover .rep__fleche {
  background: var(--laiton); border-color: var(--laiton); color: var(--nuit);
  transform: translateX(4px);
}
.rep--collection .rep__num,
.rep--collection .rep__nom { color: var(--brass); }
.rep--collection:hover .rep__nom { color: var(--laiton); }

@media (max-width: 960px) {
  .acc-collection__texte { max-width: 100%; margin-inline: clamp(20px, 5vw, 48px); }
  .acc-collection__voile {
    background:
      linear-gradient(180deg, rgba(16,18,20,.52) 0%, rgba(16,18,20,.44) 50%, rgba(16,18,20,.62) 100%);
  }
  .acc-collection__legende { display: none; }
  .rep { grid-template-columns: 2.6rem 1fr auto; gap: var(--sp-1) var(--sp-6); }
  .rep__desc { grid-column: 2; grid-row: 2; }
}
@media (max-width: 700px) {
  .rail-carte { flex-basis: clamp(220px, 74vw, 280px); }
  .acc-rail__bouton { width: 44px; height: 44px; }
}
@media (max-width: 460px) {
  .acc-rail-tete { align-items: flex-start; }
}

@media (max-width: 1024px) {
  .acc-hero__content { --titre-x: 5.5rem; }
}
@media (max-width: 760px) {
  .acc-hero__content { --titre-x: 1.25rem; transform: translateY(-3vh); }
  .acc-hero__lead { text-align: left; margin-top: 1.1rem; }
  .acc-hero__cta { margin-top: clamp(2.4rem, 9vh, 5.5rem); }
}

@media (max-width: 720px) {
  .acc-hero__stats { flex-wrap: wrap; gap: var(--sp-6) var(--sp-8); }
  .acc-hero__stat { flex: 1 1 40%; }
}
@media (max-width: 560px) {
  .acc-hero__cta { width: 100%; }
  .acc-hero__cta .btn { flex: 1 1 100%; justify-content: center; }
  .acc-hero__cues { display: none; }
}
@media (max-width: 480px) {
  .acc-hero__content { --titre-x: 0rem; transform: none; }
  .acc-hero { padding-top: clamp(5rem, 16vh, 7rem); }
  .acc-titre-script { font-size: clamp(3.4rem, 15vw, 4.6rem); line-height: 1.05; }
  .acc-titre-fort   { font-size: clamp(2.5rem, 12vw, 3.4rem); }
  .acc-hero h1 .ligne:nth-child(2) { margin-top: -.4em; }
  .acc-hero__lead { font-size: 1.05rem; max-width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .acc-rail { scroll-behavior: auto; }
}
