/* Virtual Hall 360 — lecteur éditorial, isolé du reste du thème. */
.vh360 {
  --vh360-ink: #21232c;
  --vh360-muted: #5f5a69;
  --vh360-dim: #686373;
  --vh360-canvas: #fbfbfc;
  --vh360-surface: #ffffff;
  --vh360-surface-raised: #f3eff8;
  --vh360-line: rgba(70, 43, 93, 0.17);
  --vh360-line-soft: rgba(70, 43, 93, 0.1);
  --vh360-accent: #7445a5;
  --vh360-accent-bright: #7445a5;
  --vh360-danger: #a62750;
  color: var(--vh360-ink);
  max-width: 1440px;
  margin: 0 auto;
  background: var(--vh360-canvas);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.5;
}

.vh360 *,
.vh360 *::before,
.vh360 *::after {
  box-sizing: border-box;
}

.vh360 button,
.vh360 input,
.vh360 select {
  font: inherit;
}

.vh360 button,
.vh360 input[type='range'],
.vh360 select {
  touch-action: manipulation;
}

.vh360 button {
  margin: 0;
  border: 0;
}

.vh360 button:not(:disabled),
.vh360 input:not(:disabled),
.vh360 select:not(:disabled) {
  cursor: pointer;
}

.vh360 button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.vh360 a {
  color: inherit;
}

.vh360 svg {
  display: block;
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.vh360 [hidden] {
  display: none !important;
}

.vh360 :focus-visible {
  outline: 3px solid var(--vh360-accent-bright);
  outline-offset: 3px;
}

.vh360__theatre {
  position: relative;
  padding: clamp(1rem, 2.5vw, 2rem);
  overflow: hidden;
  background:
    radial-gradient(70rem 34rem at 85% -12%, rgba(139, 92, 246, 0.13), transparent 48%),
    var(--vh360-canvas);
}

.vh360__topbar,
.vh360__topbar-actions,
.vh360__control-row,
.vh360__transport,
.vh360__utility-controls,
.vh360__details-footer,
.vh360__panel-heading,
.vh360__setting-actions {
  display: flex;
  align-items: center;
}

.vh360__topbar {
  min-height: 2.75rem;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 clamp(0.8rem, 1.7vw, 1.2rem);
}

.vh360__identity {
  min-width: 0;
}

.vh360__eyebrow,
.vh360__start-kicker,
.vh360__details-kicker {
  margin: 0;
  color: var(--vh360-accent-bright);
  font-size: 0.69rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  line-height: 1.25;
  text-transform: uppercase;
}

.vh360__title {
  max-width: 54rem;
  margin: 0.18rem 0 0;
  color: var(--vh360-ink);
  font: inherit;
  font-size: clamp(1.25rem, 2.25vw, 1.875rem);
  font-weight: 720;
  letter-spacing: -0.027em;
  line-height: 1.1;
  overflow-wrap: anywhere;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.vh360__topbar-actions {
  flex: 0 0 auto;
  gap: 0.45rem;
}

.vh360__back-link,
.vh360__icon-button,
.vh360__control-button,
.vh360__share-button,
.vh360__help-link,
.vh360__text-button {
  min-width: 44px;
  min-height: 44px;
  border-radius: 0.5rem;
  color: var(--vh360-ink);
  font-size: 0.8rem;
  font-weight: 690;
  line-height: 1.15;
  text-decoration: none;
  transition: color 150ms ease, background-color 150ms ease, transform 150ms ease;
}

.vh360__back-link,
.vh360__icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  padding: 0.58rem 0.7rem;
  background: rgba(255, 255, 255, 0.045);
}

.vh360__back-link:hover,
.vh360__icon-button:hover,
.vh360__control-button:hover,
.vh360__share-button:hover,
.vh360__help-link:hover,
.vh360__text-button:hover {
  background: rgba(139, 92, 246, 0.16);
  color: #fff;
}

.vh360__expand-button {
  background: var(--vh360-accent);
  color: #fff;
}

.vh360__expand-button:hover {
  background: #9d72ff;
}

.vh360__close-expand {
  display: none;
  background: rgba(255, 255, 255, 0.09);
}

.vh360__layout {
  display: flex;
  flex-direction: column;
  gap: clamp(1.1rem, 2.4vw, 1.6rem);
  min-width: 0;
}

.vh360__main {
  min-width: 0;
}

.vh360__stage {
  position: relative;
  min-height: 10rem;
  aspect-ratio: 16 / 9;
  isolation: isolate;
  overflow: hidden;
  background: #030407;
}

.vh360__scene,
.vh360__scene > a-scene,
.vh360__scene canvas {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.vh360__scene {
  z-index: 0;
  touch-action: none;
  cursor: grab;
  background: radial-gradient(circle at 50% 42%, #242536 0, #090a10 66%);
}

.vh360__scene > a-scene {
  background: transparent !important;
}

.vh360__poster {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: opacity 220ms ease;
}

.vh360--playing .vh360__poster,
.vh360--busy .vh360__poster,
.vh360--activated .vh360__poster,
.vh360--flat .vh360__poster {
  opacity: 0;
  pointer-events: none;
}

.vh360--flat [data-video] {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #030407;
}

.vh360__stage-shade {
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.5), transparent 34%, transparent 59%, rgba(0, 0, 0, 0.56));
}

.vh360__view-badge,
.vh360__hint {
  position: absolute;
  z-index: 4;
  margin: 0;
  background: rgba(11, 12, 16, 0.78);
  box-shadow: 0 0.4rem 1.5rem rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(10px);
}

.vh360__view-badge {
  top: 0.75rem;
  left: 0.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  max-width: calc(100% - 1.5rem);
  min-height: 2rem;
  padding: 0.34rem 0.6rem;
  border-radius: 999px;
  color: var(--vh360-ink);
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
}

.vh360__view-badge strong {
  color: var(--vh360-accent-bright);
  letter-spacing: 0.05em;
}

.vh360__badge-title {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  padding-left: 0.5rem;
  border-left: 1px solid rgba(255, 255, 255, 0.28);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vh360__view-badge-dot {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: var(--vh360-accent);
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.22);
}

.vh360__hint {
  right: 0.75rem;
  bottom: 0.75rem;
  max-width: min(18rem, calc(100% - 1.5rem));
  padding: 0.42rem 0.6rem;
  border-radius: 0.35rem;
  color: #f0f0f8;
  font-size: 0.74rem;
  line-height: 1.3;
}

.vh360--activated .vh360__hint,
.vh360--playing .vh360__hint {
  display: none;
}

.vh360__start-screen,
.vh360__loading,
.vh360__error-panel {
  position: absolute;
  z-index: 5;
  inset: 0;
}

.vh360__start-screen {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  padding: 1.25rem;
  text-align: center;
  background: linear-gradient(180deg, rgba(4, 4, 7, 0.12), rgba(4, 4, 7, 0.62));
}

.vh360__start-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  min-width: 44px;
  min-height: 44px;
  padding: 0.52rem 0.95rem 0.52rem 0.58rem;
  border: 0;
  border-radius: 999px;
  background: var(--vh360-accent);
  box-shadow: 0 0.75rem 2.2rem rgba(0, 0, 0, 0.36);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 760;
  transition: background-color 150ms ease, transform 150ms ease;
}

