:root {
    --bg: #F9F9F9;
    --line: #A1A1A1;
    --black: #3C3C3C;
    --fontEn: "helvetica-neue-lt-pro", "Helvetica Neue", sans-serif;
}

html {
    font-size: 0.694vw;
    scroll-behavior: auto;
}

body {
    font-family: "游ゴシック体", "Yu Gothic", "yu-gothic-pr6n", sans-serif;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.6;
    color: #3C3C3C;
}

.wrapper{
    margin: auto;
    max-width: 110rem;
}

.sp{
    display: none;
}
@media (max-width: 767px) {
    .pc {
        display: none;
    }
    .sp {
        display: block;
    }
}

section{
    position: relative;
}

.section_title span{
    font-family: var(--fontEn);
    font-size: 5.6rem;
    font-weight: 300;
    letter-spacing: 0.12em;
    margin-bottom: 1rem;
}

.section_title h2{
    letter-spacing: 0.05em;
}

.hover{
    transition: 0.3s;
}

.hover:hover{
    opacity: 0.7;
}

.grecaptcha-badge { 
    visibility: hidden; 
}


/* more btn ---------------------------------------------------*/

.more_btn{
    color: var(--black);
    font-family: var(--fontEn);
    font-weight: 400;
    letter-spacing: 0.08em;
    display: inline-flex;
    align-items: center;
    gap: 1.5rem;
    transition: 0.3s;
}

.more_arrow{
    content: "";
    width: 0.8rem;
    height: 0.8rem;
    border-right: solid 0.11rem var(--black);
    border-bottom: solid 0.11rem var(--black);
    transform: translateX(0) rotate(-45deg);
    transition: 0.3s;
}

.more_btn:hover{
    opacity: 0.7;
}

.more_btn:hover .more_arrow{
    transform: translateX(0.5rem) rotate(-45deg);
}


/* header ---------------------------------------------------*/

header{
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: fixed;
    z-index: 999;
    top: 0;
    padding: 3rem;
}

.header_left{
    display: flex;
    align-items: center;
    gap: 5rem;
}

.header_logo img{
    width: 8rem;
}

.header_menu{
    font-family: var(--fontEn);
    font-weight: 400;
    letter-spacing: 0.12em;
    display: flex;
    align-items: center;
    gap: 3rem;
}

.header_contact{
    color: #fff;
    background-color: var(--black);
    border: solid 0.11rem var(--black);
    font-family: var(--fontEn);
    font-weight: 400;
    letter-spacing: 0.12em;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1rem 2rem;
    transition: 0.3s;
}

.header_contact .more_arrow{
    border-right: solid 0.11rem #fff;
    border-bottom: solid 0.11rem #fff;
}

.header_contact:hover{
    color: var(--black);
    background-color: #fff;
}

.header_contact:hover .more_arrow{
    border-right: solid 0.11rem var(--black);
    border-bottom: solid 0.11rem var(--black);
}

.header_hamburger {
    display: none;
}

.header__nav {
    display: none;
}


/* cta ---------------------------------------------------*/

.cta{
    padding: 10rem 0;
}

.cta_inner{
    color: #fff;
    background: url(../images/common/cta.jpg) center / cover no-repeat;
    padding: 5.5rem 8rem;
    display: flex;
    gap: 5rem;
    align-items: center;
}

.cta_left{
    display: flex;
    flex-flow: column;
    gap: 3rem;
}

.cta_left p{
    font-size: 1.4rem;
    text-align: justify;
}

.cta_right{
    display: flex;
    flex-flow: column;
    gap: 5rem;
    padding-left: 5rem;
    border-left: solid 0.11rem #fff;
}

.cta_right a{
    width: 42rem;
    height: 10rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3rem;
    border: solid 0.11rem #fff;
    transition: 0.3s;
}

.cta_right a:hover{
    color: var(--black);
    background: #fff;
}

