@charset "UTF-8";
/* CSS Document */
/*------------------------------*/
/* sp切り替え */
@media screen and (max-width: 768px) {}
/*------------------------------*/
:root {
    --external: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20,11a1,1,0,0,0-1,1v6a1,1,0,0,1-1,1H6a1,1,0,0,1-1-1V6A1,1,0,0,1,6,5h6a1,1,0,0,0,0-2H6A3,3,0,0,0,3,6V18a3,3,0,0,0,3,3H18a3,3,0,0,0,3-3V12A1,1,0,0,0,20,11Z"/><path d="M16,5h1.58l-6.29,6.28a1,1,0,0,0,0,1.42,1,1,0,0,0,1.42,0L19,6.42V8a1,1,0,0,0,1,1h0a1,1,0,0,0,1-1V4a1,1,0,0,0-1-1L16,3h0a1,1,0,0,0,0,2Z"/></svg>');
    --arrow: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path style="fill: none; stroke: %23888; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;" d="M7 24 L41 24 L35 18 M41 24 L35 30"/></svg>');
}
/*------------------------------*/
/* ヘッダー */
/*------------------------------*/
header {
    width: 100%;
    position: fixed;
    top: 0;
    z-index: 10000;
    background-color: #fff;
    height: 20.8rem;
    transition: .8s cubic-bezier(.01, .6, .1, .99);
    @media screen and (max-width: 768px) {
        height: 14rem;
    }
    &:not(.firstView){
        height: 9rem;
        @media screen and (max-width: 768px) {
            height: 5.2rem;
        }
        .header-wrap {
            padding-top: 2.6rem;
            padding-bottom: 1.5rem;
            @media screen and (max-width: 768px) {
                gap: 0;
                padding-top: 1.5rem;
                padding-bottom: 0.8rem;
            }
            h1 {
                font-size: 5.8rem;
                margin-top: -0.8rem;
                @media screen and (max-width: 768px) {
                    font-size: 2.8rem;
                    top: 2.3rem;
                }
            }
            .wrap {
                margin-block: 0;
                .sub-title {
                    opacity: 0;
                    pointer-events: none;
                }
            }
            .mini-text {
                opacity: 0;
                pointer-events: none;
            }
        }
    }
    & *:not(.btn-wrap,.sub-title){
        transition: .8s cubic-bezier(.01, .6, .1, .99);
    }
    .header-wrap {
      display: flex;
      justify-content: space-between;
      margin-inline: 3rem;
      padding-bottom: 1.2rem;
      border-bottom: 0.1rem #000 solid;
      position: relative;
      gap: 3.5rem;
      height: 100%;
      @media screen and (max-width: 768px) {
        gap: 1.2rem;
        margin-inline: 2rem;
        padding-top: 1.5rem;
      }
      h1 {
        font-family: "Lato";
        font-size: 20rem;
        font-weight: 700;
        line-height: 0.95;
        letter-spacing: -0.025em;
        margin-left: -0.06em;
        @media screen and (max-width: 768px) {
          font-size: 7.6rem;
          white-space: nowrap;
          position: absolute;
          bottom: 0.5rem;
          left: 0;
        }
      }
    
      .wrap {
        margin-block: 2.6rem 1.7rem;
        position: relative;
        width: 100%;
        @media screen and (max-width: 768px) {
          margin-block: 0;
        }
        .btn-wrap {
          display: flex;
          justify-content: flex-end;
          gap: 1.5rem;
          @media screen and (max-width: 768px) {
            gap: 0.5rem;
          }
          a {
            font-family: "Noto Sans JP";
            font-size: 1.4rem;
            width: 14rem;
            background-color: #000;
            border: 1px solid #000;
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 4rem;
            padding-bottom: 0.2rem;
            transition: .3s ease;
            @media screen and (max-width: 768px) {
                width: 9rem;
                height: 2.8rem;
                font-size: 0.9rem;
            }
            @media (any-hover: hover) {
                &:hover {
                    color: #000;
                    background-color: #fff;
                }     
            }
          }
        }
    
        .sub-title {
            position: absolute;
            bottom: 0;
            right: 0;
            font-family: "Roboto";
            font-size: 2.8rem;
            font-weight: 300;
            color: #a8a8a8;
            transform: opacity;
            transition: .15s cubic-bezier(.01, .6, .1, .99);
            @media screen and (max-width: 768px) {
                display: none;
            }
        }
      }
      .mini-text {
        display: flex;
        justify-content: space-between;
        position: absolute;
        left: 0;
        right: 0;
        top: calc(100% + 1.2rem);
        @media screen and (max-width: 768px) {
            top: calc(100% + 0.6rem);
        }
        p {
          font-size: 1.4rem;
          font-family: "Lato";
          font-weight: 300;
          color: #b3b3b3;
          @media screen and (max-width: 768px) {
            font-size: 1.1rem;
          }
        }
      }
    }
  }
