@charset "UTF-8";

.common-title-box {

    .en-title {
        font-size: 4.6rem;

        @media screen and (max-width: 767px) {
          font-size: 2.6rem;
        }
    }
}

/* overview */
.sec-overview{

    .content-box{
    
        .detail-box{
            display: flex;
            gap: 7rem;
            margin-bottom: 7.7rem;
            margin-top: 5rem;

            @media screen and (max-width: 767px) {
              margin-bottom: 5rem;
              gap: 4rem;
              flex-direction: column;
            }
        
            .left-col{
                @media screen and (max-width: 767px) {
                  order: 1;
                }

                 .detail-table{
                    flex: 1;

                    & td {
                        line-height: 1.7;
                    }

                    & th, & td {
                        @media screen and (max-width: 767px) {
                            display: block !important;
                            width: 100% !important;
                        }
                    }

                    & th {
                        @media screen and (max-width: 767px) {
                          padding: 1rem 2rem;
                        }
                    }
                }
            
            }
        }
        .bottom-box{
            width: 97rem;
            margin: 0 auto;

            @media screen and (max-width: 767px) {
              width: 100%;
            }

            & img {
                width: 100%;
            }
        
        }
    }
}

/* access */
.sec-access {

    .content-box {
        display: flex;
        justify-content: space-between;
        gap: 8.5rem;

        @media screen and (max-width: 767px) {
          flex-direction: column;
          gap: 3rem;
        }

        .left-col {
            flex: 0 0 50rem;

            @media screen and (max-width: 767px) {
              flex: 0 0 100%;
            }

            & iframe {
                width: 100%;
            }

        }

        .right-col {
            display: flex;
            flex-direction: column;
            gap: 3.5rem;

            .detail-box {

                .title {
                    font-size: 1.8rem;
                    font-weight: bold;
                    color: var(--primary-color);
                    margin-bottom: 1.4rem;
                }

                & a {
                    color: var(--primary-color);
                }
                
                 & p {
                    font-size: 1.6rem;
                    line-height: 1.7;
                 }

            }
        }
    }
}

/* 予約状況 */
.sec-reservation {

    .content-box {
        
        .monthly-calendar {
            width: 60rem;
            max-width: 60rem;
            margin: 0 auto;

            @media screen and (max-width: 767px) {
              width: 100%;
              max-width: 100%;
            }

            & table {

                & caption {
                    font-size: 2rem;
                    font-weight: bold;
                    color: var(--primary-color);
                    margin-bottom: 2rem;
                }

                .calendar-daylink {
                    pointer-events: none !important;
                }
            }

            .monthly-prev-next {
                margin-top: 2rem;

                .monthly-prev, .monthly-next {

                    & a {
                        text-decoration: underline;
                        color: var(--primary-color);
                    }
            }
            }
        }
    }
}

/* flow */
.sec-flow {

    .content-box {
        display: flex;
        flex-direction: column;
        gap: 7rem;

        @media screen and (max-width: 767px) {
          gap: 4rem;
        }

        .step-box {
            
            .title-box{
                margin-bottom: 3rem;
                font-size: 3rem;
                font-weight: bold;

                & span {
                    text-transform: uppercase;
                    color: var(--primary-color);
                }
            
            }
            .detail-box{
                display: flex;
                gap: 5rem;

                @media screen and (max-width: 767px) {
                  flex-direction: column;
                  gap: 3rem;
                }

                & p {
                    flex: 0 0 50rem;

                    @media screen and (max-width: 767px) {
                      flex: 0;
                    }
                }
            
                .detail-table{
                    flex: 1;

                    & th {
                        line-height: 1.7;
                        width: 17rem;
                        min-width: 17rem;
                    }

                    & td {
                        line-height: 1.7;
                    }
                    
                    & th, & td {
                        @media screen and (max-width: 767px) {
                            display: block !important;
                            width: 100% !important;
                        }
                    }

                    & th {
                        @media screen and (max-width: 767px) {
                          padding: 1rem 2rem;
                        }
                    }

                }
            }
        }


        .step01{

            .detail-bottom-box{
                display: flex;
                gap: 8rem;
                margin-top: 6rem;

                @media screen and (max-width: 767px) {
                  gap: 3rem;
                  margin-top: 5rem;
                  flex-direction: column;
                }
            
                .detail-bottom-col{
                    flex: 1;
                
                    .bottom-title{
                        font-size: 1.8rem;
                        padding: 1rem 3rem;
                        padding-right: 0;
                        font-weight: bold;
                        color: #fff;

                        @media screen and (max-width: 767px) {
                          padding: 1rem 2rem;
                        }
                    
                    }
                    .bottom-detail{

                        & a {
                            margin-top: 3rem;
                            justify-content: center;
                            gap: 6px;
                            width: 18rem;
                            height: 5rem;
                            border-radius: 60px;
                        }
                        
                        & p {
                            margin-top: 1.4rem;
                            
                            & a {
                                width: unset;
                                height: unset;
                                margin-top: 0;
                                text-decoration: underline;
                            }
                        }
                    
                    }
                    .common-elip-button{
                    
                    }
                    .right-col{
                    
                    }

                    &.left-col{
                        .bottom-title {
                            background-color: #ED6E5D;
                        }
                    
                    }
    
                    &.right-col {
                        .bottom-title {
                            background-color: #75828D;
    
                        }
    
                    }
                }
            }
        }

    }
}