.cta_right a .more_arrow{
    border-right: solid 0.11rem #fff;
    border-bottom: solid 0.11rem #fff;
}

.cta_right a:hover .more_arrow{
    border-right: solid 0.11rem var(--black);
    border-bottom: solid 0.11rem var(--black);
}

.cta_form{
    font-size: 2rem;
}

.cta_tel{
    font-family: var(--fontEn);
    font-size: 4rem;
    font-weight: 300;
    letter-spacing: 0.04em;
}


/* footer ---------------------------------------------------*/

footer {
    background: #EFEFEF;
    padding: 10rem;
    position: relative;
    z-index: 10;
}

.footer_inner{
    display: flex;
    align-items: start;
    justify-content: space-between;
    margin-bottom: 8rem;
}

.footer_left{
    display: flex;
    flex-flow: column;
    gap: 3rem;
}

.footer_logo{
    width: 8rem;
}

.footer_logo img{
    width: 100%;
}

.footer_menu{
    font-family: var(--fontEn);
    font-weight: 500;
    letter-spacing: 0.12em;
    display: flex;
    align-items: center;
    gap: 3rem;
}

small{
    font-size: 1.4rem;
}

/* under page ---------------------------------------------------*/

.under_kv{
    padding: 16rem 0;
    position: relative;
}

.under_kv .wrapper{
    position: relative;
}

.under_bg{
    display: block;
    width: 110rem;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    right: 0;
}

.page_title span{
    font-family: var(--fontEn);
    font-size: 7.2rem;
    font-weight: 200;
    letter-spacing: 0.12em;
    line-height: 1;
    margin-bottom: 1rem;
}

.page_title h1{
    font-size: 2.4rem;
}

.anker_link .wrapper{
    padding: 7rem 0;
    border-bottom: solid 0.1rem var(--line);
}

.anker_link ul{
    display: flex;
    align-items: center;
    gap: 6rem;
}

.anker_link a{
    font-size: 2rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    transition: 0.3s;
}

.anker_arrow{
    content: "";
    width: 1rem;
    height: 1rem;
    border-right: solid 0.11rem var(--black);
    border-bottom: solid 0.11rem var(--black);
    margin-top: -0.5rem;
    transform: translateX(0) rotate(45deg);
    transition: 0.3s;
}

.anker_link a:hover{
    opacity: 0.7;
}


@media (min-width: 1620px) {
	html {
        font-size: 0.62vw;
    }
}


@media (max-width: 1024px) {
    html {
        font-size: 0.977vw;
    }

    .wrapper{
        max-width: 90rem;
    }

    .cta_right a{
        width: 34rem;
        height: 8rem;
    }

    .under_bg{
        width: 76%;
    }
}


