/**
 * @file Rijksvideo styles.
 */

.rijksvideo {
  --rijksvideo-border-radius: 0.25rem;
  --rijksvideo-color-primary: #154273;
  --rijksvideo-color-primary-dark: color-mix(in srgb, var(--rijksvideo-color-primary) 80%, black);
  --rijksvideo-color-primary-light: #dce3ea;
  --rijksvideo-color-primary-support: #95a9c0;
  --rijksvideo-color-secondary: #007bc7;
  --rijksvideo-color-white: white;
  --rijksvideo-gap: var(--rijksvideo-size-tiny);
  --rijksvideo-icon-size: 1.5em;
  --rijksvideo-inset: var(--rijksvideo-size-small);
  --rijksvideo-outline-width: 2px;
  --rijksvideo-size-tiny: 0.25rem;
  --rijksvideo-size-small: 0.5rem;
  --rijksvideo-size-medium: 1rem;
  --rijksvideo-transition-duration: 0.2s;
  --rijksvideo-transition-easing: ease-in-out;

  display: flex;
  flex-direction: column;
}

.rijksvideo :focus-visible {
  outline: var(--rijksvideo-outline-width) solid var(--rijksvideo-color-secondary);
  outline-offset: var(--rijksvideo-outline-width);
}

.rijksvideo.is-fullscreen h2 {
  display: none;
}

/* Button. */
.rijksvideo__button {
  appearance: none;
  background: var(--rijksvideo-color-primary-light);
  border: none;
  border-radius: var(--rijksvideo-border-radius);
  color: var(--rijksvideo-color-primary);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  padding: var(--rijksvideo-size-tiny);
}

.rijksvideo__button--primary {
  background-color: var(--rijksvideo-color-primary);
  color: var(--rijksvideo-color-white);
}

.rijksvideo__button:hover {
  background-color: var(--rijksvideo-color-primary);
  color: var(--rijksvideo-color-white);
}

.rijksvideo__button--primary:hover {
  background-color: var(--rijksvideo-color-primary-dark);
}

/* Icon. */
.rijksvideo__icon {
  block-size: var(--rijksvideo-icon-size);
  inline-size: var(--rijksvideo-icon-size);
}

.rijksvideo__icon svg {
  block-size: inherit;
  display: block;
  fill: currentcolor;
  inline-size: inherit;
}

/* Element. */
.rijksvideo__element {
  flex: 1;
  position: relative;
}

/* Video. */
.rijksvideo__video {
  block-size: 100%;
  inline-size: 100%;
}

/* Controls. */
.rijksvideo__controls {
  background: var(--rijksvideo-color-primary-light);
  border-radius: 0 0 var(--rijksvideo-border-radius) var(--rijksvideo-border-radius);
  display: grid;
  gap: var(--rijksvideo-gap);
  grid-template-columns: auto 1fr auto auto;
}

.rijksvideo__controls-group {
  align-items: center;
  display: flex;
}

/* Slider. */
.rijksvideo__slider {
  background-color: var(--rijksvideo-color-primary-support);
  block-size: 6px;
  border-radius: 2px;
  color: var(--rijksvideo-color-primary);
  cursor: pointer;
  display: grid;
  overflow: clip;
  z-index: 1;
}

.rijksvideo__slider-bar {
  background-color: currentcolor;
  block-size: 100%;
  grid-area: 1 / 1;
  inline-size: 100%;
  transform: scaleX(0);
  transform-origin: 0 0;
}

/* Play. */
.rijksvideo__play {
  inset-block-start: 50%;
  inset-inline-start: 50%;
  font-size: 2rem;
  padding: var(--rijksvideo-size-medium);
  transform: translate(-50%, -50%);
  position: absolute;
}

.rijksvideo__play:not(.is-shown) {
  display: none;
}

/* Handler. */
.rijksvideo__handler:is(.is-active, .is-muted, .is-playing) > :first-child,
.rijksvideo__handler:not(.is-active, .is-muted, .is-playing) > :last-child {
  display: none;
}

.rijksvideo__handler:focus-visible {
  outline-offset: calc(var(--rijksvideo-outline-width) * -1);
}

/* Progress. */
.rijksvideo__progress {
  flex: 1 0 0%;
  margin-inline: var(--rijksvideo-size-small);
  position: relative;
}

.rijksvideo__progress-loaded {
  background-color: var(--rijksvideo-color-white);
  z-index: -1;
}

/* Volume. */
.rijksvideo__volume {
  inline-size: clamp(2rem, 8vw, 4rem);
  margin-inline-start: var(--rijksvideo-size-small);
}

/* Time. */
.rijksvideo__time {
  font-family: system-ui, sans-serif;
  font-size: 0.875em;
  font-variant-numeric: tabular-nums;
}

/* Details. */
.rijksvideo__details {
  border: 1px solid var(--rijksvideo-color-primary-light);
  border-radius: var(--rijksvideo-border-radius);
  margin-block-start: var(--rijksvideo-size-small);
  padding-block: var(--rijksvideo-size-tiny);
  padding-inline: var(--rijksvideo-size-medium);
}

.rijksvideo.is-fullscreen .rijksvideo__details {
  display: none;
}

.rijksvideo__details summary {
  align-items: center;
  border-radius: var(--rijksvideo-border-radius);
  cursor: pointer;
  display: flex;
  font-weight: bold;
  gap: var(--rijksvideo-gap);
  justify-content: space-between;
  margin-block: calc((var(--rijksvideo-size-tiny) * -1) - 1px);
  margin-inline: calc((var(--rijksvideo-size-medium) * -1) - 1px);
  padding-block: var(--rijksvideo-size-tiny);
  padding-inline: var(--rijksvideo-size-medium);
}

.rijksvideo__details summary::-webkit-details-marker,
.rijksvideo__details summary::marker {
  content: "";
  display: none;
}

.rijksvideo__details[open] summary .rijksvideo__icon {
  transform: rotate(90deg);
}

.rijksvideo__details-content {
  padding-block-start: var(--rijksvideo-size-medium);
}

.rijksvideo__details-content > *:first-child {
  margin-block-start: 0;
}

.rijksvideo__details h3 {
  font-size: 1rem;
  margin-block: var(--rijksvideo-gap);
}

@media (prefers-reduced-motion: no-preference) {
  .rijksvideo__details summary .rijksvideo__icon {
    transition: transform var(--rijksvideo-transition-duration) var(--rijksvideo-transition-easing);
  }
}
