:root {
  --hystmodal-speed: 0.2s;
  --hystmodal-zindex: 70;
}

.hystmodal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  pointer-events: none;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 0px min-content 0px;
  justify-content: center;
  align-content: space-between;
  visibility: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.hystmodal::-webkit-scrollbar {
  display: none;
}

.hystmodal::before {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  display: block;
  background-color: #000;
  opacity: 0;
  pointer-events: none;
}

.hystmodal--animated::before {
  transition: opacity var(--hystmodal-speed) ease;
}

.hystmodal--active::before {
  opacity: 0.6;
}

.hystmodal--moved,
.hystmodal--active {
  opacity: 1;
  pointer-events: none;
  visibility: visible;
}

.hystmodal--active {
  pointer-events: auto;
}

.hystmodal__wrap {
  display: block;
  min-width: 0;
  grid-row: 2 / 3;
}

.hystmodal__window {
  min-width: 0;
  grid-row: 2 / 3;
  position: relative;
  z-index: 10;
  box-sizing: border-box;
  flex-shrink: 0;
  flex-grow: 0;
  background: #fff;
  width: 600px;
  max-width: 100%;
  overflow: visible;
  transform: scale(0.95);
  opacity: 0;
  margin: 50px auto;
}

.hystmodal__window--loading {
  min-height: 400px;
  background-image: url("data:image/svg+xml,%0A%3Csvg width='105' height='105' viewBox='0 0 105 105' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Ccircle cx='12.5' cy='12.5' r='12.5'%3E%3Canimate attributeName='fill-opacity' begin='0s' dur='1s' values='1;.2;1' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='12.5' cy='52.5' r='12.5' fill-opacity='.5'%3E%3Canimate attributeName='fill-opacity' begin='100ms' dur='1s' values='1;.2;1' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='52.5' cy='12.5' r='12.5'%3E%3Canimate attributeName='fill-opacity' begin='300ms' dur='1s' values='1;.2;1' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='52.5' cy='52.5' r='12.5'%3E%3Canimate attributeName='fill-opacity' begin='600ms' dur='1s' values='1;.2;1' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='92.5' cy='12.5' r='12.5'%3E%3Canimate attributeName='fill-opacity' begin='800ms' dur='1s' values='1;.2;1' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='92.5' cy='52.5' r='12.5'%3E%3Canimate attributeName='fill-opacity' begin='400ms' dur='1s' values='1;.2;1' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='12.5' cy='92.5' r='12.5'%3E%3Canimate attributeName='fill-opacity' begin='700ms' dur='1s' values='1;.2;1' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='52.5' cy='92.5' r='12.5'%3E%3Canimate attributeName='fill-opacity' begin='500ms' dur='1s' values='1;.2;1' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='92.5' cy='92.5' r='12.5'%3E%3Canimate attributeName='fill-opacity' begin='200ms' dur='1s' values='1;.2;1' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3C/svg%3E%0A");
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: 48px;
}

.hystmodal--animated .hystmodal__window {
  transition: transform var(--hystmodal-speed) ease 0s, opacity var(--hystmodal-speed) ease 0s;
}

.hystmodal--active .hystmodal__window {
  transform: none;
  opacity: 1;
}

.hystmodal__close {
  position: absolute;
  z-index: 10;
  top: 15px;
  right: 15px;
  display: block;
  width: 25px;
  height: 25px;
  background-color: transparent;
  background-position: center center;
  background-repeat: no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' stroke='%23000' stroke-linecap='square' stroke-miterlimit='50' stroke-width='2' d='M22 2L2 22'/%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='square' stroke-miterlimit='50' stroke-width='2' d='M2 2l20 20'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  border: none;
  font-size: 0;
  cursor: pointer;
  outline: none;
}

.hystmodal__close--wh {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' stroke='%23fff' stroke-linecap='square' stroke-miterlimit='50' stroke-width='2' d='M22 2L2 22'/%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='square' stroke-miterlimit='50' stroke-width='2' d='M2 2l20 20'/%3E%3C/svg%3E");
}

.hystmodal__close:hover {
  opacity: 0.95;
}

.hystmodal__close:focus {
  outline: 2px dotted rgba(0, 0, 0, 0.7);
  outline-offset: 2px;
}

.hystmodal__close--wh:focus {
  outline: 2px dotted rgba(255, 255, 255, 0.7);
}

@media all and (max-width:767px) {
  .hystmodal__close {
    top: 10px;
    right: 10px;
    width: 24px;
    height: 24px;
  }

  .hystmodal__window {
    margin-top: 0;
    margin-bottom: 0;
  }
}