.vh360__start-button:hover:not(:disabled) {
  background: #9d72ff;
  transform: translateY(-1px);
}

.vh360__start-icon {
  display: grid;
  width: 1.9rem;
  height: 1.9rem;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #6d42d2;
}

.vh360__start-icon svg {
  width: 0.9rem;
  height: 0.9rem;
  fill: currentColor;
  stroke: none;
}

.vh360__start-meta {
  margin: 0;
  color: #e9e8f4;
  font-size: 0.76rem;
  font-weight: 620;
}

.vh360__loading {
  display: grid;
  pointer-events: none;
  place-content: center;
  gap: 0.7rem;
  padding: 1rem;
  background: rgba(3, 4, 8, 0.6);
  color: var(--vh360-ink);
  text-align: center;
}

.vh360__loading p,
.vh360__error-panel p {
  margin: 0;
}

.vh360__loading p {
  font-size: 0.88rem;
  font-weight: 650;
}

.vh360__spinner {
  width: 1.85rem;
  height: 1.85rem;
  margin: 0 auto;
  border: 3px solid rgba(255, 255, 255, 0.25);
  border-top-color: var(--vh360-accent-bright);
  border-radius: 50%;
  animation: vh360-spin 800ms linear infinite;
}

.vh360__error-panel {
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(3, 4, 8, 0.73);
}

.vh360__error-panel > div {
  width: min(100%, 26rem);
  padding: 1rem;
  background: #1a151b;
  color: var(--vh360-ink);
  text-align: center;
}

.vh360__error-panel p + p {
  margin-top: 0.55rem;
}

.vh360__error-heading {
  color: #ffd7df;
  font-weight: 760;
}

.vh360__sr-status,
.vh360__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.vh360__controls {
  padding: 0.65rem clamp(0.7rem, 1.6vw, 1rem) 0.72rem;
  background: #101117;
}

.vh360__feedback {
  margin: 0.38rem 0 0;
  padding: 0 0.1rem;
  color: var(--vh360-accent-bright);
  font-size: 0.75rem;
  line-height: 1.35;
}

.vh360.vh360--expanded .vh360__feedback,
.vh360.vh360--fallback .vh360__feedback,
.vh360[data-fullscreen-mode='native'] .vh360__feedback {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.vh360__timeline {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.7rem;
  min-height: 2.75rem;
}

.vh360__buffered-track {
  position: absolute;
  top: 50%;
  right: 4.4rem;
  left: 0;
  height: 0.24rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.19);
  pointer-events: none;
  transform: translateY(-50%);
}

.vh360__buffered-track [data-buffered] {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: rgba(182, 154, 255, 0.6);
}

.vh360__seek,
.vh360__volume-row input[type='range'] {
  width: 100%;
  height: 44px;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
}

.vh360__seek {
  position: relative;
  z-index: 1;
  grid-column: 1;
}

.vh360__seek::-webkit-slider-runnable-track,
.vh360__volume-row input[type='range']::-webkit-slider-runnable-track {
  height: 0.24rem;
  border-radius: 999px;
  background: transparent;
}

.vh360__volume-row input[type='range']::-webkit-slider-runnable-track {
  background: rgba(255, 255, 255, 0.19);
}

.vh360__seek::-moz-range-track,
.vh360__volume-row input[type='range']::-moz-range-track {
  height: 0.24rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.19);
}

.vh360__seek::-webkit-slider-thumb,
.vh360__volume-row input[type='range']::-webkit-slider-thumb {
  width: 0.9rem;
  height: 0.9rem;
  margin-top: -0.33rem;
  border: 2px solid #fff;
  border-radius: 50%;
  appearance: none;
  -webkit-appearance: none;
  background: var(--vh360-accent-bright);
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.22);
}

.vh360__seek::-moz-range-thumb,
.vh360__volume-row input[type='range']::-moz-range-thumb {
  width: 0.75rem;
  height: 0.75rem;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--vh360-accent-bright);
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.22);
}

.vh360__time {
  grid-column: 2;
  margin: 0;
  color: var(--vh360-muted);
  font-size: 0.74rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.vh360__control-row {
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.45rem 0.85rem;
  margin-top: 0.1rem;
}

.vh360__transport,
.vh360__utility-controls {
  flex-wrap: wrap;
  gap: 0.28rem;
}

.vh360__control-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  padding: 0.54rem 0.58rem;
  background: transparent;
  color: #e9e9f1;
  white-space: nowrap;
}

.vh360__control-button svg {
  width: 1.03rem;
  height: 1.03rem;
}

.vh360__play-button {
  min-width: 5.2rem;
  background: rgba(139, 92, 246, 0.18);
  color: #fff;
}

.vh360__play-button:hover {
  background: rgba(139, 92, 246, 0.34);
}

/* Ces sélecteurs battent l’ancien reset global qui affichait les deux glyphes. */
.vh360 .vh360__pause-icon,
.vh360 .vh360__pause-word {
  display: none;
}

.vh360.vh360--playing .vh360__play-icon,
.vh360.vh360--playing .vh360__play-word {
  display: none;
}

.vh360.vh360--playing .vh360__pause-icon,
.vh360.vh360--playing .vh360__pause-word {
  display: block;
}

.vh360__views-trigger b {
  display: inline-grid;
  min-width: 1.18rem;
  min-height: 1.18rem;
  place-content: center;
  border-radius: 50%;
  background: var(--vh360-accent);
  color: #fff;
  font-size: 0.67rem;
  font-variant-numeric: tabular-nums;
}

.vh360__details {
  padding: clamp(0.9rem, 1.8vw, 1.2rem) 0.1rem 0;
}

.vh360__details h3,
.vh360__views-panel h3,
.vh360__dialog h3 {
  margin: 0.22rem 0 0;
  color: var(--vh360-ink);
  font: inherit;
  font-size: clamp(1rem, 1.55vw, 1.2rem);
  font-weight: 720;
  letter-spacing: -0.018em;
  line-height: 1.22;
}

