/* Медиатека: блоки на сайте (классы из lib/media-library.js) */

.site-media {
  margin: var(--media-my, 1.25rem) 0;
  box-sizing: border-box;
  max-width: 100%;
}

.site-media--my-compact { --media-my: 0.75rem; }
.site-media--my-roomy { --media-my: 2rem; }

.site-media--align-left { margin-left: 0; margin-right: auto; }
.site-media--align-right { margin-left: auto; margin-right: 0; }

.site-media--width-narrow { max-width: min(420px, 100%); }
.site-media--width-wide { max-width: min(960px, 100%); }
.site-media--width-auto { max-width: max-content; }

.site-media--flow-float-left {
  float: left;
  margin: 0.35rem 1.25rem 0.75rem 0;
  max-width: min(48%, 420px);
}
.site-media--flow-float-right {
  float: right;
  margin: 0.35rem 0 0.75rem 1.25rem;
  max-width: min(48%, 420px);
}

.site-media--rounded img,
.site-media--rounded video {
  border-radius: var(--radius-card-media, 12px);
}

.site-media--radius-sm img,
.site-media--radius-sm video { border-radius: 6px; }
.site-media--radius-lg img,
.site-media--radius-lg video { border-radius: 18px; }
.site-media--radius-full img,
.site-media--radius-full video { border-radius: 999px; }

.site-media--shadow img,
.site-media--shadow video {
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

.site-media--border-thin {
  box-shadow: inset 0 0 0 1px var(--border, #2a2a30);
}
.site-media--border-accent {
  box-shadow: inset 0 0 0 2px var(--accent, #c41e3a);
}
.site-media--border-thick {
  box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--text) 25%, transparent);
}

.site-media--image img,
.site-media--file video {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
}

.site-media--fit-contain img,
.site-media--fit-contain video { object-fit: contain; max-height: min(70vh, 520px); }
.site-media--fit-cover img,
.site-media--fit-cover video { object-fit: cover; max-height: min(70vh, 520px); }
.site-media--fit-fill img,
.site-media--fit-fill video { object-fit: fill; height: min(50vh, 400px); }

.site-media__caption,
.site-media__title {
  padding: 0.65rem 0 0;
  font-size: 0.9rem;
  color: var(--text-muted);
  margin: 0;
}

.site-media__embed-wrap {
  position: relative;
  aspect-ratio: 16 / 9;
  max-height: min(70vh, 520px);
  border-radius: inherit;
  overflow: hidden;
}

.site-media__embed-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.site-media--gallery {
  display: grid;
  grid-template-columns: repeat(var(--gallery-cols, 3), minmax(0, 1fr));
  gap: 0.75rem;
}

.site-media__tile {
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-card-media, 12px);
  background: color-mix(in srgb, var(--surface) 90%, transparent);
}

.site-media__tile img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 4 / 3;
}

.site-media--carousel {
  position: relative;
}

.site-media-carousel__track {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding-bottom: 0.25rem;
}

.site-media-carousel__slide {
  flex: 0 0 min(88%, 420px);
  scroll-snap-align: start;
  border-radius: var(--radius-card-media, 12px);
  overflow: hidden;
  background: color-mix(in srgb, var(--surface) 90%, transparent);
}

.site-media-carousel__slide img,
.site-media-carousel__slide video {
  display: block;
  width: 100%;
  height: auto;
}

.site-media-carousel__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 0.75rem;
}

.site-media-carousel__nav button {
  font: inherit;
  padding: 0.35rem 0.85rem;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  cursor: pointer;
  border-radius: 4px;
}

.site-media--audio audio {
  width: 100%;
  max-width: 100%;
}

.site-media--icon {
  font-size: 2rem;
  color: var(--accent);
  text-align: center;
}

/* Совместимость с монологом */
.monologue-media.site-media {
  border-radius: var(--radius-card-media, 12px);
  overflow: hidden;
}

.rich-content::after {
  content: '';
  display: table;
  clear: both;
}

@media (max-width: 640px) {
  .site-media--gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .site-media--flow-float-left,
  .site-media--flow-float-right {
    float: none;
    max-width: 100%;
    margin: 1rem 0;
  }
}
