/**
 * Zest Consent — embed facade chrome.
 *
 * A neutralised iframe has no `src`, so it collapses. The wrapper keeps a
 * 16:9 box and layers a consent-prompt button over it until consent is given.
 */
.zest-embed {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #1a1a1a;
  overflow: hidden;
}

/* Legacy fallback for browsers without aspect-ratio. */
@supports not (aspect-ratio: 16 / 9) {
  .zest-embed {
    height: 0;
    padding-bottom: 56.25%;
  }
}

.zest-embed iframe,
.zest-embed .zest-embed__play {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.zest-embed__play {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin: 0;
  padding: 1.5rem;
  color: #fff;
  background: #1a1a1a;
  font: inherit;
  text-align: center;
  cursor: pointer;
}

.zest-embed__play:hover,
.zest-embed__play:focus-visible {
  background: #2a2a2a;
}

.zest-embed__notice {
  max-width: 32rem;
  font-size: 0.9375rem;
  line-height: 1.4;
  opacity: 0.85;
}

.zest-embed__action {
  display: inline-block;
  padding: 0.5rem 1.25rem;
  border-radius: 999px;
  background: #fff;
  color: #1a1a1a;
  font-weight: 600;
  font-size: 0.9375rem;
}

/*
 * Keep the responsive 16:9 box after load too: the iframe stays absolutely
 * positioned and fills the wrapper, overriding its intrinsic width/height
 * attributes. (Releasing the box would collapse it to the oEmbed default of
 * ~500x281.) Override .zest-embed's aspect-ratio for non-video embeds.
 */
.zest-embed--loaded {
  background: transparent;
}