.vh360__description {
  max-width: 72ch;
  min-height: 1.45em;
  margin: 0.45rem 0 0;
  color: var(--vh360-muted);
  font-size: 0.88rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.vh360__details-footer {
  flex-wrap: wrap;
  gap: 0.25rem 0.7rem;
  margin-top: 0.7rem;
}

.vh360__details-footer p,
.vh360__share-button,
.vh360__help-link {
  display: inline-flex;
  align-items: center;
  gap: 0.36rem;
  min-height: 2.75rem;
  margin: 0;
  padding: 0.48rem 0.58rem;
  background: transparent;
  color: var(--vh360-muted);
  font-size: 0.76rem;
}

.vh360__details-footer p svg,
.vh360__share-button svg {
  width: 0.95rem;
  height: 0.95rem;
  color: var(--vh360-accent-bright);
}

.vh360__share-button,
.vh360__help-link {
  color: var(--vh360-ink);
}

.vh360__views-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding-top: 0.2rem;
}

.vh360__panel-heading {
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.vh360__panel-close {
  display: none;
}

.vh360__views-intro {
  margin: 0.35rem 0 0.7rem;
  color: var(--vh360-muted);
  font-size: 0.8rem;
}

.vh360__views-list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-auto-rows: minmax(64px, auto);
  gap: 0.42rem;
  min-height: 0;
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--vh360-accent) transparent;
}

.vh360__scroll-note {
  display: none;
  flex: 0 0 auto;
  margin: 0.62rem 0 0;
  color: var(--vh360-accent-bright);
  font-size: 0.72rem;
}

.vh360[data-views-overflow='true'] .vh360__scroll-note {
  display: block;
}

.vh360__view-button {
  display: grid;
  grid-template-columns: 1.85rem minmax(0, 1fr) 0.85rem;
  align-items: center;
  gap: 0.42rem;
  width: 100%;
  min-width: 0;
  min-height: 4rem;
  padding: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
  color: var(--vh360-ink);
  text-align: left;
  transition: background-color 150ms ease, color 150ms ease;
}

.vh360__view-button:hover {
  background: rgba(255, 255, 255, 0.085);
}

.vh360__view-button[aria-current='true'],
.vh360__view-button.is-active {
  background: rgba(139, 92, 246, 0.24);
  box-shadow: inset 2px 0 0 var(--vh360-accent-bright);
}

.vh360__view-number {
  display: grid;
  width: 1.85rem;
  min-height: 1.85rem;
  place-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.07);
  color: var(--vh360-accent-bright);
  font-size: 0.68rem;
  font-weight: 780;
  font-variant-numeric: tabular-nums;
}

.vh360__view-copy {
  min-width: 0;
  overflow-wrap: anywhere;
}

.vh360__view-copy strong {
  display: -webkit-box;
  overflow: hidden;
  color: #fafaff;
  font-size: 0.78rem;
  font-weight: 680;
  line-height: 1.24;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.vh360__view-arrow {
  width: 0.85rem;
  height: 0.85rem;
  color: var(--vh360-accent-bright);
}

.vh360__empty-views {
  margin: 0;
  color: var(--vh360-muted);
  font-size: 0.85rem;
}

/* Les dialogues se calent au viewport hors agrandi : pas à une page très longue. */
.vh360__dialog {
  position: fixed;
  z-index: 2147483001;
  top: var(--vh360-viewport-top, 0px);
  left: var(--vh360-viewport-left, 0px);
  display: grid;
  width: 100vw;
  width: var(--vh360-viewport-width, 100vw);
  height: 100vh;
  height: var(--vh360-viewport-height, 100dvh);
  place-items: center;
  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  overflow: auto;
  background: rgba(3, 3, 6, 0.78);
  backdrop-filter: blur(9px);
}

.vh360__dialog-card {
  width: min(100%, 34rem);
  max-height: 100%;
  padding: clamp(1rem, 3vw, 1.35rem);
  overflow: auto;
  background: #171821;
  box-shadow: 0 1.4rem 4rem rgba(0, 0, 0, 0.44);
}

.vh360__setting-row {
  display: grid;
  gap: 0.5rem;
  margin-top: 0.9rem;
  padding-top: 0.9rem;
  border-top: 1px solid var(--vh360-line-soft);
}

.vh360__setting-row label {
  color: var(--vh360-ink);
  font-size: 0.84rem;
  font-weight: 720;
}

/* Scoped: le style natif .select-default du thème hors lecteur n’est pas touché. */
.vh360 .vh360__setting-row select.select-default,
.vh360 .vh360__setting-row select {
  min-height: 2.75rem;
  padding: 0.52rem 2.25rem 0.52rem 0.68rem;
  border: 1px solid var(--vh360-line);
  border-radius: 0.42rem;
  background: #0e0f15;
  color: var(--vh360-ink);
}

.vh360__volume-row input[type='range'] {
  max-width: 22rem;
}

.vh360__setting-row p,
.vh360__gyro-status {
  margin: 0;
  color: var(--vh360-muted);
  font-size: 0.77rem;
  line-height: 1.45;
}

.vh360__setting-actions {
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.95rem;
}

.vh360__text-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.55rem 0.68rem;
  background: rgba(255, 255, 255, 0.045);
  text-align: center;
}

.vh360__text-button svg {
  width: 1rem;
  height: 1rem;
}

.vh360__gyro-status {
  margin-top: 0.72rem;
}

.vh360__help-copy {
  color: var(--vh360-muted);
  font-size: 0.88rem;
  line-height: 1.52;
}

.vh360__help-copy p {
  margin: 0.9rem 0 0;
}

.vh360__help-copy h4 {
  margin: 1rem 0 0.45rem;
  color: var(--vh360-ink);
  font-size: 0.88rem;
}

.vh360__help-copy ul {
  display: grid;
  gap: 0.42rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.vh360__help-copy li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
}

.vh360 kbd {
  display: inline-block;
  min-width: 1.5rem;
  padding: 0.1rem 0.28rem;
  border-radius: 0.25rem;
  background: #0e0f15;
  color: var(--vh360-ink);
  font: inherit;
  font-size: 0.76rem;
  text-align: center;
}

.vh360__flat-action {
  margin-top: 1rem;
}

.vh360__noscript {
  padding: 1rem;
  background: #101117;
  color: var(--vh360-muted);
}

.vh360__noscript p {
  margin: 0;
}