@media screen and (max-width:767px){
    html {
        font-size: 2.56vw;
    }

    .wrapper{
        max-width: 35rem;
    }

    .section_title span{
        font-size: 4rem;
    }

    /* header ---------------------------------------------------*/

    header{
        padding: 1.5rem;
    }

    .header_logo{
        width: 6rem;
    }

    .header_menu{
        display: none;
    }

    .header_contact{
        display: none;
    }

    .header_hamburger {
        width: 3rem;
        height: 2rem;
        display: block;
        position: fixed;
        top: 2.5rem;
        right: 1.5rem;
        z-index: 2000;
    }

    .header_hamburger span{
        display: inline-block;
        background: var(--black);
        width: 100%;
        height: 0.1rem;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
        transition: all .4s;
    }

    .header_hamburger span:nth-of-type(1) {
        top: 0;
    }

    .header_hamburger span:nth-of-type(2) {
        top: 1rem;
    }

    .header_hamburger span:nth-of-type(3) {
        top: 2rem;
    }

    .header_hamburger.active span:nth-of-type(1) {
        top: 0;
        left: 0;
        transform: translateY(1rem) rotate(-30deg);
    }

    .header_hamburger.active span:nth-of-type(2) {
        display: none;
    }

    .header_hamburger.active span:nth-of-type(3){
        top: 0;
        left: 0;
        transform: translateY(1rem) rotate(30deg);
    }

    .header__nav {
        display: block;
        background-color: #fff;
        position: fixed;
        top: 0;
        right: 0;
        width: 100%;
        height: 100dvh;
        z-index: 1000;
        transform: translateX(100%);
        transition: transform 0.5s ease;
    }

    .header__nav.active {
        transform: translateX(0);
    }

    .header_nav_menu {
        width: 100%;
    }

    .header_nav_inner {
        margin-top: 10rem;
        padding: 0 2rem;
    }

    .header_nav_list {
        border-bottom: 0.1rem solid var(--line);
    }

    .header_nav_list a {
        display: block;
        font-family: var(--fontEn);
        font-size: 2.8rem;
        font-weight: 300;
        letter-spacing: 0.12rem;
        padding: 1.5rem 0;
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }

    .header_nav_list a .more_arrow{
        width: 1.2rem;
        height: 1.2rem;
    }

    /* cta ---------------------------------------------------*/

    .cta{
        padding: 8rem 0;
    }

    .cta_inner{
        background: url(../images/common/sp/cta.jpg) center / cover no-repeat;
        padding: 6rem 2rem;
        flex-flow: column;
        gap: 4rem;
    }

    .cta_left{
        gap: 2rem;
    }

    .cta_right{
        gap: 3rem;
        padding-left: 0;
        border-left: none;
        width: 100%;
    }

    .cta_right a{
        width: 100%;
        height: 7rem;
    }

    .cta_tel{
        font-size: 2.4rem;
    }

    /* footer ---------------------------------------------------*/

    footer {
        padding: 8rem 2rem 4rem;
    }

    .footer_inner{
        flex-flow: column;
        gap: 4rem;
        margin-bottom: 6rem;
    }

    .footer_left{
        gap: 1.5rem;
        font-size: 1.4rem;
    }   

    .footer_menu{
        flex-flow: column;
        align-items: start;
    }

    small{
        padding-top: 3rem;
        border-top: solid var(--line) 0.1rem;
        display: block;
        text-align: center;
    }

    /* under page ---------------------------------------------------*/

    .under_kv{
        padding: 10rem 0 7rem;
    }

    .page_title span{
        font-size: 4rem;
    }

    .page_title h1{
        font-size: 1.6rem;
    }

    .anker_link .wrapper {
        padding: 3.5rem 0;
    }

    .anker_link ul{
        flex-flow: column;
        gap: 2rem;
        align-items: start;
    }

    .anker_link a{
        font-size: 1.6rem;
    }
}

/* animation ---------------------------------------------------*/

.fadeIn{
    opacity: 0;
    transition: opacity 0.8s;
}

.fadeIn.show {
    opacity: 1;
}

.fadeInUp{
    opacity: 0;
    transform: translateY(2rem);
    transition: opacity 0.8s ease, transform 0.8s ease;
    display: block;
}

.fadeInUp.show {
    opacity: 1;
    transform: translateY(0);
}

.blur{
    opacity: 0;
    filter: blur(2rem);
    transition: filter 0.8s ease, opacity 0.8s ease;
}

.blur.show{
    opacity: 1;
    filter: blur(0);
}

/* delay */
.delay200{
    transition-delay: 0.2s;
}

.delay300{
    transition-delay: 0.3s;
}

.delay400{
    transition-delay: 0.4s;
}

.delay500{
    transition-delay: 0.5s;
}

.delay600{
    transition-delay: 0.6s;
}

.delay700{
    transition-delay: 0.7s;
}

.delay800{
    transition-delay: 0.8s;
}

.delay800{
    transition-delay: 0.8s;
}

.delay1000{
    transition-delay: 1s;
}