@charset "UTF-8";
/*
  /rakurakucloud/jugyoinportal/asset/css/object/component/c-modal.css
  モーダル共通コンポーネント
*/

.js-modal-trigger {
  cursor: pointer;
}

/* スクロールロック（html に付与。スクロールバー分の幅を確保して背景の横ずれを防ぐ） */
.is-modal-body-lock {
  overflow: hidden;
  scrollbar-gutter: stable;
}

.c-modal {
  display: none;
  position: fixed;
  z-index: var(--z-index-overlay);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  &.is-modal-open {
    display: block;
  }

  /* オーバーレイ */
  .c-modal__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    cursor: pointer;
  }

  /* モーダル本体 */
  .c-modal__inner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: var(--z-index-modal);
    width: 90%;
    max-width: 600px;
    max-height: 80vh;
    background: var(--white);
    border-radius: 10px;
    display: flex;
    flex-direction: column;
  }

  /* コンテンツ */
  .c-modal__body {
    overflow-y: auto;
    padding: 40px 30px 30px;
    @media screen and (max-width: 840px) {
      padding: 30px 20px 25px;
    }
  }

  /* ×ボタン */
  .c-modal__close {
    position: absolute;
    top: -12px;
    right: -12px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: var(--black);
    border: none;
    cursor: pointer;
    &::before,
    &::after {
      content: "";
      position: absolute;
      background: var(--white);
      width: 3px;
      height: 14px;
      top: 8px;
      left: 14px;
    }
    &::before {
      transform: rotate(45deg);
    }
    &::after {
      transform: rotate(-45deg);
    }
  }
}