.vh360__noscript strong,
.vh360__noscript a {
  color: var(--vh360-ink);
}

.vh360__noscript video {
  display: block;
  width: min(100%, 48rem);
  margin: 1rem 0;
}

/* Agrandir répond tout de suite, même si le fullscreen natif est indisponible. */
.vh360.vh360--expanded,
.vh360.vh360--fallback,
.vh360[data-fullscreen-mode='native'] {
  position: fixed;
  z-index: 2147483000;
  top: var(--vh360-viewport-top, 0px);
  left: var(--vh360-viewport-left, 0px);
  width: 100vw;
  width: var(--vh360-viewport-width, 100vw);
  height: 100vh;
  height: var(--vh360-viewport-height, 100dvh);
  max-width: none;
  margin: 0;
  overflow: hidden;
  background: var(--vh360-canvas);
}

.vh360.vh360--expanded .vh360__theatre,
.vh360.vh360--fallback .vh360__theatre,
.vh360[data-fullscreen-mode='native'] .vh360__theatre {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: none;
  height: 100vh;
  height: var(--vh360-viewport-height, 100dvh);
  min-height: 0;
  margin: 0;
  padding: max(0.7rem, env(safe-area-inset-top)) max(0.7rem, env(safe-area-inset-right)) max(0.7rem, env(safe-area-inset-bottom)) max(0.7rem, env(safe-area-inset-left));
  overflow: hidden;
  background: var(--vh360-canvas);
}

.vh360[data-fullscreen-mode='native'] .vh360__theatre {
  height: 100vh;
  height: var(--vh360-viewport-height, 100dvh);
}

.vh360.vh360--expanded .vh360__topbar,
.vh360.vh360--fallback .vh360__topbar,
.vh360[data-fullscreen-mode='native'] .vh360__topbar {
  flex: 0 0 auto;
  margin-bottom: 0.55rem;
}

.vh360.vh360--expanded .vh360__close-expand,
.vh360.vh360--fallback .vh360__close-expand,
.vh360[data-fullscreen-mode='native'] .vh360__close-expand {
  display: inline-flex;
}

.vh360.vh360--expanded .vh360__expand-button,
.vh360.vh360--fallback .vh360__expand-button,
.vh360[data-fullscreen-mode='native'] .vh360__expand-button {
  display: none;
}

.vh360.vh360--expanded .vh360__layout,
.vh360.vh360--fallback .vh360__layout,
.vh360[data-fullscreen-mode='native'] .vh360__layout {
  flex: 1 1 auto;
  min-height: 0;
}

