/**************************\
  Basic Modal Styles
\**************************/
.modal {
    display: none;
}

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

.modal__overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(242, 150, 0, .9);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 30;
}

.modal__container {
    background-color: #fff;
    padding: 60px;
    max-width: 1000px;
    width: 100%;
    max-height: 80vh;
    overflow-y: auto;
    box-sizing: border-box;
    position: relative;
}

.modal__container--case {
    background-color: #fff;
    padding: 60px;
    max-width: 800px;
    width: 100%;
    max-height: 80vh;
    overflow-y: auto;
    box-sizing: border-box;
    position: relative;
}

@media screen and (max-width: 960px) {

    .modal__container,
    .modal__container--case {
        padding: 60px 4vw;
        max-width: 100%;
        max-height: 80vh;
        margin: 4vw;
        overflow-y: auto;
        box-sizing: border-box;
    }
}

.modal__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal__title {
    margin-top: 0;
    margin-bottom: 0;
    font-weight: 600;
    font-size: 1.25rem;
    line-height: 1.25;
    color: #00449e;
    box-sizing: border-box;
}

.modal__close__wrap__batsu {
    position: absolute;
    top: 15px;
    right: 15px;
}

.modal__close__wrap {
    display: flex;
    width: 100%;
    justify-content: center;
    margin-top: 60px;
}

.modal__close {
    display: block;
    border: 2px solid rgb(242, 150, 0);
    width: 32px;
    height: 32px;
    position: relative;
    border-radius: 50%;
}

.modal__close::before,
.modal__close::after {
    content: "";
    display: block;
    width: 60%;
    height: 2px;
    background: rgb(242, 150, 0);
    transform: rotate(45deg);
    transform-origin: 0% 50%;
    position: absolute;
    top: 8px;
    left: 8px;
}

.modal__close::after {
    transform: rotate(-45deg);
    transform-origin: 100% 50%;
    left: auto;
    right: 8px;
}

@media screen and (max-width: 960px) {
    .modal__close__wrap__batsu {
        position: absolute;
        top: 15px;
        right: 15px;
    }

    .modal__close__wrap {
        margin-top: 50px;
    }

    .modal__close {
        display: block;
        border: none;
        width: 28px;
        height: 28px;
        position: relative;
    }
}

.modal__content {
    margin-top: 2rem;
    margin-bottom: 2rem;
    line-height: 1.5;
    color: rgba(0, 0, 0, .8);
}

.modal__btn {
    font-size: .875rem;
    background-color: #fff;
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    cursor: pointer;
    text-transform: none;
    overflow: visible;
    line-height: 1.6;
    display: block;
    transition: background-color .5s, color .5s;
}

/**************************\
Demo Animation Style
\**************************/
@keyframes mmfadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes mmfadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

.micromodal-slide {
    display: none;
}

.micromodal-slide.is-open {
    display: block;
}

.micromodal-slide[aria-hidden="false"] .modal__overlay {
    animation: mmfadeIn .3s cubic-bezier(0.0, 0.0, 0.2, 1);
}

.micromodal-slide[aria-hidden="false"] .modal__container {
    animation: mmfadeIn 1.3s cubic-bezier(0, 0, .2, 1);
}

.micromodal-slide[aria-hidden="true"] .modal__overlay {
    animation: mmfadeOut .3s cubic-bezier(0.0, 0.0, 0.2, 1);
}

.micromodal-slide[aria-hidden="true"] .modal__container {
    animation: mmfadeOut .3s cubic-bezier(0, 0, .2, 1);
}

.micromodal-slide .modal__container,
.micromodal-slide .modal__overlay {
    will-change: transform;
}