/*------------------------------*/
/* フッター */
/*------------------------------*/
footer {
padding-block: 9rem 1rem;
padding-inline: 12rem;
@media screen and (max-width: 768px) {
    padding-block: 1.5rem 1.2rem;
    padding-inline: 2rem;
}
.footer-wrap {
    display: grid;
    grid-template-columns: 1fr calc(246 / 1353 * 100%);
    @media screen and (max-width: 768px) {
    display: none;
    }
    .item {
        display: flex;
        gap: 7.3rem;

        .hd {
            .en {
                font-family: "Roboto";
                font-size: 6rem;
                font-weight: 700;
            }

            .ja {
                display: flex;
                gap: 0.7rem;

                .company {
                    font-family: "Noto Sans JP";
                    font-size: 1.4rem;
                    color: #000;
                    transition: .1s ease;

                    @media (any-hover: hover) {
                        &:hover {
                            opacity: 0.6;
                        }
                    }
                }

                img {
                    width: 1.4rem;
                }
            }
        }
        .footer-nav {
            display: grid;
            grid-template-rows: repeat(4, auto);
            grid-auto-flow: column;
            gap: 1.4rem 2rem;
            height: fit-content;
            .nav-item {
                a {
                    font-family: "Noto Sans JP";
                    font-size: 1.6rem;
                    display: flex;
                    align-items: center;
                    width: 100%;
                    height: 100%;
                    transition: .1s ease;
    
                    @media (any-hover: hover) {
                        &:hover {
                            text-decoration: underline;
                        }
                    }
    
                    &::before {
                        content: "";
                        width: 0.9rem;
                        aspect-ratio: 1;
                        background-color: #000;
                        display: block;
                        margin-right: 0.9rem;
                    }
    
                    &.gray {
                        color: #999999;
                        pointer-events: none;
                    }
                }
            }
        }
    }
    .btn-wrap {
    display: block;
    a {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1rem;
        font-family: "Noto Sans JP";
        font-size: 1.8rem;
        color: #fff;
        white-space: nowrap;
        width: 100%;
        height: 8rem;
        background-image: linear-gradient(135deg, rgb(0, 0, 0) 0% 40%,rgba(120, 120, 120, 1) 50%,rgba(150, 150, 150, 1) 60% 100%);
        background-position: 0 0;
        background-size: 200% 100%;
        transition: .3s cubic-bezier(.24, .75, .07, .99);
        @media (any-hover: hover) {
            &:hover {
                background-position: 100% 0;
            }     
        }
        & + a {
        margin-top: 1.5rem;
        }
        .book {
        width: 3.9rem;
        }
        .comment {
        width: 4rem;
        }
    }
    }
}
.copyright {
    margin-top: 6rem;
    font-family: "Noto Sans JP";
    font-size: 1.4rem;
    text-align: right;
    @media screen and (max-width: 768px) {
    margin-top: 0;
    font-size: 1.2rem;
    }
}
}
/*------------------------------*/
/* トップページ */
/*------------------------------*/
.top {
    .mv {
        padding-top: 22.3rem;
        margin-top: 0.8rem ;
        margin-inline: 3rem 0;
        padding-bottom: 4rem;
        overflow-x: clip;
        @media screen and (max-width: 768px) {
            padding-block: 17rem 2.5rem;
            margin-inline: 2rem;       
        }
       .container {
            margin-block: 4rem;
            @media screen and (max-width: 768px) {
                margin-block: 0;
            }
            .mv-wrap {
                display: flex;
                justify-content: space-between;
                gap: 5rem;
                @media screen and (max-width: 768px) {
                    flex-direction: column;
                    gap: 0;
                }
                .text-wrap {
                    display: flex;
                    flex-direction: column;
                    justify-content: space-between;
                    @media screen and (max-width: 768px) {
                        display: contents;        
                    }
                    h2 {
                        font-family: "Noto Sans JP";
                        font-size: 2.3rem;
                        font-weight: 600;
                        line-height: 1.5;
                        padding-bottom: 2rem;
                        border-bottom: 0.1rem #c6c6c6 solid;
                        font-feature-settings: "palt";
                        letter-spacing: 0.1em;
                        @media screen and (max-width: 768px) {
                            font-size: 1.7rem;
                            line-height: 1.45;
                            border-bottom: none; 
                            padding-bottom: 0; 
                        }
                    }
                    .wrap {
                        @media screen and (max-width: 768px) {
                            margin-top: 3.2rem;
                            order: 3;
                        }
                        .copy {
                            font-family: "Noto Sans JP";
                            font-size: 5.2rem;
                            font-weight: 600;
                            line-height: 1.4;
                            margin-bottom:3rem;
                            text-align: right;
                            white-space: nowrap;
                            font-feature-settings: "palt";
                            letter-spacing: -0.01em;
                            @media screen and (max-width: 768px) {
                                padding-top: 6rem;
                                font-size: 3rem;
                                margin-bottom: 1.5rem;
                                border-top: 0.1rem #c6c6c6 solid;
                            }
                        }
                        .btn-wrap {
                            display: flex;
                            gap: 3.2rem;
                            width: 100%;
                            @media screen and (max-width: 768px) {
                                gap: 1.5rem;
                            }
                            a {
                                display: flex;
                                align-items: center;
                                justify-content: center;
                                width: 25rem;
                                gap: 1.1rem;
                                padding-block: 1.8rem;
                                color: #fff;
                                background-image: linear-gradient(135deg, rgb(0, 0, 0) 0% 40%,rgba(120, 120, 120, 1) 50%,rgba(150, 150, 150, 1) 60% 100%);
                                background-position: 0 0;
                                background-size: 200% 100%;
                                transition: .3s cubic-bezier(.24, .75, .07, .99);
                                @media (any-hover: hover) {
                                    &:hover {
                                        background-position: 100% 0;
                                    }     
                                }
                                @media screen and (max-width: 768px) {
                                    gap: 0.7rem;
                                    padding-block: 1.6rem;
                                }
                                span {
                                    font-family: "Noto Sans JP";
                                    font-size: 1.8rem;
                                    line-height: 1.9;
                                    color: currentColor;
                                    @media screen and (max-width: 768px) {
                                        font-size: 1.3rem;
                                    }
                                }
                                .book {
                                    width: 3.6rem;
                                    @media screen and (max-width: 768px) {
                                        width: 2.7rem;
                                    }
                                }
                                .comment {
                                    width: 3.7rem;
                                    @media screen and (max-width: 768px) {
                                        width: 2.7rem;
                                    }
                                }
                            }
                        }
                    }
                }
                .contents-wrap {
                    display: block;
                    position: relative;
                    width: 100%;
                    @media screen and (max-width: 768px) {
                        margin-top: 1.8rem;
                    }
                    .contents {
                        width: 100%;
                        height: 100%;
                        overflow: hidden;
                        .sliderArea {
                            .full-screen {
                                margin-bottom: 0; 
                                .slide {
                                    width: 74.8rem;
                                    @media screen and (max-width: 768px) {
                                        width: calc(100vw - 4rem);
                                    }

                                }
                                a {
                                    position: relative;
                                    display: block;
                                    &::after {
                                    content: "";
                                        position: absolute;
                                        top: 0;
                                        left: 0;
                                        width: 100%;
                                        height: 100%;
                                        background-color: rgba(0, 0, 0, 0.4);
                                        opacity: 0;
                                        transition: opacity 0.3s ease;                             
                                        z-index: 1;
                                    }
                                    & + a {
                                        margin-left: 2.5rem;
                                    }
                                    img {
                                        transition: 0.3s ease;
                                        position: relative;
                                        z-index: 0;
                                        transition: 0.3s ease;
                                    }
                                    @media (any-hover: hover) {
                                        &:hover {
                                            &::after {
                                                opacity: 1;
                                            }
                                            .sample {
                                                opacity: 1;
                                            }
                                        }                             
                                    }
                                    .sample {
                                        font-family: "Noto Sans JP";
                                        font-size: 2rem;
                                        top: 50%;
                                        left: 50%;
                                        transform: translate(-50%,-50%);
                                        position: absolute;
                                        transition: 0.3s ease;
                                        z-index: 2;
                                        color: #fff;
                                        opacity: 0;
                                    }

                                }
                            }
                        }
                    }
                    .bottom-wrap {
                        width: 100%;
                        position: absolute;
                        top: calc(100% + 1rem);
                        @media screen and (max-width: 768px) {
                            top: calc(100% + 0.8rem);
                        }
                        .bottom {
                            display: flex;
                            justify-content: flex-end;
                            align-items: center;
                            width: 74.8rem;
                            @media screen and (max-width: 768px) { 
                                width: 100%;
                            }
                            .dots-box {
                                bottom: 0;
                                display: flex;
                                justify-content: space-between;
                                align-items: center;
                                .slick-dots {
                                    margin-right: -0.6rem;
                                    display: flex;
                                    align-items: center;                      
                                    position:static;
                                    @media screen and (max-width: 768px) {
                                        margin-right: 0;
                                    }
                                    li{
                                        margin-inline: -0.3rem;
                                        @media screen and (max-width: 768px) {
                                            margin-inline: -0.4rem;
                                        }
                                        button {
                                            &::before {
                                                font-size: 0.8rem;
                                                @media screen and (max-width: 768px) {
                                                    font-size: 0.6rem;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    .about {
        background-color: #000;
        padding-block: 0 6rem;
        @media screen and (max-width: 768px) {
            padding-block: 4rem;
            /* padding-inline: 2rem; */
        }
        .concept {
            padding-bottom: 8rem;
            border-bottom: 0.1rem #a0a0a0 solid;
            /* width: 149rem; */
            width: 100%;
            margin-inline: auto;
            height: 200dvh;
            position: relative;
            @media screen and (max-width: 768px) {
                padding-bottom: 0;
                /* width: 100%; */
            }
            .wrap {
                position: sticky;
                top: 0;
                /* height: calc(100dvh - 9rem); */
                height: 100dvh;
                padding-top: 9rem;
                /* padding-block: 6rem; */
                width: 100%;
                overflow: hidden;
                @media screen and (max-width: 768px) {
                    /* top: 5.2rem; */
                    /* height: calc(100dvh - 2rem); */
                    /* padding-block: 2rem 0; */
                    padding-top: 5.2rem;
                }
                &:has(.js-text.is-active) {
                    .video-wrap {
                        &::after {
                            opacity: 1;
                            animation: grad 0.8s forwards ease;
                        }
                    }
                }
                &:not(:has(.js-text.is-active)) {
                    .video-wrap {
                        &::after {
                            opacity: 0;
                            animation: grad-reverse 0.8s forwards ease;
                        }
                    }
                }
                .text-wrap {
                    position: absolute;
                    bottom: 6rem;
                    width: 100%;
                    padding-left: 5rem;
                    color: #fff;
                    z-index: 10;
                    @media screen and (max-width: 768px) {
                        bottom: 7rem;
                        padding-inline: 2rem;
                    }
                    &.is-active {
                        h2{
                            opacity: 1;
                            translate: 0 0;
                            transition-delay: 0.5s;
                            @media screen and (max-width: 768px) {
                                transition-delay: .15s;
                            }
                        }
                        .readText{
                            opacity: 1;
                            translate: 0 0;
                            transition-delay: 0.9s;
                            @media screen and (max-width: 768px) {
                                transition-delay: .55s;
                            }
                        }
                        
                    }
                    h2 {
                        opacity: 0;
                        font-family: "Noto Sans JP";
                        font-size: 4.7rem;
                        font-weight: 700;
                        line-height: 1.4;
                        color: currentColor;
                        translate: 0 2rem;
                        transition: .8s ease; 
                        @media screen and (max-width: 768px) {
                            font-size: 2.3rem;
                        }
                    }
                    .readText {
                        opacity: 0;
                        font-size: 2rem;
                        color: currentColor;
                        margin-top: 5rem;
                        width: 35%;
                        translate: 0 2rem;
                        transition: .8s ease; 
                        @media screen and (max-width: 768px) {
                            font-size: 1.3rem;
                            margin-top: 1.5rem;
                            width: 100%;
                        }
                    }
                }
                .video-wrap {
                    position: relative;
                    transform: scale(0.3);
                    transform-origin: center bottom;
                    height: 100%;
                    width: 100%;
                    &::after {
                        content: "";
                        position: absolute;
                        top: 0;
                        left: 0;
                        width: 100%;
                        height: 100%;
                        background-image: linear-gradient(75deg, rgba(0, 0, 0, 1) 0% var(--grad25), rgba(0, 0, 0, 0) var(--grad60) 100%);
                        opacity: 0;
                        transition: 0.5s ease;
                        @media screen and (max-width: 768px) {
                            background-image: linear-gradient(0deg,rgba(0, 0, 0, 1) 0% var(--grad25),rgba(0, 0, 0, 0) var(--grad60) 100%);
                        }
                    }
                    /* img { */
                    video {
                        position: absolute;
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                        object-position: center top;
                    }
                }
            }
        }
    }
    .features {
        padding-inline: 12rem;
        margin-block: 7rem;
        margin-inline: auto;
        display: flex;
        align-items: center;
        gap: 10rem;
        overflow-x: clip;
        @media screen and (max-width: 768px) {
            padding-inline: 2rem;
            margin-block: 2rem;
            flex-direction: column-reverse;
            gap: 2.3rem;
        }
        ul {
            display: grid;
            grid-template-columns: repeat(2,1fr);
            gap: 1.7rem 2rem;
            @media screen and (max-width: 768px) {
                display: block;
            }
            li {
                display: flex;
                padding-block: 3rem;
                background-color: #e6e6e6;
                @media screen and (max-width: 768px) {
                    padding-block: 1.3rem;
                    gap: 0.65em;
                    padding-left: 1rem;
                }
                & + li {
                    @media screen and (max-width: 768px) {
                        margin-top: 1rem;
                    }
                }
                .img-wrap {
                    width: 15rem;
                    display: grid;
                    place-content: center;
                    @media screen and (max-width: 768px) {
                        width: 8rem;
                    }
                    &.tv {
                        img {
                            width: 8.3rem;
                            @media screen and (max-width: 768px) { 
                                width: 4.8rem;
                            }
                        }
                    }
                    &.gear {
                        img {
                            width: 8.1rem;
                            @media screen and (max-width: 768px) {
                                width: 4.8rem;
                            }
                        }
                    }
                    &.security {
                        img {
                            width: 6rem;
                            @media screen and (max-width: 768px) {
                                width: 4rem;
                            }
                        }
                    }
                    &.bug {
                        img {
                            width: 7rem;
                            @media screen and (max-width: 768px) { 
                                width: 5.4rem;
                            }
                        }
                    }
                }
                .text-wrap {
                    width: 68%;
                    @media screen and (max-width: 768px) {
                        width: 100%;
                    }
                    .hd {
                        font-family: "Noto Sans JP";
                        font-size: 2.4rem;
                        font-weight: 600;
                        line-height: 1;
                        padding-bottom: 1.8rem;
                        border-bottom: 0.1rem #000 solid;
                        @media screen and (max-width: 768px) { 
                            font-size: 1.7rem;
                            padding-bottom: 1.2rem;
                        }
                    }
                    .readText {
                        line-height: 1.8;
                        margin-top: 0.8rem;
                        padding-right: 2rem;
                        @media screen and (max-width: 768px) {
                            font-size: 1.3rem;
                            margin-top: 0.5rem;
                        }
                    }
                }
            }
        }
        .hd-wrap {
            h2 {
                font-family: "Noto Sans JP";
                font-size: 3.8rem;
                font-weight: 600;
                line-height: 1.8;
                color: #fff;
                margin-bottom: 4rem;
                flex-shrink: 0;
                @media screen and (max-width: 768px) {
                    font-size: 2.5rem;
                    margin-bottom: 0.5rem;
                }
                span {
                    font-family: "Lato";
                    font-weight: 900;
                    color: #000;
                    padding-block: 0.4rem;
                    padding-inline: 1.6rem;
                    background-color: #fff;
                    margin-right: 0.3rem;
                }
            }
            .readText {
                color: #fff;
                @media screen and (max-width: 768px) {
                    font-size: 1.3rem;
                }
            }
        }
    }
    .price {
        display: flex;
        flex-direction: column;
        width: 100%;
        margin-inline: auto;
        margin-block: 5rem 10rem;
        padding-top: 5rem;
        padding-inline: 2.5rem;
        @media screen and (max-width: 768px) {
            margin-block: 3.5rem;
            padding-top: 0;
            padding-inline: 2rem;
        }
        .wrap {
            overflow-x: clip;
            .sub-hd {
                display: flex;
                align-items: center;
                gap: 0.09rem;
                color: #fff;
                padding-top: 2.5rem;
                border-top: 0.1rem #c6c6c6 solid;
                @media screen and (max-width: 768px) {
                    margin-top: 2rem;
                    gap: 0.03rem;
                    padding-top: 3rem;
                }
                .ja {
                    font-family: "Noto Sans JP";
                    font-size: 2.1rem;
                    font-weight: 600;
                    line-height: 1;
                    color: currentColor;
                    background-color: #000;
                    padding-block: 0.9rem 1rem;
                    padding-inline: 1.5rem;
                    @media screen and (max-width: 768px) {
                        font-size: 1.5rem;
                        padding-block: 0.75rem;
                    }
                }
                .num {
                    font-family: "Roboto";
                    font-size: 2.3rem;
                    font-weight: 500;
                    line-height: 1;
                    color: currentColor;
                    background-color: #000;
                    letter-spacing: -0.03em;
                    padding-block: 0.9rem 0.8rem;
                    padding-inline: 1rem;
                    @media screen and (max-width: 768px) {
                        font-size: 1.7rem;
                        padding-block: 0.65rem;
                    }
                }
            }
            .readText {
                font-weight: 500;
                line-height: 1.66;
                margin-top: 1.4rem;
                @media screen and (max-width: 768px) {
                    margin-top: 0.8rem;
                }
            }
        }
        .plan {
            display: grid;
            grid-template-columns: calc(322 / 1550 * 100%) 1fr;
            gap: 6rem;
            width: 100%;
            overflow-x: clip;
            @media screen and (max-width: 768px) {
                display: block;
            }
            .hd-wrap {
                .hd {
                    margin-bottom: 9.3rem;
                    @media screen and (max-width: 768px) {
                        margin-bottom: 2rem;
                    }
                    .en {
                        font-family: "Lato";
                        font-size: 10rem;
                        font-weight: 700;
                        letter-spacing: -0.04em;
                        @media screen and (max-width: 768px) {
                            font-size: 5rem;
                        }
                    }
                    .ja {
                        font-family: "Noto Sans Jp";
                        font-size: 3rem;
                        font-weight: 700;
                        @media screen and (max-width: 768px) {
                            font-size: 1.5rem;
                        }
                    }
                }
            }
            .grid-wrap {
                display: grid;
                grid-template-columns: repeat(3,1fr);
                grid-template-rows: auto auto auto;
                gap: 4rem;
                @media screen and (max-width: 768px) {
                    margin-top: 2rem;
                    display: block;
                }
                .grid {
                    position: relative;
                    display: grid;
                    grid-template-rows: subgrid;
                    grid-row: span 3;
                    gap: 0;
                    &+ .grid{
                        @media screen and (max-width: 768px) {   
                            margin-top: 2rem;
                        }
                    }
                    &:has(p.attention){
                        @media screen and (max-width: 768px) {   
                            margin-top: 5.4rem;
                        }
                    }
                    .attention {
                        position: absolute;
                        transform: translateY(calc(-100% - 0.8rem));
                        top: 0;
                        font-family: "Noto Sans JP";
                        font-size: 2.1rem;
                        font-weight: 600;
                        color: #fff;
                        padding-block: 1rem 1.3rem;
                        padding-inline: 3.7rem;
                        background-image: linear-gradient(141.91deg, rgba(2, 136, 209, 1) 0%, rgba(2, 133, 207, 1) 70%, rgba(2, 106, 170, 1) 88%, rgb(1, 80, 123) 100%);
                        @media screen and (max-width: 768px) {
                            transform: translateY(calc(-100% - 0.5rem));
                            font-size: 1.6rem;
                            padding-block: 0.7rem 0.8rem;
                            padding-inline: 2.3rem;
                        }
                        &::after {
                            content: "";
                            display: block;
                            position: absolute;
                            bottom: 0;
                            left: 1.1rem;
                            transform: translateY(calc(100% - 0.1rem));
                            width: 1.7rem;
                            aspect-ratio: 1;
                            background-color: rgba(2, 136, 209, 1);
                            clip-path: polygon(0% 0%,100% 0%,100% 100%);
                            @media screen and (max-width: 768px) {
                                width: 1.2rem;
                            }
                        }
                    }
                    .name {
                        font-family: "Noto Sans JP";
                        font-size: 2.6rem;
                        font-weight: 600;
                        color: #fff;
                        background-color: #000;
                        height: 5.5rem;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        @media screen and (max-width: 768px) {
                            font-size: 2.1rem;
                        }
                    }
                    .pack {
                        position: relative;
                        padding-block: 3rem 6.5rem;
                        color: #fff;
                        @media screen and (max-width: 768px) {
                            padding-block: 2.2rem 5rem;
                        }
                        &.gray {
                            background-image: linear-gradient(135deg, rgba(155, 155, 155, 1) 0% 38%, rgba(138, 138, 138, 1) 65%, rgba(85, 85, 85, 1) 86%, rgba(35, 35, 35, 1) 100%);
                        }
                        &.blue {
                            background-image: linear-gradient(141.91deg, rgba(2, 136, 209, 1) 0%, rgba(2, 133, 207, 1) 45%, rgba(2, 106, 170, 1) 70%,rgb(1, 66, 102) 90%, rgb(0, 32, 49) 100%);
                        }
                        .hd-wrap {
                            margin-inline: 3rem;
                            .pack-hd {
                                position: relative;
                                font-family: "Noto Sans JP";
                                font-size: 1.8rem;
                                font-weight: 500;
                                color: currentColor;
                                text-align: center;
                                white-space: nowrap;
                                @media screen and (max-width: 768px) { 
                                    font-size: 1.5rem;
                                }
                            }
                            .line-wrap {
                                display: flex;
                                width: 100%;
                                position: relative;
                                justify-content: space-between;
                                gap: 1rem;
                                margin-top: 1rem;
                                @media screen and (max-width: 768px) {
                                    margin-top: 0.9rem;
                                    gap: 0.9rem;
                                }
                                .line {
                                    display: flex;
                                    background-color: #fff;
                                    width: 100%;
                                    height: 0.1rem;
                                    left: 0.1rem;
                                    &.right {
                                        &::before {
                                            content: "";
                                            display: block;
                                            background-color: #fff;
                                            width: 0.1rem;
                                            height: 1.3rem;
                                            top: 0;
                                            left: 0;
                                            transform: rotate(28deg);
                                            transform-origin: top;
                                            @media screen and (max-width: 768px) {
                                                height: 1.1rem;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        .pack-price {
                            font-family: "Roboto";
                            font-size: 6.8rem;
                            font-weight: 600;
                            color: currentColor;
                            text-align: center;
                            margin-top: 1.8rem;
                            letter-spacing: -0.01em;
                            @media screen and (max-width: 768px) {
                                font-size: 5rem;
                                margin-top: 1.1rem;
                            }
                            .yen {
                                font-family: "Noto Sans JP";
                                font-size: 3rem;
                                color: currentColor;
                                margin-left: 0.6rem;
                            }
                        }
                        .caption {
                            font-family: "Noto Sans JP";
                            font-size: 1.4rem;
                            color: currentColor;
                            text-align: center;
                            margin-top: 0.5rem;
                            @media screen and (max-width: 768px) { 
                                font-size: 1.2rem;
                            }
                        }
                        .page {
                            position: absolute;
                            font-family: "Noto";
                            font-size: 1.6rem;
                            color: #000;
                            background-color: #fff;
                            padding-block: 1rem;
                            padding-inline: 1rem 2rem;
                            width: fit-content;
                            display: flex;
                            align-items: center;
                            bottom: -0.2rem;
                            left: 0;
                            border-left: #b3b3b3 0.1rem solid;
                            @media screen and (max-width: 768px) {
                                font-size: 1.3rem;
                                padding-block: 0.8rem;
                                padding-inline: 0.8rem 1.5rem;
                            }
                            &::before {
                                content: "";
                                display: block;
                                width: 1.4rem;
                                aspect-ratio: 1;
                                background-color: #000;
                                margin-right: 0.8rem;
                                margin-top: -0.1rem;
                                @media screen and (max-width: 768px) {           
                                    width: 1.2rem;
                                    margin-right: 0.5rem;
                                }
                            }
                        }
                    }
                    .contents-wrap {
                        padding-block: 2.5rem 3rem;
                        padding-inline: 3rem;
                        background-color: #fff;
                        border: #b3b3b3 0.1rem solid;
                        border-top: none;
                        display: flex;
                        flex-direction: column;
                        justify-content: space-between;
                        @media screen and (max-width: 768px) {
                            padding-block: 2.3rem;
                            padding-inline: 2rem;
                        }
                        .contents {
                            display: grid;
                            grid-template-columns: repeat(2, 1fr);
                            color: #000;
                            gap: 1.5rem ;
                            @media screen and (max-width: 768px) {
                                gap: 1.2rem;
                            }
                            .item {
                                font-family: "Noto Sans JP";
                                font-size: 1.6rem;
                                line-height: 1.8;
                                color: #fff;
                                background-color: #4d4d4d;
                                width: 100%;
                                text-align: center;
                                white-space: nowrap;
                                padding-bottom: 0.1rem;
                                &.twice {
                                    grid-column: span 2;
                                }
                                @media screen and (max-width: 768px) {
                                    font-size: 1.3rem;
                                }
                            }
                        }
                        .item-wrap {
                            margin-top: 1.5rem;
                            @media screen and (max-width: 768px) {       
                                margin-top: 4rem;
                            }
                            .interview {
                                font-family: "Noto Sans JP";
                                font-size: 1.6rem;
                                color: #000; 
                                background-color: #f2f2f2;
                                border: #b3b3b3 0.1rem solid;
                                padding-block: 1.5rem; 
                                text-align: center;
                                @media screen and (max-width: 768px) {           
                                    font-size: 1.3rem;
                                    padding-block: 1.4rem;
                                } 
                                & + .interview {
                                    margin-top: 1rem;
                                }
                            }
                        }
                    }
                }
            }
        }
        .cost {
            margin-top: 10rem;
            display: grid;
            grid-template-columns: calc(322 / 1550 * 100%) 1fr;
            gap: 6rem;
            width: 100%;
            white-space: nowrap;
            @media screen and (max-width: 768px) {
                display: block;
                margin-top: 3rem;
                white-space: normal;
            }
            .table-wrap {
                @media screen and (max-width: 768px) {
                    margin-top: 3.5rem;
                    width: 100%;
                    overflow-x: auto;
                    overflow-y: visible;
                    -webkit-overflow-scrolling: touch;
                }
                table {
                    width: 100%;
                    border: #000 0.1rem solid;
                    border-collapse: collapse;
                    @media screen and (max-width: 768px) {
                        border: none;
                        min-width: 70rem;
                        width: 100%;
                    }
                }
                colgroup {
                    .col1 {
                        width: 28%;
                        @media screen and (max-width: 768px) {
                            width: 25%;
                        }
                    }
                    .col2,.col3,.col4 {
                        width: 24%;
                        @media screen and (max-width: 768px) {
                            width: 25%;
                        }
                    }
                }
                thead {
                    th {
                        position: relative;
                        overflow: visible;
                        @media screen and (max-width: 768px) {
                            padding-top: 3rem;
                        }
                        .hd-color {
                            font-family: "Noto Sans JP";
                            font-size: 2rem;
                            font-weight: 700;
                            position: absolute;
                            display: flex;
                            justify-content: center;
                            left: 50%;
                            transform: translate(-50%,-100%);
                            --w: 85%;
                            --h: 4.5rem;
                            --cut: 1.1rem;
                            width: var(--w);
                            height: var(--h);
                            line-height: var(--h);
                            color: #fff;
                            clip-path: polygon(var(--cut) 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%,0 var(--cut));
                            &.water-color {
                                background-image: linear-gradient(125deg, rgba(0, 165, 255, 1) 0%,rgb(1, 161, 246) 60%,rgb(0, 137, 210) 70%,rgb(0, 103, 158) 80%, rgb(0, 30, 53, 1) 100%);
                            }
                            &.blue {
                                background-image: linear-gradient(125deg, rgba(0, 50, 255, 1) 0%, rgba(0, 45, 253, 1) 60%, rgba(0, 36, 200, 1) 70%, rgba(0, 25, 140, 1) 80%, rgba(0, 14, 71, 1) 100%);
                            }
                            &.purple {
                                background-image: linear-gradient(125deg, rgba(100, 0, 255, 1) 0%, rgba(97, 1, 250, 1) 60%, rgba(52, 12, 157, 1) 80%, rgba(43, 10, 129, 1) 90%, rgba(19, 4, 59, 1) 100%);
                            }
                            @media screen and (max-width: 768px) {
                                font-size: 1.6rem;
                                --h:3rem;
                                --cut:0.6rem;
                            }
                        }
                    }
                }
                tbody {
                    tr {
                        & + tr {
                            border-top: #000 0.1rem solid ;
                        }
                        @media screen and (max-width: 768px) {
                            &:first-child {
                                border-top: #000 0.1rem solid;
                            }
                            &:last-child {
                                border-bottom: #000 0.1rem solid;
                            }
                        }
                        th {
                            font-family: "Noto Sans JP";
                            font-size: 1.8rem;
                            font-weight: 600;
                            padding-left: 2rem;
                            display: flex;
                            flex-direction: column;
                            justify-content: center;
                            gap: 0.8rem;
                            height: 9rem;
                            background-color: #f2f2f2;
                            @media screen and (max-width: 768px) {
                                font-size: 1.2rem;
                                height: 7.2rem;
                                gap: 0.5rem;
                                border-left: #000 0.1rem solid;
                                padding-inline: 0.8rem;
                            }
                            span {
                                font-size: 1.4rem;
                                color: #666666;
                                @media screen and (max-width: 768px) {
                                    font-size: 0.9rem;
                                }
                            }
                        }
                        td {
                            font-family: "Noto Sans JP";
                            font-size: 1.7rem;
                            font-weight: 500;
                            line-height: 1.5;
                            color: #000;
                            text-align: center;
                            @media screen and (max-width: 768px) {
                                font-size: 1.4rem;
                            }
                            & + td {
                                border-left: #c6c6c6 0.1rem solid;
                            }
                            .gray {
                                display: inline-block;
                                &.circle {
                                    border: #cecece 0.65rem solid;
                                    width: 3.5rem;
                                    aspect-ratio: 1;
                                    border-radius: 100vmax;
                                    @media screen and (max-width: 768px) {
                                        border: #cecece 0.55rem solid;
                                        width: 3rem;
                                    }
                                }
                                &.square {
                                    width: 3rem;
                                    height: 0.7rem;
                                    background-color: #cecece;
                                    @media screen and (max-width: 768px) {
                                        width: 2.4rem;
                                        height: 0.5rem;
                                    }
                                }
                            }
                            @media screen and (max-width: 768px) {
                                &:last-child {
                                    border-right: #000 0.1rem solid;
                                }
                            }
                        }
                        .color {
                            font-family: "lato";
                            font-size: 4rem;
                            font-weight: 700;
                            @media screen and (max-width: 768px) {
                                font-size: 3rem;
                                margin-top: 2rem;
                                white-space: nowrap;           
                            }
                            .yen {
                                font-family: "Noto Sans JP";
                                font-size: 2rem;
                                font-weight: 700;
                                color: currentColor;
                                @media screen and (max-width: 768px) {
                                    font-size: 1.4rem;
                                }
                            }
                            &.light-blue {
                                color: #00a5ff;
                            }
                            &.blue {
                                color: #0032ff;
                            }
                            &.purple {
                                color: #6400ff;
                            }
                        }
                        .small {
                            display: block;
                            font-size: 1.4rem;
                            font-weight: 500;
                            color: #4d4d4d;
                            @media screen and (max-width: 768px) {
                                font-size: 1.2rem;
                            }
                        }
                    }
                }
            }
        }
    }
    .contact {
        position: relative;
        margin-inline: auto;
        padding: 9.5rem 13rem 13rem;
        background-color: #000;
        display: grid;
        grid-template-columns: 1fr calc(480 / 1350 * 100%);
        gap: calc(150 / 1350 * 100%);
        overflow-x: clip;
        /* overflow-y: hidden; */
        @media screen and (max-width: 768px) {
            display: flex;
            flex-direction: column-reverse;
            padding-block: 3rem;
            padding-inline: 2rem;
            gap: 0;
        }
        .form-wrap{
            position: relative;
            z-index: 1;
            iframe{
                scrollbar-width: none;
            }
        }
        .hd-wrap {
            color: #fff;
            position: relative;
            z-index: 1;
            height: 100%;
            padding-bottom: 3rem;
            @media screen and (max-width: 768px) {
                padding-bottom: 0;
                height: auto;
            }
            .sticky-wrap{
                position: sticky;
                top: 12rem;
                @media screen and (max-width: 768px) {
                    position: static;
                }
            }
            .hd {
                padding-bottom: 2.5rem;
                border-bottom: #fff 0.1rem solid;
                @media screen and (max-width: 768px) {
                    padding-bottom: 2rem;
                }
                .en {
                    font-family: "Roboto";
                    font-size: 10rem;
                    font-weight: 700;
                    color: currentColor;
                    white-space: nowrap;
                    @media screen and (max-width: 768px) {
                        font-size: 5rem;
                    }
                }
                h2 {
                    font-family: "Noto Sans JP";
                    font-size: 3rem;
                    font-weight: 700;
                    color: currentColor;
                    margin-top: 0.5rem;
                    @media screen and (max-width: 768px) {
                        font-size: 1.5rem;
                        margin-top: -0.1rem;
                    }
                }
            }
            .readText {
                color: currentColor;
                margin-top: 2.5rem;
                @media screen and (max-width: 768px) {
                    margin-top: 1rem;
                }
            }
        }
        .back-text {
            position: absolute;
            z-index: 0;
            bottom: -0.1rem;
            left:-1.15em;
            font-family: "Roboto";
            font-size: 20rem;
            font-weight: 700;
            line-height: 0.7;
            color: #000;
            -webkit-text-stroke: 2px #d8d8d8;
            text-stroke: 2px #d8d8d8;
            paint-order: stroke;
            letter-spacing: 0.03em;
            @media screen and (max-width: 768px) {
                font-size: 9rem;
                left: -3.5rem;
                -webkit-text-stroke: 1px #d8d8d8;
                text-stroke: 1px #d8d8d8;
            }
        }
    }
}
/*------------------------------*/
/* Thanks */
/*------------------------------*/
.thanks-wrap {
    .thanks {
        margin-top: 34rem;
        border-bottom: 0.1rem #c6c6c6 solid;
        padding-bottom: 13rem;
        @media screen and (max-width: 768px) {
            margin-top: 20rem;
            padding-inline: 2rem;
        }
        & *{
            font-family: Noto Sans JP;
        }
        .wrap {
            display: flex;
            flex-direction: column;
            align-items: center;
            & * {
                font-family: Noto Sans JP;
                text-align: center;
            }
            .bold {
                font-size: 2.6rem;
                font-weight: 700;
                margin-bottom: 3.5rem;
                line-height: 1.5;
                @media screen and (max-width: 768px) {
                    font-size: 1.7rem;
                    margin-bottom: 1.5rem;
                }
            }
            .readText {
                font-size: 1.6rem;
                margin-bottom: 6.5rem;
                @media screen and (max-width: 768px) {
                    font-size: 1.2rem;
                    line-height: 1.4;
                    margin-bottom: 4.6rem;
                }
            }
            .btn {
                font-size: 1.7rem;
                font-weight: 600;
                text-align: center;
                white-space: nowrap;
                padding-block: 2.3rem;
                width: 50rem;
                color: #fff;
                background-color: #000;
                border: #000 0.1rem solid;
                transition: all 0.3s ease-out;
                @media (any-hover: hover) {
                    &:hover {
                        color: #000;
                        background-color: #fff;
                        border: solid 0.1rem #d8d8d8;
                    }     
                }
                @media screen and (max-width: 768px) {
                    font-size: 1.2rem;
                    width: 30rem;
                    padding-block: 1.5rem;
                }
            }
        }
    }
}
/* ------------------ */
@property --grad25 {
    syntax: "<percentage>";
    inherits: false;
    initial-value: 0%;
}
@property --grad60 {
    syntax: "<percentage>";
    inherits: false;
    initial-value: 0%;
}
/* ------------------ */
@keyframes grad{
    0%{--grad25: 0%; --grad60: 0%;}
    100%{--grad25: 25%; --grad60: 60%;}
}
@keyframes grad-reverse{
    0%{--grad25: 25%; --grad60: 60%;}
    100%{--grad25: 0%; --grad60: 0%;}
}