/* usage */
.sec-usage {

    .content-box {

        & h3 {
            margin-bottom: 4rem;

            @media screen and (max-width: 767px) {
              margin-bottom: 3rem;
            }
        }

        & p:first-child {
            margin-bottom: 7rem;
        }

        .detail-box{
            margin-bottom: 6rem;

            @media screen and (max-width: 767px) {
              margin-bottom: 4rem;
            }

            .text-box{

                &:not(:last-child) {
                    margin-bottom: 2rem;
                }
            
                .title{
                    color: #fff;
                    background-color: var(--primary-color);
                    font-weight: bold;
                    font-size: 2rem;
                    font-weight: 500;
                    margin-bottom: 2rem;
                    padding: 1.5rem 3rem;
                    border-radius: 30px;
                }
                .text-list{
                    padding-left: 2rem;
                
                    .text-item{
                        line-height: 1.7;

                        &::marker {
                            content: '・';
                            color: #000;
                            
                        }
                    
                        &.red-text{
                            color: #D00000;
                        }
                    }
                }
            }
        }

        .contact-box {
            padding: 4rem 7rem;
            background-color: #DDF3FF;
            border-radius: 30px;
            display: flex;
            flex-direction: column;
            align-items: center;
            width: 73rem;
            max-width: 73rem;
            margin: 0 auto;

            @media screen and (max-width: 767px) {
              width: 100%;
              max-width: 100%;
              padding: 3rem 4rem;
            }

            .title {
                font-size: 2.4rem;
                font-weight: bold;
                color: var(--primary-color);
                position: relative;
                margin-bottom: 4rem;
                padding: 0 1rem;

                @media screen and (max-width: 767px) {
                  font-size: 2rem;
                  margin-bottom: 3rem;
                  text-align: center;
                  line-height: 1.5;
                }

                &::before, &::after {
                    content: '';
                    position: absolute;
                    top: 50%;
                    width: 10rem;
                    height: 2px;
                    background: var(--primary-color);

                    @media screen and (max-width: 767px) {
                      display: none;
                    }
                }
                
                &::before {
                    left: 0;
                    transform: translate(-100%, -40%);
                }
                
                &::after {
                    right: 0;
                    transform: translate(100%, -40%);
                }

            }

            .content {
                display: flex;
                flex-direction: column;
                align-items: center;
                gap: 2rem;
                font-size: 1.6rem;
                line-height: 1;

                @media screen and (max-width: 767px) {
                  gap: 1rem;
                }

                & p:first-child {
                    font-size: 1.8rem;
                    font-weight: 500;
                    margin-bottom: 0;

                    @media screen and (max-width: 767px) {
                      font-size: 1.6rem;
                    }
                }
                
                & a {
                    font-size: 2.8rem;
                    font-weight: bold;
                    line-height: 1;

                    @media screen and (max-width: 767px) {
                      font-size: 2.2rem;
                    }
                }
            }
        }
    }
}