/* Atelier isolé — charger après galeries-ivoire.css et edition-sensorielle.css.
   mc-maison est un opt-in de l'aperçu, jamais ajouté par ce module.
   La spécificité :not(#mc-galeries) répond au :not(#es) existant.
   Aucun transform, recadrage, filtre ou moteur de mouvement supplémentaire. */
body.mc-maison:not(#mc-galeries) .iv-gallery {
  --mc-gallery-paper: var(--maison-ivory, var(--tc-paper, #f4f0e8));
  --mc-gallery-mat: clamp(18px, 3.4vw, 56px);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  padding: clamp(40px, 4vw, 64px) var(--tc-gutter, 5vw) 0;
  background: var(--mc-gallery-paper);
}

body.mc-maison:not(#mc-galeries) .iv-gallery > .iv-running {
  grid-column: 1;
  grid-row: auto;
  flex-wrap: wrap;
  margin-bottom: 0;
  gap: 12px 24px;
  padding-bottom: 22px;
}

body.mc-maison:not(#mc-galeries) .iv-gallery > .iv-heading {
  display: grid;
  grid-column: 1;
  grid-row: auto;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  align-items: end;
  gap: 28px clamp(28px, 6vw, 96px);
  padding: clamp(28px, 3vw, 44px) 0 clamp(36px, 3.5vw, 56px);
}

body.mc-maison:not(#mc-galeries) .iv-gallery .iv-heading h2 {
  max-width: 16ch;
  font-size: clamp(44px, 5.4vw, 86px);
  line-height: 1.04;
  overflow-wrap: break-word;
}

body.mc-maison:not(#mc-galeries) .iv-gallery .iv-heading p {
  justify-self: end;
  max-width: 38ch;
  margin: 0;
  font-size: clamp(17px, 1.35vw, 21px);
  line-height: 1.75;
}

/* Une rangée réservée à l'image, une autre au cartel : ni hauteur de
   légende estimée ni position absolue susceptible de la recouvrir. */
body.mc-maison:not(#mc-galeries) .iv-gallery > .iv-stage {
  display: grid;
  grid-column: 1;
  grid-row: auto;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0 var(--mc-gallery-mat) clamp(32px, 4vw, 64px) 0;
  isolation: isolate;
}

/* Le pseudo-élément existant devient un passe-partout décentré.
   Seul ce décor reçoit le fondu fini ; image, volume et texte restent visibles. */
body.mc-maison:not(#mc-galeries) .iv-gallery > .iv-stage::before {
  content: "";
  position: relative;
  grid-area: 1 / 1;
  inset: auto;
  margin: -18px calc(-1 * var(--mc-gallery-mat)) -24px 24px;
  z-index: 0;
  pointer-events: none;
  background: var(--mc-gallery-paper);
  border: 1px solid var(--iv-line);
  border-inline-end: 3px double var(--iv-line);
  box-shadow: 12px 22px 32px -28px var(--iv-ink);
  opacity: 1;
}

body.mc-maison:not(#mc-galeries) .iv-gallery .iv-stage > .iv-picture {
  grid-area: 1 / 1;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  height: clamp(340px, 46vw, 740px);
  min-width: 0;
  margin: 0;
  border: clamp(6px, .9vw, 14px) solid var(--mc-gallery-paper);
  outline: 1px solid var(--iv-line);
  box-shadow: 0 24px 36px -28px var(--iv-ink);
}

/* Conserve le volume existant et son moteur ; borne sa place à la rangée image. */
body.mc-maison:not(#mc-galeries) .iv-gallery .iv-stage > .iv-volume {
  position: relative;
  grid-area: 1 / 1;
  inset: auto;
  align-self: end;
  justify-self: end;
  width: 25%;
  height: clamp(180px, 27vw, 400px);
  max-height: none;
  margin: 0 -2% 4% 0;
  z-index: 2;
}

body.mc-maison:not(#mc-galeries) .iv-gallery .iv-stage > .iv-caption {
  position: relative;
  grid-area: 2 / 1;
  z-index: 3;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin: clamp(46px, 4.5vw, 64px) 0 0;
  padding: 18px 0 0;
  border-top: 1px solid var(--iv-line);
  background: var(--mc-gallery-paper);
  color: var(--iv-ink);
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: .08em;
  gap: 18px 32px;
}

body.mc-maison:not(#mc-galeries) .iv-gallery .iv-caption > span:first-child {
  flex: 1 1 18rem;
  min-width: 0;
  max-width: 52ch;
  overflow-wrap: anywhere;
}

body.mc-maison:not(#mc-galeries) .iv-gallery .iv-pause {
  flex: 0 1 auto;
  max-width: 100%;
  min-height: 44px;
  white-space: normal;
}

body.mc-maison:not(#mc-galeries) .iv-gallery > .iv-bottom {
  grid-column: 1;
  grid-row: auto;
  flex-wrap: wrap;
  gap: 18px 32px;
  padding-block: 26px;
}

body.mc-maison:not(#mc-galeries) .iv-gallery[data-layout="reverse"] > .iv-stage {
  padding-inline: var(--mc-gallery-mat) 0;
}

body.mc-maison:not(#mc-galeries) .iv-gallery[data-layout="reverse"] > .iv-stage::before {
  margin-inline: calc(-1 * var(--mc-gallery-mat)) 24px;
  border-inline-start: 3px double var(--iv-line);
  border-inline-end: 1px solid var(--iv-line);
}

body.mc-maison:not(#mc-galeries) .iv-gallery[data-layout="reverse"] .iv-stage > .iv-volume {
  justify-self: start;
  margin-inline: -2% 0;
}

body.mc-maison:not(#mc-galeries) .iv-gallery[data-layout="vertical"] .iv-stage > .iv-picture {
  height: clamp(400px, 53vw, 820px);
}

body.mc-maison:not(#mc-galeries) .iv-gallery[data-mc-gallery-entry="running"] > .iv-stage::before {
  animation: mc-gallery-frame-arrive 1800ms cubic-bezier(.22, .61, .36, 1) 1 both;
  animation-play-state: paused;
}

body.mc-maison:not(#mc-galeries):not([data-tc-cine-paused="true"]) .iv-gallery[data-mc-gallery-entry="running"][data-mc-gallery-paused="false"] > .iv-stage::before {
  animation-play-state: running;
}

@keyframes mc-gallery-frame-arrive {
  from { opacity: .4; }
  to { opacity: 1; }
}

@media (max-width: 900px) {
  body.mc-maison:not(#mc-galeries) .iv-gallery > .iv-heading {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  body.mc-maison:not(#mc-galeries) .iv-gallery .iv-heading p {
    justify-self: start;
    max-width: 48ch;
  }
}

@media (max-width: 700px) {
  body.mc-maison:not(#mc-galeries) .iv-gallery {
    --mc-gallery-mat: 12px;
    padding: 38px 22px 0;
  }

  body.mc-maison:not(#mc-galeries) .iv-gallery .iv-heading h2 {
    font-size: clamp(38px, 10.5vw, 64px);
  }

  body.mc-maison:not(#mc-galeries) .iv-gallery > .iv-stage::before {
    margin-block: -10px -16px;
    margin-inline-start: 12px;
  }

  body.mc-maison:not(#mc-galeries) .iv-gallery[data-layout="reverse"] > .iv-stage::before {
    margin-inline: calc(-1 * var(--mc-gallery-mat)) 12px;
  }

  body.mc-maison:not(#mc-galeries) .iv-gallery .iv-stage > .iv-picture {
    height: clamp(280px, 80vw, 480px);
  }

  body.mc-maison:not(#mc-galeries) .iv-gallery[data-layout="vertical"] .iv-stage > .iv-picture {
    height: clamp(320px, 94vw, 540px);
  }

  body.mc-maison:not(#mc-galeries) .iv-gallery .iv-stage > .iv-volume {
    width: 31%;
    height: 180px;
    margin-bottom: 6%;
  }

  body.mc-maison:not(#mc-galeries) .iv-gallery .iv-stage > .iv-caption {
    align-items: flex-start;
    letter-spacing: .05em;
  }
}

/* La préférence système gagne même avant l'exécution du module. */
@media (prefers-reduced-motion: reduce), (prefers-contrast: more), (forced-colors: active), print {
  body.mc-maison:not(#mc-galeries) .iv-gallery[data-mc-gallery-entry] > .iv-stage::before {
    animation: none;
    opacity: 1;
  }
}

@media (forced-colors: active) {
  body.mc-maison:not(#mc-galeries) .iv-gallery > .iv-stage::before,
  body.mc-maison:not(#mc-galeries) .iv-gallery .iv-stage > .iv-picture,
  body.mc-maison:not(#mc-galeries) .iv-gallery .iv-stage > .iv-caption {
    background: Canvas;
    color: CanvasText;
    border-color: CanvasText;
    outline-color: CanvasText;
    box-shadow: none;
  }
}
