// Name:            Modal
// Description:     Modal of website
//
// Component:       `c-modal`
//
// Dependencies:    `settings/v7/colors.tokens`
//                  `settings/v7/colors.themes`
//                  `settings/v7/colors.mode`
//                  `settings/v7/global`
//                  `settings/v7/spacing.tokens`
//
// ========================================================================
@use '../../../assets/sass/settings/v7/colors.tokens' as *;
@use '../../../assets/sass/settings/v7/layout-standard' as *;
@use '../../../assets/sass/settings/v7/global' as *;
@use '../../../assets/sass/settings/v7/spacing.tokens' as *;
@use '../../../assets/sass/tools/v7/mq' as *;
@use '../../../assets/sass/tools/v7/zindex' as *;
@use '../../../assets/sass/tools/v7/typography' as *;

$modal-close-position: -12px;

.c-modal {
  --modal-size: 90%;

  &__dialog {
    opacity: 0;
    visibility: hidden;
    background: rgba($ui-02, .5);
    transition: opacity .25s ease;
    @include z(clouds);
  }

  &__close {
    top: 1rem;
    right: 1rem;
    fill: $ui-02;
    @include z(high);
  }

  &__wrap {
    top: -50%;
    transition: top .5s ease-in-out;
  }

  input {
    &:checked {
      ~ .c-modal__dialog {
        opacity: 1;
        visibility: visible;
        .c-modal__wrap {
          top: 0;
        }
      }
    }
  }

  &__media {
    max-width: var(--modal-size);
    margin: 0 auto;
    @include bp(md) {
      --modal-size: 70%;
    }
    &__close {
      top: $modal-close-position;
      right: $modal-close-position;
      border: 2px solid $ui-01;
      background: $ui-02;
      @include z(high);
    }
  }

  &__content {
    background: $ui-01;
    border-radius: 2px;
  }

  &__footer {
    // background: $ui-01;
    border-radius: 2px;
    :first-child {
      margin-right: auto;
    }
  }

  &__textual {
    max-width: var(--modal-size);
    margin: 0 auto;
    max-height: 80vh;
    @include bp(md) {
      --modal-size: 50%;
    }
  }

  &__image {
    max-height: 90svh;
  }  

  &--orientation {
    display: none;
    height: 100vh;

    height: 100vh;
    width: 100vw;
    @include z(cover);

    @media (max-width: 768px) and (orientation: landscape) {
      display: flex;
    }

    .o-icon {
      animation: rotate 3s infinite ease-in-out;
    }
  }
  
}

.c-modal--popover {
  top: 0;
  @supports not selector(:popover-open) {
    /* Questo blocco di codice verrà applicato se il browser NON supporta 'popover' */   
    display: none;
  }
  @include bp(sm){
    height: fit-content;
  }
  &::backdrop{
    backdrop-filter: blur(5px);
    background-color: rgba($ui-02, .8);
    transition: display var(--_duration) var(--ease-4);
    touch-action: none;
  }  
  &__body {
    height: calc(100% - 2*$padding-small);
    @include bp(sm){
      height: auto;
    }
  }
  &__btn {
    @supports not selector(:popover-open) {
      /* Questo blocco di codice verrà applicato se il browser NON supporta 'popover' */   
      display: none;
    }
  }
}

