* {
  box-sizing: border-box;
}

.content-overlay-open--fixed {
  overflow: hidden;
}

.content-block-overlay-container {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}

content-overlay {
  display: none;
  position: relative;
  flex: 0;
}
content-overlay .content-overlay__content > *[slot=content] {
  height: 100%;
  overflow: auto;
}
content-overlay.content-overlay-active {
  display: flex;
}
content-overlay[vertical=left] {
  align-items: flex-start;
}
content-overlay[vertical=center] {
  align-items: center;
}
content-overlay[vertical=right] {
  align-items: flex-end;
}
content-overlay[vertical=top] {
  justify-content: flex-start;
  top: 0;
}
content-overlay[vertical=center] {
  justify-content: center;
}
content-overlay[vertical=bottom] {
  justify-content: flex-end;
  bottom: 0;
}
content-overlay .content-overlay-background {
  background: rgba(255, 255, 255, 0.6);
  bottom: 0;
  display: none;
  top: 0;
  z-index: 100000;
  right: 0;
  left: 0;
  width: 100%;
}
content-overlay .content-overlay-background.active {
  display: block;
}
content-overlay .content-overlay__header {
  display: flex;
  align-items: center;
}
content-overlay .content-overlay__close {
  order: 2;
  margin-left: auto;
  cursor: pointer;
  z-index: 1;
  appearance: none;
  background: none;
  border: none;
  min-width: 40px;
}
content-overlay[position=fixed] .content-overlay-background {
  position: fixed;
}
content-overlay[position=absolute] {
  position: absolute;
  box-sizing: border-box;
  z-index: 100000;
  height: 100%;
  width: 100%;
  left: 0;
}
content-overlay[position=absolute] .content-overlay-background {
  position: static;
}
content-overlay[position=absolute] .content-overlay__content, content-overlay[position=fixed] .content-overlay__content {
  flex: 1;
  overflow: auto;
}
content-overlay [role=dialog] {
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: flex-start;
}
content-overlay [role=dialog].hidden {
  display: none;
}
content-overlay[full-screen=true] {
  height: 100%;
}
content-overlay[full-screen=true] .content-overlay-background {
  height: 100%;
}

/* this is added to the body when a dialog is open */
body.has-dialog {
  overflow: hidden;
}