.vh360.vh360--expanded .vh360__main,
.vh360.vh360--fallback .vh360__main,
.vh360[data-fullscreen-mode='native'] .vh360__main {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

.vh360.vh360--expanded .vh360__stage,
.vh360.vh360--fallback .vh360__stage,
.vh360[data-fullscreen-mode='native'] .vh360__stage {
  flex: 1 1 48%;
  min-height: 160px;
  aspect-ratio: auto;
}

.vh360.vh360--expanded .vh360__details,
.vh360.vh360--fallback .vh360__details,
.vh360[data-fullscreen-mode='native'] .vh360__details {
  display: none;
}

/* En agrandi, la grille éditoriale ne mange pas la scène : le bouton Vues ouvre ce feuillet. */
.vh360.vh360--expanded:not([data-panel='views']) .vh360__views-panel,
.vh360.vh360--fallback:not([data-panel='views']) .vh360__views-panel,
.vh360[data-fullscreen-mode='native']:not([data-panel='views']) .vh360__views-panel {
  display: none;
}

/* Les dialogues sont dans le théâtre lors des deux variantes d’agrandissement. */
.vh360.vh360--expanded .vh360__dialog,
.vh360.vh360--fallback .vh360__dialog,
.vh360[data-fullscreen-mode='native'] .vh360__dialog {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* Feuillet de vues : viewport borné hors agrandi, théâtre borné en agrandi. */
.vh360[data-panel='views'] .vh360__views-panel {
  position: fixed;
  z-index: 2147483002;
  top: calc(var(--vh360-viewport-top, 0px) + 0.75rem);
  left: calc(var(--vh360-viewport-left, 0px) + 0.75rem);
  width: calc(var(--vh360-viewport-width, 100vw) - 1.5rem);
  height: calc(100vh - 1.5rem);
  height: calc(var(--vh360-viewport-height, 100dvh) - 1.5rem);
  max-width: 68rem;
  max-height: 38rem;
  padding: clamp(0.85rem, 2.4vw, 1.25rem);
  overflow: hidden;
  background: #15161e;
  box-shadow: 0 1.2rem 3.5rem rgba(0, 0, 0, 0.5);
}

.vh360[data-panel='views'] .vh360__panel-close {
  display: inline-flex;
}

.vh360[data-panel='views'] .vh360__views-list {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.1rem 0.1rem 0.45rem;
  overflow: auto;
}

.vh360.vh360--expanded[data-panel='views'] .vh360__views-panel,
.vh360.vh360--fallback[data-panel='views'] .vh360__views-panel,
.vh360[data-fullscreen-mode='native'][data-panel='views'] .vh360__views-panel {
  position: absolute;
  z-index: 22;
  display: flex;
  top: 50%;
  left: 50%;
  width: min(68rem, calc(100% - 1.5rem));
  height: auto;
  max-height: calc(100% - 1.5rem);
  padding: clamp(0.8rem, 2.2vw, 1.2rem);
  transform: translate(-50%, -50%);
}

.vh360.vh360--expanded[data-panel='views'] .vh360__views-list,
.vh360.vh360--fallback[data-panel='views'] .vh360__views-list,
.vh360[data-fullscreen-mode='native'][data-panel='views'] .vh360__views-list {
  overflow: auto;
}

@media (min-width: 700px) {
  .vh360__stage {
    min-height: 21rem;
  }

  .vh360[data-panel='views'] .vh360__views-panel {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}

@media (max-width: 699px) {
  .vh360__theatre {
    padding: 0.8rem;
  }

  .vh360__topbar {
    align-items: flex-start;
    gap: 0.55rem;
  }

  .vh360__title {
    font-size: clamp(1.125rem, 5.3vw, 1.25rem);
  }

  .vh360__eyebrow {
    font-size: 0.64rem;
  }

  .vh360__badge-title {
    max-width: calc(100vw - 120px);
  }

  .vh360__back-link span {
    display: none;
  }

  .vh360__back-link {
    width: 2.75rem;
    min-width: 44px;
    padding: 0.58rem;
  }

  .vh360__icon-button.vh360__expand-button,
  .vh360__icon-button.vh360__close-expand {
    width: auto;
    min-width: 95px;
    padding: 0.58rem 0.65rem;
    white-space: nowrap;
  }

  .vh360__stage {
    min-height: clamp(12rem, 56.25vw, 20rem);
  }

  .vh360__control-row {
    align-items: flex-start;
  }

  .vh360__utility-controls {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.18rem;
  }

  .vh360__utility-controls .vh360__control-button {
    min-width: 0;
    padding: 0.5rem 0.2rem;
  }

  .vh360__views-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(64px, auto);
  }

  .vh360__view-button {
    grid-template-columns: 1.78rem minmax(0, 1fr) 0.75rem;
  }

  .vh360__details-footer p {
    width: 100%;
    min-height: 1.4rem;
    padding: 0;
  }

  .vh360[data-panel='views'] .vh360__views-panel {
    max-width: none;
    max-height: none;
  }
}

/* Conserve une scène et des contrôles utilisables à 320 px de haut en paysage. */
@media (max-height: 460px) and (orientation: landscape) {
  .vh360.vh360--expanded .vh360__theatre,
  .vh360.vh360--fallback .vh360__theatre,
  .vh360[data-fullscreen-mode='native'] .vh360__theatre {
    padding-top: max(0.42rem, env(safe-area-inset-top));
    padding-bottom: max(0.42rem, env(safe-area-inset-bottom));
  }

  .vh360.vh360--expanded .vh360__topbar,
  .vh360.vh360--fallback .vh360__topbar,
  .vh360[data-fullscreen-mode='native'] .vh360__topbar {
    min-height: 2.25rem;
    margin-bottom: 0.3rem;
  }

  .vh360.vh360--expanded .vh360__title,
  .vh360.vh360--fallback .vh360__title,
  .vh360[data-fullscreen-mode='native'] .vh360__title {
    -webkit-line-clamp: 1;
  }

  .vh360.vh360--expanded .vh360__eyebrow,
  .vh360.vh360--fallback .vh360__eyebrow,
  .vh360[data-fullscreen-mode='native'] .vh360__eyebrow {
    display: none;
  }

  .vh360.vh360--expanded .vh360__controls,
  .vh360.vh360--fallback .vh360__controls,
  .vh360[data-fullscreen-mode='native'] .vh360__controls {
    padding-top: 0.25rem;
    padding-bottom: 0.28rem;
  }

  .vh360.vh360--expanded .vh360__timeline,
  .vh360.vh360--fallback .vh360__timeline,
  .vh360[data-fullscreen-mode='native'] .vh360__timeline {
    min-height: 2.25rem;
  }

  .vh360.vh360--expanded .vh360__stage,
  .vh360.vh360--fallback .vh360__stage,
  .vh360[data-fullscreen-mode='native'] .vh360__stage {
    min-height: 160px;
  }

  .vh360.vh360--expanded .vh360__hint,
  .vh360.vh360--fallback .vh360__hint,
  .vh360[data-fullscreen-mode='native'] .vh360__hint {
    display: none;
  }

  .vh360.vh360--expanded[data-panel='views'] .vh360__views-list,
  .vh360.vh360--fallback[data-panel='views'] .vh360__views-list,
  .vh360[data-fullscreen-mode='native'][data-panel='views'] .vh360__views-list {
    grid-auto-rows: minmax(64px, auto);
  }
}

@media (prefers-reduced-motion: reduce) {
  .vh360 *,
  .vh360 *::before,
  .vh360 *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@keyframes vh360-spin {
  to { transform: rotate(360deg); }
}

/* Crédit fourni par le parent : présent, mais discret hors de la scène. */
.vh360__details-footer .vh360__poster-credit {
  min-height: 0;
  padding: 0.18rem 0;
  color: var(--vh360-dim);
  font-size: 0.69rem;
}

/* Petit paysage : toutes les commandes restent dans les 320 px de hauteur. */
@media (max-height: 460px) and (orientation: landscape) {
  .vh360.vh360--expanded .vh360__control-row,
  .vh360.vh360--fallback .vh360__control-row { flex-wrap: nowrap; gap: 0.4rem; }
  .vh360.vh360--expanded .vh360__transport,
  .vh360.vh360--fallback .vh360__transport { flex-wrap: nowrap; gap: 0.2rem; }
  .vh360.vh360--expanded .vh360__utility-controls,
  .vh360.vh360--fallback .vh360__utility-controls { display: flex; width: auto; flex-wrap: nowrap; gap: 0.2rem; }
  .vh360.vh360--expanded .vh360__control-button,
  .vh360.vh360--fallback .vh360__control-button { padding: 0.5rem 0.35rem; }
  .vh360.vh360--expanded [data-action='mute'] span,
  .vh360.vh360--fallback [data-action='mute'] span { display: none; }
  .vh360.vh360--expanded [data-action='mute'],
  .vh360.vh360--fallback [data-action='mute'] { min-width: 44px; }
  .vh360.vh360--expanded .vh360__feedback,
  .vh360.vh360--fallback .vh360__feedback {
    position: absolute; z-index: 6; left: 14px; right: 14px; bottom: 104px;
    margin: 0; padding: 5px 8px; background: rgba(11,12,16,.86);
    pointer-events: none;
  }
  .vh360[data-muted='true'] [data-action='mute'] svg { color: #ffb2c1; opacity: .7; }
}

/* Surface montée une seule fois avant A-Frame ; le slot conserve le flux de page. */
.vh360--anchored {
  position: absolute;
  top: var(--vh360-slot-top, 0px);
  left: var(--vh360-slot-left, 0px);
  width: var(--vh360-slot-width, 100%);
  margin: 0;
}

/* Charte v3 : fonds éditoriaux clairs, couleurs du CTA publié sur Virtual Hall.
   Géométrie et moteur inchangés ; seules les commandes de caméra sont ajoutées. */
.vh360__theatre {
  background: radial-gradient(55rem 25rem at 100% 0, rgba(178, 122, 213, 0.09), transparent 65%), var(--vh360-canvas);
}
.vh360__theatre::before {
  content: '';
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(115deg, #c4e0ef, #b27ad5 52%, #7445a5);
  pointer-events: none;
}
.vh360__title,
.vh360__details h3,
.vh360__views-panel h3,
.vh360__dialog h3 { font-family: 'Space Grotesk', Inter, sans-serif; }
.vh360__back-link,
.vh360__icon-button,
.vh360__text-button { background: #efeaf5; }
.vh360__back-link:hover,
.vh360__icon-button:hover,
.vh360__control-button:hover,
.vh360__text-button:hover { background: #e9e1f2; color: #63368f; }
.vh360__expand-button,
.vh360__start-button { background: #7445a5; color: #fff; }
.vh360__expand-button:hover,
.vh360__start-button:hover:not(:disabled) { background: #63368f; color: #fff; }
.vh360__stage {
  --vh360-ink: #fbfbff;
  --vh360-muted: #d5d0df;
  --vh360-accent-bright: #e5d3f4;
  color: #fbfbff;
}
.vh360__start-icon { color: #7445a5; }
.vh360__controls { background: #f3eff8; border-bottom: 1px solid var(--vh360-line-soft); }
.vh360__control-button { color: var(--vh360-ink); }
.vh360__play-button { background: #e7dcf1; color: #63368f; }
.vh360__play-button:hover { background: #dbc8eb; color: #512576; }
.vh360__buffered-track { background: #d0c7da; }
.vh360__buffered-track [data-buffered] { background: #9d76bc; }
.vh360__seek::-moz-range-track,
.vh360__volume-row input[type='range']::-moz-range-track { background: #d0c7da; }
.vh360__volume-row input[type='range']::-webkit-slider-runnable-track { background: #d0c7da; }
.vh360__view-button { background: #f1edf6; color: var(--vh360-ink); }
.vh360__view-button:hover { background: #e9e1f2; }
.vh360__view-button[aria-current='true'],
.vh360__view-button.is-active {
  background: linear-gradient(115deg, #e5f0f7, #eee2f5 62%, #e8d9f1);
  box-shadow: inset 3px 0 0 #7445a5;
}
.vh360__view-copy strong { color: var(--vh360-ink); }
.vh360__view-number { background: #e3d7ef; color: #63368f; }
.vh360__view-button[aria-current='true'] .vh360__view-number { background: #7445a5; color: #fff; }
.vh360__dialog { background: rgba(30, 22, 43, 0.45); }
.vh360__dialog-card { background: #fbfbfc; box-shadow: 0 1.4rem 4rem rgba(42, 26, 57, 0.23); }
.vh360[data-panel='views'] .vh360__views-panel { background: #fbfbfc; box-shadow: 0 1.2rem 3.5rem rgba(42, 26, 57, 0.23); }
.vh360 .vh360__setting-row select.select-default,
.vh360 .vh360__setting-row select { background: #fff; color: var(--vh360-ink); }
.vh360 kbd { background: #efeaf5; color: #63368f; }
.vh360__noscript { background: #f3eff8; }
.vh360__error-panel .vh360__text-button { color: #fff; background: #7445a5; }
.vh360__error-panel .vh360__text-button:hover { background: #63368f; }
.vh360[data-muted='true'] [data-action='mute'] svg { color: #a62750; opacity: 1; }

/* Caméras directement sur l’image : toujours visibles en agrandi, pas de sortie.
   La liste Vues reste disponible pour un accès direct à n’importe quelle caméra. */
.vh360__stage-view-nav {
  position: absolute;
  z-index: 8;
  left: 0.75rem;
  right: 0.75rem;
  bottom: 0.75rem;
  display: none;
  justify-content: space-between;
  gap: 0.75rem;
  pointer-events: none;
}
.vh360.vh360--expanded .vh360__stage-view-nav,
.vh360.vh360--fallback .vh360__stage-view-nav,
.vh360[data-fullscreen-mode='native'] .vh360__stage-view-nav { display: flex; }
.vh360__stage-view-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 44px;
  min-width: 44px;
  padding: 0.55rem 0.7rem;
  border-radius: 0.5rem;
  background: rgba(251, 251, 252, 0.95);
  box-shadow: 0 0.3rem 1.2rem rgba(0, 0, 0, 0.28);
  color: #63368f;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.2;
  pointer-events: auto;
  touch-action: manipulation;
}
.vh360__stage-view-button:hover { background: #eee2f5; color: #512576; }
.vh360__stage-view-button svg { width: 1rem; height: 1rem; }
.vh360__stage-view-button:focus-visible { outline: 3px solid #7445a5; }
.vh360__stage-shade { background: linear-gradient(180deg, rgba(0, 0, 0, 0.18), transparent 30%, transparent 70%, rgba(0, 0, 0, 0.18)); }
.vh360__start-screen { background: linear-gradient(180deg, rgba(4, 4, 7, 0.02), rgba(4, 4, 7, 0.22)); }
.vh360__start-kicker,
.vh360__start-meta { color: #fff; text-shadow: 0 1px 5px rgba(0, 0, 0, 0.9); }
.vh360.vh360--expanded .vh360__hint,
.vh360.vh360--fallback .vh360__hint,
.vh360[data-fullscreen-mode='native'] .vh360__hint { bottom: 4rem; }
@media (max-height: 460px) and (orientation: landscape) {
  .vh360.vh360--expanded .vh360__feedback,
  .vh360.vh360--fallback .vh360__feedback { background: #efeaf5; color: #63368f; }
}

/* v4 : dimensions du viewport visible, y compris pendant la rotation mobile. */
.vh360__landscape-button { white-space: nowrap; color: #63368f; }
.vh360__audio-modes { display: grid; gap: 0.5rem; margin: 1rem 0 0; padding: 0; border: 0; min-width: 0; }
.vh360__audio-modes legend { padding: 0 0 0.5rem; color: var(--vh360-ink); font-size: 0.84rem; font-weight: 720; }
.vh360__audio-choice { display: flex; align-items: center; gap: 0.65rem; min-height: 52px; padding: 0.6rem 0.75rem; background: #f1edf6; border: 1px solid #d7c9e4; border-radius: 0.5rem; color: #21232c; }
.vh360__audio-choice--available { background: #eee2f5; border-color: #7445a5; }
.vh360__audio-choice--upcoming { background: #f5f3f7; cursor: not-allowed; }
.vh360__audio-choice input { width: 18px; height: 18px; flex: 0 0 auto; margin: 0; accent-color: #7445a5; }
.vh360__audio-choice span { min-width: 0; }
.vh360__audio-choice strong { display: block; font-size: 0.83rem; line-height: 1.3; }
.vh360__audio-choice small { display: block; margin-top: 0.12rem; color: #5f5a69; font-size: 0.74rem; line-height: 1.35; }
.vh360__audio-modes .vh360__audio-note { margin: 0.15rem 0 0; color: #5f5a69; font-size: 0.76rem; line-height: 1.45; }

/* Se fonde sur la surface visible : les media queries seules peuvent être
   temporairement en retard sur visualViewport lors d’une rotation Safari. */
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__theatre { padding: max(6px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__topbar { min-height: 44px; margin-bottom: 4px; align-items: center; }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__eyebrow { display: none; }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__title { -webkit-line-clamp: 1; font-size: 1rem; }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__controls { padding: 0 8px 4px; }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__timeline { min-height: 44px; }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__stage { min-height: 96px; }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__control-row,
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__transport,
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__utility-controls { display: flex; flex-wrap: nowrap; width: auto; gap: 3px; }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__control-button { padding: 8px 5px; }
.vh360.vh360--expanded[data-compact-landscape='true'] [data-action='mute'] span { display: none; }
.vh360.vh360--expanded[data-compact-landscape='true'] [data-action='mute'] { min-width: 44px; }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__hint { display: none; }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__feedback { position: absolute; z-index: 6; left: 14px; right: 14px; bottom: 102px; margin: 0; padding: 5px 8px; background: #efeaf5; color: #63368f; pointer-events: none; }
@media (max-width: 430px) {
  .vh360.vh360--expanded .vh360__topbar-actions { gap: 4px; }
  .vh360.vh360--expanded .vh360__landscape-button { padding: 7px; font-size: 0.72rem; }
  .vh360.vh360--expanded .vh360__landscape-button svg { display: none; }
  .vh360.vh360--expanded .vh360__close-expand { min-width: 72px; padding: 7px; }
  .vh360.vh360--expanded .vh360__back-link { display: none; }
}
/* 4.0.3 — Paysage immersif : la scène remplit le viewport ; les commandes
   se superposent sans déplacer le nœud A-Frame ni réduire son canvas. */
.vh360.vh360--expanded[data-viewport-orientation='landscape'] {
  --vh360-overlay-top-height: calc(56px + env(safe-area-inset-top, 0px));
  --vh360-overlay-bottom-height: calc(100px + env(safe-area-inset-bottom, 0px));
}
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__theatre {
  display: block;
  padding: 0;
  background: #030407;
}
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__layout,
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__main,
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__stage {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  gap: 0;
  aspect-ratio: auto;
}
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__topbar {
  position: absolute;
  z-index: 15;
  top: 0;
  left: 0;
  right: 0;
  min-height: var(--vh360-overlay-top-height);
  margin: 0;
  padding: max(6px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) 6px max(8px, env(safe-area-inset-left));
  gap: 8px;
  background: linear-gradient(180deg, rgba(13, 9, 20, 0.84), rgba(13, 9, 20, 0.28));
  color: #fff;
  pointer-events: none;
}
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__identity { flex: 1 1 auto; min-width: 0; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__eyebrow { display: none; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__title {
  margin: 0;
  color: #fff;
  font-size: 16px;
  text-shadow: 0 1px 5px #000;
  -webkit-line-clamp: 1;
}
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__topbar-actions { gap: 4px; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__topbar-actions a,
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__topbar-actions button {
  min-width: 44px;
  min-height: 44px;
  padding: 8px;
  background: rgba(251, 251, 252, 0.95);
  color: #63368f;
  pointer-events: auto;
}
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__back-link { display: inline-flex; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__back-link span { display: none; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__controls {
  position: absolute;
  z-index: 15;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  padding: 4px max(8px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
  border: 0;
  background: linear-gradient(0deg, rgba(13, 9, 20, 0.92), rgba(13, 9, 20, 0.66));
  color: #fff;
}
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__timeline { min-height: 44px; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__time { color: #fff; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__buffered-track { background: rgba(255, 255, 255, 0.28); }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__buffered-track [data-buffered] { background: #c7a6e1; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__seek::-moz-range-track { background: rgba(255, 255, 255, 0.28); }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__control-row,
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__transport,
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__utility-controls {
  display: flex;
  flex-wrap: nowrap;
  width: auto;
  gap: 4px;
}
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__control-button {
  min-width: 44px;
  min-height: 44px;
  padding: 8px;
  color: #fff;
}
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__play-button { background: #7445a5; color: #fff; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__control-button:hover { background: rgba(178, 122, 213, 0.45); color: #fff; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] [data-action='mute'] span { display: none; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__view-badge {
  top: calc(var(--vh360-overlay-top-height) + 4px);
  left: max(68px, calc(env(safe-area-inset-left) + 60px));
  right: max(68px, calc(env(safe-area-inset-right) + 60px));
  width: fit-content;
  max-width: calc(100% - 136px - env(safe-area-inset-left) - env(safe-area-inset-right));
  min-height: 28px;
  border-radius: 6px;
  padding: 4px 8px;
  font-size: 12px;
  pointer-events: none;
}
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__stage-view-nav {
  left: max(8px, env(safe-area-inset-left));
  right: max(8px, env(safe-area-inset-right));
  top: calc((100% + var(--vh360-overlay-top-height) - var(--vh360-overlay-bottom-height)) / 2);
  bottom: auto;
  transform: translateY(-50%);
}
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__stage-view-button { min-height: 44px; min-width: 44px; }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__stage-view-button span { display: none; }
.vh360.vh360--expanded[data-compact-landscape='true'] .vh360__stage-view-button { padding: 10px; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__feedback {
  position: absolute;
  z-index: 14;
  left: max(68px, calc(env(safe-area-inset-left) + 60px));
  right: max(68px, calc(env(safe-area-inset-right) + 60px));
  top: calc(var(--vh360-overlay-top-height) + 40px);
  bottom: auto;
  margin: 0;
  padding: 5px 8px;
  background: rgba(13, 9, 20, 0.85);
  color: #fff;
  pointer-events: none;
}
/* Safari avec les barres d’onglets visibles : une seule rangée de commandes
   dans les fenêtres très basses ; aucune fonction n’est retirée. */
.vh360.vh360--expanded[data-short-landscape='true'] { --vh360-overlay-bottom-height: calc(54px + env(safe-area-inset-bottom, 0px)); }
.vh360.vh360--expanded[data-short-landscape='true'] .vh360__controls { display: grid; grid-template-columns: minmax(144px, 1fr) auto; align-items: center; gap: 8px; }
.vh360.vh360--expanded[data-short-landscape='true'] .vh360__control-row { margin: 0; gap: 6px; }
.vh360.vh360--expanded[data-short-landscape='true'] .vh360__transport,
.vh360.vh360--expanded[data-short-landscape='true'] .vh360__utility-controls { gap: 2px; }
.vh360.vh360--expanded[data-short-landscape='true'] .vh360__play-button { min-width: 44px; }
.vh360.vh360--expanded[data-short-landscape='true'] .vh360__play-label,
.vh360.vh360--expanded[data-short-landscape='true'] [data-action='settings'] span,
.vh360.vh360--expanded[data-short-landscape='true'] [data-action='views'] svg,
.vh360.vh360--expanded[data-short-landscape='true'] [data-action='backward'] svg,
.vh360.vh360--expanded[data-short-landscape='true'] [data-action='forward'] svg { display: none; }
.vh360.vh360--expanded[data-short-landscape='true'] .vh360__control-button { padding: 6px; font-size: 12px; }
.vh360.vh360--expanded[data-short-landscape='true'] .vh360__time { font-size: 11px; }

/* Le panneau Vues, contrairement à la scène, reste dans les zones sûres. */
.vh360.vh360--expanded[data-viewport-orientation='landscape'][data-panel='views'] .vh360__views-panel {
  top: max(0.75rem, env(safe-area-inset-top, 0px));
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
  left: max(0.75rem, env(safe-area-inset-left, 0px));
  width: auto;
  height: auto;
  max-height: none;
  transform: none;
}

/* 4.0.4 — Marges fiables et commandes discrètes ; aucune fonction supprimée. */
.vh360 .vh360__stage { width: 100%; min-width: 0; max-width: 100%; }
.vh360 .vh360__controls { background: rgba(255,255,255,.78); border-bottom-color: rgba(70,43,93,.08); }
.vh360 .vh360__control-button { font-weight: 530; background: transparent; }
.vh360 .vh360__play-button { border: 1px solid rgba(70,43,93,.13); color: #3d3548; }
.vh360 .vh360__expand-button { background: transparent; color: #4b4255; border: 1px solid rgba(70,43,93,.13); }
.vh360 .vh360__views-trigger b { background: rgba(116,69,165,.09); color: #7445a5; font-weight: 600; }
.vh360 .vh360__view-button { background: #f7f6f9; }
.vh360 .vh360__view-button[aria-current='true'] { background: #f3eff7; box-shadow: inset 2px 0 0 #9876b9; }
.vh360 .vh360__view-button[aria-current='true'] .vh360__view-number { background: #e9e1f1; color: #63368f; }
.vh360 .vh360__timeline-track { position: relative; min-width: 0; height: 44px; grid-column: 1; grid-row: 1; }
.vh360 .vh360__timeline-track .vh360__buffered-track { right: 0; }
.vh360 .vh360__time { grid-row: 1; }
.vh360 .vh360__seek::-webkit-slider-thumb { box-shadow: none; width: 12px; height: 12px; margin-top: -4px; }
.vh360 .vh360__seek::-moz-range-thumb { box-shadow: none; width: 10px; height: 10px; }
.vh360 .vh360__gyro-shortcut { min-width: 44px; width: 44px; padding: 10px; border: 1px solid transparent; }
.vh360 .vh360__gyro-shortcut[aria-pressed='true'] { color: #7445a5; border-color: rgba(116,69,165,.22); }
.vh360 .vh360__motion-consent { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 3px; color: #fff; font-size: 12px; text-shadow: 0 1px 4px #000; cursor: pointer; }
.vh360 .vh360__motion-consent input { width: 16px; height: 16px; margin: 0; accent-color: #7445a5; }
.vh360 .vh360__stage-view-button { background: rgba(15,12,20,.5); color: #fff; border: 1px solid rgba(255,255,255,.25); box-shadow: none; }
.vh360 .vh360__stage-view-button:hover { background: rgba(15,12,20,.72); color: #fff; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__topbar { background: linear-gradient(180deg,rgba(13,9,20,.68),rgba(13,9,20,0)); }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__topbar-actions a,
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__topbar-actions button { background: rgba(15,12,20,.42); color: #fff; border: 1px solid rgba(255,255,255,.25); }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__controls { background: linear-gradient(0deg,rgba(13,9,20,.82),rgba(13,9,20,.45)); }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__play-button { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.3); }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__views-trigger b { background: rgba(255,255,255,.12); color: #fff; }
.vh360.vh360--expanded[data-viewport-orientation='landscape'] .vh360__gyro-shortcut[aria-pressed='true'] { color: #e5d3f4; border-color: rgba(229,211,244,.6); }
@media (max-width: 699px) {
  .vh360:not(.vh360--expanded) .vh360__theatre { padding: 12px; }
  .vh360:not(.vh360--expanded) .vh360__expand-button { width: 44px; min-width: 44px; padding: 10px; }
  .vh360:not(.vh360--expanded) .vh360__expand-button span { display: none; }
  .vh360.vh360--motion-available .vh360__utility-controls { grid-template-columns: minmax(0,1fr) minmax(0,1fr) 44px minmax(0,1fr); }
  .vh360 .vh360__control-button { font-size: 13px; }
}
@media (max-width: 359px) {
  .vh360.vh360--motion-available [data-action='settings'] span { display: none; }
}
.vh360.vh360--expanded[data-short-landscape='true'] .vh360__controls { grid-template-columns: minmax(110px,1fr) auto; gap: 6px; }
.vh360.vh360--expanded[data-short-landscape='true'] [data-action='views'] span { display: none; }
.vh360.vh360--expanded[data-short-landscape='true'] [data-action='views'] svg { display: block; }
.vh360.vh360--expanded[data-short-landscape='true'] [data-action='views'] { min-width: 44px; }

/* 4.0.5 — tactile 2 axes et préparation de caméra sans assombrissement. */
.vh360__scene-host canvas { touch-action: none; }
.vh360--preparing .vh360__loading {
  inset: auto auto 1rem 50%;
  display: flex;
  align-items: center;
  gap: .45rem;
  max-width: calc(100% - 2rem);
  padding: .5rem .7rem;
  transform: translateX(-50%);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 999px;
  background: rgba(16,12,23,.62);
  color: #fff;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  pointer-events: none;
}
.vh360--preparing .vh360__loading p { font-size: .72rem; font-weight: 500; }
.vh360--preparing .vh360__spinner { width: .85rem; height: .85rem; margin: 0; border-width: 2px; }
.vh360--preparing .vh360__scene-host { opacity: 1; }
.vh360--expanded.vh360--preparing .vh360__loading { bottom: calc(5.8rem + env(safe-area-inset-bottom,0px)); }
@media (max-height: 320px) and (orientation: landscape) {
  .vh360--expanded.vh360--preparing .vh360__loading { bottom: calc(3.7rem + env(safe-area-inset-bottom,0px)); }
}
