@charset "UTF-8";

:root {
    --designSizePc: 1400;
    --designSizeSp: 750;
    /* 
     * pxをvwに変換する式
     * min(calc(22 * var(--vw-pc)), 22px)
     */
    --vw-pc: calc(100vw / 1400);
    --vw-sp: calc(100vw / 750);

    --transition-ease: cubic-bezier(0.65, 0, 0.35, 1);
}

html,body{
    height: 100%;
}

body{
    font-family: "YakuHanJP","Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
}

picture{
    display: block;
}
picture img{
    display: block;
    width: 100%;
    height: auto;
}

@keyframes typing {
    0% { opacity: 0; }
    50% { opacity: 1; }
}

@keyframes arrowAnim {
    0% {
        opacity: 1;
        transform: translate3d(0px, 0px, 0px);
    }
    50% {
        opacity: 0;
        transform: translate3d(50%, 0px, 0px);
    }
    50.01% {
        opacity: 0;
        transform: translate3d(-50%, 0px, 0px);
    }
    100% {
        opacity: 1;
        transform: translate3d(0px, 0px, 0px);
    }
}



/* header */
.header{
    aspect-ratio: 1400/80;
    display: flex;
    align-items: center;
    background-color: #fff;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
}

.header_inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-left: auto;
    margin-right: auto;
    width: calc(1100 * var(--vw-pc));
}

.header_logo{
    width: calc(254 * var(--vw-pc));
}

.header_msg{
    width: calc(353 * var(--vw-pc));
}


main{
    margin-top: calc(80 * var(--vw-pc));
    overflow: hidden;
}

/* handwritten_deco */
.handwritten_deco{
    --bg-pos: 50% 0%;
}
.handwritten_deco img{
    visibility: hidden;
}
.handwritten_deco::after {
    content: '';
    position: absolute;
    inset: 0;
  
    background-image: url('../images/common/handwritten_deco_bg.jpg');
    background-size: 200% auto;
    background-position: var(--bg-pos);
  
    mask: url('../images/common/handwritten_deco.svg');
    mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
}

/* btn */
.more_btn{
    background-color: #000;
    color: #fff;
    display: block;
    display: flex;
    justify-content: center;
    font-family: "Barlow", sans-serif;
    font-size: calc(18 * var(--vw-pc));
    font-weight: 600;
    margin-top: calc(24 * var(--vw-pc));
    padding-top: calc(18 * var(--vw-pc));
    padding-bottom: calc(18 * var(--vw-pc));
    width: 100%;
    position: relative;
}
.more_btn::after{
    content: "";
    aspect-ratio: 23/10;
    background-image: url('../images/common/btn_arrow_white.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    display: block;
    width: calc(23 * var(--vw-pc));
    position: absolute;
    top: 40%;
    right: calc(12 * var(--vw-pc));
}
.more_btn:hover::after{
    animation: 1s cubic-bezier(0, 0.5, 0, 1) 0s 1 normal none running arrowAnim;
}


/* footer */
.footer{
    background-color: #000;
    padding-top: calc(90 * var(--vw-pc));
    padding-bottom: calc(100 * var(--vw-pc));
}

.footer_logo{
    margin-left: auto;
    margin-right: auto;
    width: calc(295 * var(--vw-pc));
}

.footer_copyright{
    color: #fff;
    font-family: "Barlow", sans-serif;
    font-size: calc(11 * var(--vw-pc));
    font-weight: 700;
    text-align: center;
    margin-top: calc(18 * var(--vw-pc));
}




br.pc{
    display: block;
}
br.sp{
    display: none;
}






@media screen and (max-width: 767px){
    /* header */
    .header{
        aspect-ratio: 750/130;
    }

    .header_inner{
        width: calc(670 * var(--vw-sp));
    }

    .header_logo{
        width: calc(270 * var(--vw-sp));
    }

    .header_msg{
        width: calc(310 * var(--vw-sp));
    }


    main{
        margin-top: calc(130 * var(--vw-sp));
    }

    /* btn */
    .more_btn{
        font-size: calc(38 * var(--vw-sp));
        margin-top: calc(100 * var(--vw-sp));
        padding-top: calc(30 * var(--vw-sp));
        padding-bottom: calc(30 * var(--vw-sp));
    }
    .more_btn::after{
        aspect-ratio: 50/23;
        width: calc(50 * var(--vw-sp));
        right: calc(24 * var(--vw-sp));
    }


    /* footer */
    .footer{
        padding-top: calc(177 * var(--vw-sp));
        padding-bottom: calc(180 * var(--vw-sp));
    }

    .footer_logo{
        width: calc(500 * var(--vw-sp));
    }

    .footer_copyright{
        font-size: calc(18 * var(--vw-sp));
        margin-top: calc(32 * var(--vw-sp));
    }




    br.pc{
        display: none;
    }
    br.sp{
        display: block;
    }
}