@import '../config/import';

.crayons-modal {
  --modal-max-width: 640px;
  --modal-padding: var(--su-3);
  --modal-backdrop-pointer-events: none;
  --modal-border: none;
  --modal-header-border: 1px solid var(--divider);
  --modal-header-padding: var(--su-2) var(--su-2) var(--su-2)
    var(--modal-padding);
  --modal-alignment: unset;
  --modal-header-alignment: space-between;
  --modal-overflow: hidden;

  @media (min-width: $breakpoint-s) {
    --modal-padding: var(--su-4);
  }

  @media (min-width: $breakpoint-m) {
    --modal-padding: var(--su-7);
  }

  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: var(--z-modal);
  pointer-events: none;

  &--bg-dismissible {
    --modal-backdrop-pointer-events: auto;
  }

  &--prompt {
    --modal-header-border: none;
    --modal-header-padding: var(--modal-padding) var(--su-8) 0
      var(--modal-padding);
    --modal-body-margin: 0;

    @media (min-width: $breakpoint-m) {
      --modal-body-margin: calc((var(--modal-padding) * -1) + var(--su-4));
    }

    .crayons-modal__dismiss {
      position: absolute;
      right: var(--su-2);
      top: var(--su-2);
    }
  }

  &--centered {
    --modal-header-padding: var(--su-7) var(--su-8) 0 var(--su-8);
    --modal-alignment: center;
    --modal-header-alignment: center;
  }

  &--danger {
    --modal-border: 4px solid var(--modal-danger-border-color);
  }

  &__backdrop {
    background: var(--modal-backdrop);
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    pointer-events: auto;
  }

  &__box {
    display: grid;
    grid-template-rows: auto 1fr;
    max-width: var(--modal-max-width);
    background: var(--modal-bg);
    z-index: var(--z-elevate);
    max-height: 100%;
    width: 100%;
    height: 100%;
    overflow: var(--modal-overflow);
    position: relative;
    pointer-events: auto;
    border-radius: var(--radius-large-auto);
    border: var(--modal-border);
    text-align: var(--modal-alignment);
    box-shadow: var(--shadow-2);

    @media (min-width: $breakpoint-s) {
      max-height: calc(100% - var(--su-6));
      height: auto;
      width: 90%;
    }

    &__header {
      border-bottom: var(--modal-header-border);
      padding: var(--modal-header-padding);
      flex-shrink: 0;
      display: flex;
      justify-content: var(--modal-header-alignment);
      align-items: center;
    }

    &__body {
      padding: var(--modal-padding);
      margin-top: var(--modal-body-margin);
      max-height: 100%;
      overflow-y: auto;
      grid-auto-rows: min-content;
    }
  }

  &--small {
    @media (min-width: $breakpoint-s) {
      --modal-max-width: 480px;
    }
  }

  &--large {
    @media (min-width: $breakpoint-m) {
      --modal-max-width: 768px;
    }
  }

  &--sheet {
    height: 100%;

    .crayons-modal__box {
      height: 100%;
      max-height: 100%;
      border-radius: 0;
      grid-template-rows: 1fr;
    }

    &.crayons-modal--left {
      .crayons-modal__box {
        position: absolute;
        left: 0;
      }
    }

    &.crayons-modal--right {
      .crayons-modal__box {
        position: absolute;
        right: 0;
      }
    }
  }

  &--overflow-visible {
    --modal-overflow: visible;
  }

  &--prompt {
    @media (min-width: $breakpoint-s) {
      --modal-max-width: 480px;
    }
  }
}


.cookie-consent-modal {
  background: white;
  position: fixed;
  padding: var(--su-5);
  bottom: var(--su-2);
  left: var(--su-3);
  right: var(--su-3);
  margin: 0 auto;
  max-width: 700px;
  border-radius: var(--radius);
  box-shadow: var(--shadow-2);
  text-align: center;
  z-index: var(--z-modal);
  p {
    font-size: var(--fs-base);
    color: var(--text-color);
    margin-bottom: var(--su-2);
  }
  .cookie-consent-modal__actions button {
    font-size: var(--fs-base);
    margin: var(--su-2);
  }
}
