/* ===================
    common
===================== */
/* Google font */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap');
html{
    font-size: 62.5%;
}

body{
    font-family: 'Noto Sans JP';
    color: #000;
    background-color: #fff;
}

img{
    width: 100%;
}

.inner{
    width: 90%;
    max-width: 980px;
    margin: auto;
}

.logo{
    max-width: 210px;
}

.btn{
    width: 350px;
    border-radius: 50px;
    overflow: hidden;
}

.btn__link{
    display: block;
    width: 100%;
    height: 100%;
    font-size: 2rem;
    font-weight: 500;
    text-align: center;
    padding: 20px 0;
    background-color: #f5a01e;
    color: #fff;
    border-radius: 50px;
    position: relative;
    transition: .4s ease;
}

.btn__link:hover{
    background-color: #e15c16;
}

.btn__link::before{
    content: "";
    display: block;
    width: 8px;
    height: 100%;
    background: url('../img/common/arrow-white.svg') no-repeat;
    background-size: 100%;
    background-position: center;
    position: absolute;
    top: 0;
    right: 5%;
    pointer-events: none;
}

.title{
    font-size: 4.5rem;
    font-weight: 700;
    text-align: center;
}

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

.info-btn__wrap{
    display: none;
}

@media screen and (max-width: 1024px){
    .info-btn__wrap{
        display: flex;
        position: fixed;
        left: 0;
        bottom: 0;
        width: 100%;
        background-color: #fff;
        padding: 13px 5px;
        z-index: 100;
        justify-content: center;
        transform: translateY(100%);
        transition: .4s ease;
    }

    .inf-btn{
        max-width: 300px;
    }

    .inf-btn .btn__link{
        font-size: 1.6rem;
    }

    .inf-btn:last-child{
        margin-left: 20px;
    }
    
    .info-btn__wrap.is-js{
        transform: translateY(0);
    }
}

@media screen and (max-width: 767px){
    .btn{
        width: 270px;
    }

    .btn__link{
        font-size: 1.7rem;
        padding: 15px 0;
    }

    .btn__link::before{
        width: 5px;
    }

    .title{
        font-size: 2.6rem;
    }

    .pc{
        display: none;
    }

    .sp{
        display: block;
    }

    .inf-btn:last-child{
        margin-left: 10px;
    }
}

/* ===============
    header
===================== */
.header{
    position: fixed;
    width: 100%;
    z-index: 100;
    background-color: #fff;
}

.header__inner{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 10px 20px 30px;
}

.header-logo{
    display: flex;
    align-items: center;
}

.header-logo .logo{
    width: 13.125vw;
}

.header-logo > span{
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.54;
    margin-left: 10px;
}

.header-info{
    display: flex;
    align-items: center;
    width: 671px;
}

.tel-wrap{
    display: flex;
    align-items: center;
    margin-left: auto;
}

.tel{
    font-size: 1.6875vw;
    font-weight: 500;
    text-align: center;
    border: 1px solid #000;
    padding: 2px 10px;
}

.tel-wrap address{
    font-weight: 400;
    font-size: 3.4rem;
    margin-left: 15px;
}

.tel-wrap address > span{
    font-size: 1.2rem;
    font-weight: 300;
    display: block;
}

.header-info .btn{
    margin-left: 2.98%;
    width: 21.875vw;
    max-width: 350px;
    min-width: 280px;
}

@media screen and (min-width: 1601px){
    .tel{
        font-size: 2.7rem;
    }
}

@media screen and (max-width: 1200px){
    .header-logo .logo {
        width: 145px;
    }

    .header-logo > span {
        font-size: 1.2rem;
    }

    .header-info {
        width: 565px;
    }

    .tel-wrap address {
        font-size: 3rem;
    }

    .header-info .btn{
        min-width: 230px;
    }

    .header-info .btn__link {
        font-size: 1.7rem;
        padding: 18px 0;
    }

    .header-info .btn__link::before {
        right: 10px;
    }
}

@media screen and (max-width: 1024px){
    .header{
        position: static;
    }

    .header__inner {
        justify-content: center;
        padding: 15px 10px 15px 30px;
    }

    .header-logo .logo {
        width: 175px;
    }

    .header-info{
        display: none;
    }
}

@media screen and (max-width: 767px){
    .header__inner {
        padding: 15px 8px;
    }

    .header-logo .logo {
        width: 135px;
    }

    .header-logo > span {
        font-size: 1.0rem;
        margin-left: 0;
    }
}

@media screen and (max-width: 575px){
    .header__inner {
        padding: 9px 5px;
    }

    .header-logo .logo {
        width: 110px;
    }

    .header-logo>span{
        line-height: 1.4;
    }
}

/* ===============
    mainvisual
===================== */
.mainvisual{
    padding-top: 93px; 
}

.mainvisual .wrap{
    position: relative;
    height: 100%;
}

.mainvisual__inner{
    width: 90%;
    max-width: 68.75vw;
    position: absolute;
    top: 3%;
    left: 15%;
}

.mainvisual__inner .text-img{
    width: 90%;
}

.mainvisual__inner .btn-img{
    margin-top: -30px;
    position: relative;
}

.mainvisual__inner .btn-img .btn{
    position: absolute;
    bottom: 10%;
    left: 50%;
    transform: translateX(-50%);
    width: 21.875vw;
    min-width: 145px;
}

.mainvisual__inner .btn-img .btn__link{
    padding: 5.714% 0;
    font-size: 1.25vw;
}

@media screen and (max-width: 1024px){
    .mainvisual {
        padding-top: 0;
    }

    .mainvisual__inner .btn-img {
        margin-top: -20px;
    }
}

@media screen and (max-width: 767px){
    .mainvisual__inner{
        width: 100%;
        max-width: 85vw;
        left: 7%;
    }
    .mainvisual__inner .btn-img {
        margin-top: 20px;
    }
    .mainvisual__inner .text-img{
        width: 100%;
    }
    .mainvisual__inner .btn-img .btn{
        min-width: 175px;
        bottom: 16%;
    }
    .mainvisual__inner .btn-img .btn__link{
        font-size: 11px;
    }
}

/* ===============
    case
===================== */
.case{
    padding-bottom: 110px;
    background-image: url('../img/case/bg.jpg');
    background-size: 100%;
}

.case p{
    font-weight: 700;
    font-size: 3.5rem;
    text-align: center;
}

.case p > span{
    position: relative;
    display: inline-block;
}

.case p > span::before{
    content: "";
    display: block;
    width: 100%;
    height: 6px;
    background-color: #ff9182;
    position: absolute;
    bottom: -10px;
    left: 0;
}

.case p img{
    max-width: 295px;
    transform: translateY(20%);
}

.case-content{
    margin-top: 80px;
}

.case-item{
  position: relative;
}

.case-item::before{
    content: "";
    display: block;
    width: 296px;
    height: 120px;
    position: absolute;
    top: 0;
    left: 0;
    background-repeat: no-repeat;
    background-size: 100%;
    background-position: bottom;
    transform: translate(-20%, -40%);
}

.case-item + .case-item{
    margin-top: 50px;
}

.case-item:nth-child(even){
    margin-left: auto;
}

.case-item:nth-child(1){
    max-width: 878px;
}

.case-item:nth-child(2){
    max-width: 763px;
}

.case-item:nth-child(3){
    max-width: 754px;
}

.case-item:nth-child(1)::before{
    background-image: url('../img/case/deco02.png');
}

.case-item:nth-child(2)::before{
    background-image: url('../img/case/deco03.png');
}

.case-item:nth-child(3)::before{
    background-image: url('../img/case/deco04.png');
}

@media screen and (max-width: 1024px){
    .case p {
        font-size: 2.6rem;
    }

    .case p img {
        max-width: 245px;
    }
}

@media screen and (max-width: 767px){
    .case{
        padding-bottom: 80px;
    }

    .case p {
        font-size: 2.2rem;
    }

    .case p img {
        max-width: 150px;
    }

    .case-content{
        margin-top: 40px;
    }

    .case-item::before{
        width: 200px;
        transform: translate(-20%, -60%);
        display: none;
    }
    .case .inner{
        width: 100%;
    }
}

@media screen and (max-width: 575px){
    .case p {
        font-size: 1.8rem;
    }

    .case p img {
        max-width: 150px;
        margin: 0 -2px 0 -10px;
    }

    .case-item::before{
        width: 135px;
        transform: translate(-13%, -77%);
    }
    .case-item+.case-item{
        margin-top: 42px;
    }
}

/* ===============
    btn-box01
===================== */
.btn-box01{
    background: url('../img/common/bg01.jpg') no-repeat;
    overflow-x: hidden;
}

.btn-box01 .inner{
    position: relative;
    padding: 30px 0 65px;
    z-index: 0;
}

.btn-box01 .inner::before{
    content: "";
    display: block;
    width: 315px;
    height: 100%;
    background: url('../img/common/man01.png') no-repeat;
    background-size: 100%;
    background-position: bottom;
    position: absolute;
    bottom: 0;
    right: 0;
    transform: translateX(60%);
    z-index: -1;
}

.btn-box01 .text{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 2;
    text-align: center;
    color: #fff;
}

.btn-box01 .text_lg{
    font-size: 4.5rem;
    font-weight: 700;
    margin-top: 60px;
    text-align: center;
    color: #fff;
}

.btn-box01 .text_lg > span{
    position: relative;
}

.btn-box01 .text_lg > span::before{
    content: "";
    display: block;
    width: 100%;
    height: 7px;
    background-color: #ffff00;
    position: absolute;
    bottom: -7px;
    left: 0;
}

.btn-box01 .btn{
    margin: 60px auto 0;
}

@media screen and (max-width: 1024px){
    .btn-box01 .inner::before{
        width: 255px;
        transform: translateX(40%);
    }

    .btn-box01 .text{
        font-size: 1.8rem;
    }

    .btn-box01 .text_lg{
        font-size: 3rem;
        margin-top: 40px;
    }
}

@media screen and (max-width: 767px){
    .btn-box01 .text{
        font-size: 1.5rem;
    }

    .btn-box01 .text_lg{
        font-size: 2.4rem;
    }
}

@media screen and (max-width: 575px){
    .btn-box01 .inner::before{
        width: 165px;
        transform: translateX(42%);
    }

    .btn-box01 .text{
        font-size: 1.5rem;
        line-height: 1.6;
        font-weight: 500;
    }

    .btn-box01 .text_lg{
        font-size: 1.7rem;
        margin-top: 22px;
    }
    .btn-box01 .btn{
        margin-top: 40px;
    }
}

/* ===============
    introduce
===================== */
.introduce{
    padding: 50px 0 100px;
    background-color: #fff;
}

.introduce .text_lg{
    font-size: 4.5rem;
    font-weight: 700;
    line-height: 1.51;
    text-align: center;
}

.introduce .text_lg span{
    background-color: #008c96;
    padding: 0 10px;
    color: #fff;
    display: inline-block;
    line-height: 1.3
}

.introduce .text{
    font-size: 1.9rem;
    font-weight: 400;
    line-height: 2;
}

.introduce .text .maker{
    background-color: #ffaa9e;
}

.introduce .text:nth-of-type(2){
    margin-top: 40px;
}

.introduce .text:nth-of-type(3){
    margin-top: 50px;
}

.introduce .text:nth-of-type(4){
    margin-top: 40px;
}

.introduce-content{
    margin-top: 45px;
    background-color: #f0f0f0;
}

.introduce-content > span{
    font-size: 2rem;
    font-weight: 500;
    text-align: center;
    line-height: 1.5;
    display: block;
    padding: 10px;
    background-color: #031733;
    color: #fff;
}

.introduce-content__inner{
    display: flex;
    padding: 30px;
}

.introduce-item{
    width: calc((100% - 30px * 2) / 3);
}

.introduce-item + .introduce-item{
    margin-left: 30px;
}

.introduce-item .number{
    width: 58px;
    display: block;
}

.introduce-item__title{
    font-size: 2.5rem;
    font-weight: 500;
    color: #0b6bbe;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    line-height: 1.16;
    margin-top: -15px;
    min-height: 87px;
}

.introduce-item .img-wrap{
    width: 90%;
    margin: 10px auto 15px;
}

.introduce-item__text{
    font-weight: 400;
    font-size: 1.9rem;
    line-height: 1.526;
}

.introduce-item__text .text-color{
    color: #ed1c24;
    font-weight: 700;
}

.introduce-item__text .text_sm{
    font-size: 1.4rem;
    line-height: 1.428;
    display: inline-block;
}

@media screen and (max-width: 1024px){
    .introduce .text_lg {
        font-size: 3.6rem;
    }

    .introduce-content__inner{
        padding: 30px 25px;
    }

    .introduce-item{
        width: calc((100% - 20px * 2) / 3);
    }

    .introduce-item + .introduce-item {
        margin-left: 20px;
    }

    .introduce-item .number {
        width: 50px;
    }

    .introduce-item__title {
        font-size: 2.1rem;
        margin-top: -10px;
    }

    .introduce-item__text {
        font-size: 1.7rem;
    }
}

@media screen and (max-width: 767px){
    .introduce .text_lg {
        font-size: 2.8rem;
    }

    .introduce .text{
        font-size: 1.5rem;
        line-height: 1.8;
    }

    .introduce-content > span{
        font-size: 1.7rem;
        line-height: 1.4;
    }

    .introduce-content__inner{
        flex-wrap: wrap;
    }

    .introduce-item{
        width: 100%;
    }

    .introduce-item + .introduce-item {
        margin-left: 0;
        margin-top: 40px;
    }

    .introduce-item__title {
        font-size: 1.9rem;
        min-height: 60px;
        margin-bottom: 9px;
    }
    .introduce-item .number {
        width: 43px;
    }
    .introduce-item .img-wrap {
        max-width: 300px;
        width: 58%;
    }
    .introduce-item__text{
        font-size: 1.5rem;
        margin-top: 20px;
    }
    .introduce-item+.introduce-item{
        margin-top: 55px;
    }
    .introduce .text:nth-of-type(4){
        margin-top: 15px;
    }
    .introduce .text:nth-of-type(3) {
        margin-top: 35px;
    }
}

@media screen and (max-width: 575px){
    .introduce .text_lg {
        font-size: 1.9rem;
        line-height: 1.8;
    }
    .introduce .text:nth-of-type(2){
        margin-top: 22px;
        line-height: 1.8;
    }
    .introduce-item:nth-child(1) .img-wrap:nth-child(3){
        margin: -10px auto 0;
    }
}

/* ===============
    message
===================== */
.message{
    padding: 50px 0 90px;
    background: url('../img/common/bg02.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

.message .text_lg{
    font-size: 4.5rem;
    font-weight: 700;
    line-height: 1.51;
    text-align: center;
}

.message .text_lg span{
    background-color: #008c96;
    color: #fff;
    display: inline-block;
    line-height: 1.3;
}

.message-body{
    margin-top: 30px;
}

.message-body .text{
    font-size: 1.9rem;
    font-weight: 400;
    line-height: 2;
}

.message-body .text + .text{
    margin-top: 40px;
}

.message-body .text span{
    background-color: #ffaa9e;
}

@media screen and (max-width: 1024px){
    .message .text_lg{
        font-size: 3.6rem;
    }
}

@media screen and (max-width: 767px){
    .message{
        background-position: center bottom;
        background-attachment: scroll;
    }

    .message .text_lg{
        font-size: 2.8rem;
    }

    .message-body .text{
        font-size: 1.5rem;
        line-height: 1.8;
    }
    .message-body .text+.text {
        margin-top: 12px;
    }
}

@media screen and (max-width: 575px){
    .message .text_lg{
        font-size: 1.9rem;
    }
}

/* ===============
    btn-box02
===================== */
.btn-box02{
    background: url('../img/common/bg01.jpg') no-repeat;
    overflow-x: hidden;
}

.btn-box02 .inner{
    position: relative;
    padding: 50px 0 45px;
    z-index: 0;
}

.btn-box02 .inner::before{
    content: "";
    display: block;
    width: 615px;
    height: 100%;
    background: url('../img/common/man02.png') no-repeat;
    background-size: 100%;
    background-position: bottom;
    position: absolute;
    bottom: 0;
    right: 0;
    transform: translateX(45%);
    z-index: -1;
}

.btn-box02 .text{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 2;
    text-align: center;
    color: #fff;
    margin-top: 70px;
}

.btn-box02 .text_lg{
    font-size: 4.5rem;
    font-weight: 700;
    text-align: center;
    color: #fff;
}

.btn-box02 .text_lg > span{
    position: relative;
}

.btn-box02 .text_lg > span::before{
    content: "";
    display: block;
    width: 100%;
    height: 7px;
    background-color: #ffff00;
    position: absolute;
    bottom: -7px;
    left: 0;
}

.btn-box02 .btn{
    margin: 50px auto 0;
}

@media screen and (max-width: 1024px){
    .btn-box02 .inner::before{
        width: 505px;
        transform: translateX(30%);
    }

    .btn-box02 .text{
        font-size: 1.8rem;
    }

    .btn-box02 .text_lg{
        font-size: 3rem;
        margin-top: 40px;
    }
}

@media screen and (max-width: 767px){
    .btn-box02 .text{
        font-size: 1.5rem;
    }

    .btn-box02 .text_lg{
        font-size: 2.4rem;
    }
}

@media screen and (max-width: 575px){
    .btn-box02 .inner::before{
        width: 340px;
    }

    .btn-box02 .text{
        font-size: 1.5rem;
        line-height: 1.6;
        font-weight: 500;
        margin-top: 35px;
    }

    .btn-box02 .text_lg{
        font-size: 1.9rem;
        margin-top: 0;
    }
    .btn-box02 .text_lg>span::before{
        width: 145%;
        bottom: -13px;
        left: 30%;
        transform: translate(-50%, -50%);
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
    }
    .btn-box02 .btn{
        margin-top: 25px;
    }
}

/* ===============
    voice
===================== */
.voice{
    padding: 80px 0 100px;
    overflow-x: hidden;
    background: url('../img/common/bg03.jpg');
    background-size: 100%;
    background-position: bottom;
    background-attachment: fixed;
}

.voice-content{
    margin-top: 90px;
}

.voice-item{
    padding: 50px 0 45px;
    position: relative;
    z-index: 0;
}

.voice-item::before{
    content: "";
    display: block;
    width: 100vw;
    height: 100%;
    background-color: #fff;
    position: absolute;
    z-index: -1;
    top: 0;
}

.voice-item:nth-child(odd):before{
    right: 0;
}

.voice-item:nth-child(even):before{
    left: 0;
}

.voice-item:nth-child(odd){
    padding-right: 40px;
}

.voice-item + .voice-item{
    margin-top: 50px;
}

.voice-item:nth-child(even){
    padding-left: 40px;
}

.voice-item .number{
    font-size: 2rem;
    font-weight: 500;
    color: #023675;
}

.voice-item__title{
    font-size: 3.1rem;
    font-weight: 700;
    margin-top: 10px;
    line-height: 1.451;
}

.voice-item__title > span{
    color: #008c96;
}

.voice-item__body{
    display: flex;
    margin-top: 30px;
}

.voice-item__body > div{
    width: 332px;
}

.voice-item__body > div span{
    font-size: 2.2rem;
    font-weight: 700;
    color: #023675;
    text-align: center;
    text-align: center;
    display: block;
    margin-top: 15px;
}

.voice-item__text{
    margin-left: 20px;
    font-size: 1.7rem;
    font-weight: 400;
    line-height: 1.764;
    width:calc(100% - 352px);
    flex-grow: 1;
}

.voice-item__text > span{
    background-color: #023675;
    color: #fff;
}

@media screen and (max-width: 1024px){
    .voice-item__title {
        font-size: 2.6rem;
    }

    .voice-item__body > div {
        width: 280px;
    }

    .voice-item__body > div span {
        font-size: 2rem;
    }
}

@media screen and (max-width: 767px){
    .voice-item__title {
        font-size: 2.3rem;
    }

    .voice-item__body {
        flex-wrap: wrap;
        flex-direction: column-reverse;
        margin-top: 20px;
    }

    .voice-item:nth-child(odd){
        padding-right: 20px;
    }
    
    .voice-item:nth-child(even){
        padding-left: 20px;
    }

    .voice-item__body > div {
        width: 90%;
        max-width: 280px;
        margin: 30px auto 0;
    }

    .voice-item__body > div span {
        font-size: 1.8rem;
    }

    .voice-item__text {
        margin-left: 0;
        font-size: 1.45rem;
        width: 100%;
        flex-grow: 1;
    }
    .voice-content{
        margin-top: 45px;
    }
    .voice-item{
        padding-top: 30px;
    }
    .voice-item .number{
        font-size: 1.6rem;
    }
}

@media screen and (max-width: 575px){
    .voice{
        padding: 45px 0 80px;
    }
    .voice-item__title {
        font-size: 1.9rem;
        margin-top: 5px;
    }

    .voice-item__body > div span {
        font-size: 1.6rem;
        line-height: 1.6;
    }
}

/* ===============
    company
===================== */
.company{
    padding: 70px 0 80px;
    background: url('../img/company/bg01.jpg') no-repeat;
    background-size: 100%;
    background-position: bottom;
    background-color: #fff;
}

.company .text_lg {
    font-size: 4.5rem;
    font-weight: 700;
    line-height: 1.51;
    text-align: center;
}

.company .text_lg span {
    background-color: #008c96;
    color: #fff;
    display: inline-block;
    line-height: 1.3;
}

.company-content{
    display: flex;
    align-items: flex-start;
    margin-top: 50px;
}

.company-content > .img-wrap{
    width: 25.61%;
    margin-left: 4.591%;
}

.company-body{
    width: calc(100% - 25.61% - 4.591%);
}

.company__text{
    font-size: 1.7rem;
    font-weight: 400;
    line-height: 2;
}

.company-body .img-wrap{
    width: 80%;
    margin: 20px auto 0;
}


.company-body .history{
    margin-top: 20px;
}

.company-body .history > div{
    font-size: 1.7rem;
    line-height: 2;
    padding: 8px 10px 8px 25px;
    background-color: #e2e2e2;
    display: flex;
}

.company-body .history dt,
.company-body .history dd{
    font-weight: 400;
}

.company-body .history dt{
    min-width: 100px;
}

.company-body .history > div:nth-child(even){
    background-color: #f0f0f0;
}

@media screen and (max-width: 1024px){
    .company .text_lg{
        font-size: 3.6rem;
    }
}

@media screen and (max-width: 767px){
    .company .text_lg{
        font-size: 2.8rem;
    }

    .company-content {
        display: block;
        margin-top: 20px;
    }

    .company-body{
        width: 100%;
    }

    .company-content > .img-wrap {
        width: 55%;
        max-width: 250px;
        margin: 30px auto 30px 0;
    }

    .company__text{
        font-size: 1.5rem;
    }

    .company-body .history > div{
        font-size: 1.5rem;
        padding: 8px 10px;
    }

    .company-body .history dt{
        min-width: 90px;
    }
    .company{
        background: url(../img/company/bg01_sp.jpg) no-repeat;
        background-position: bottom;
        background-size: 100%;
        padding: 45px 0 50px;
    }
}

@media screen and (max-width: 575px){
    .company .text_lg{
        font-size: 1.9rem;
    }
    .company__text{
        font-size: 1.45rem;
        line-height: 1.8;
    }
    .company-body .history dt,
    .company-body .history dd{
        line-height: 1.6;
        font-size: 14px;
    }
}

/* ===============
    message02
===================== */
.message02{
    padding: 70px 0 90px;
    background: url('../img/common/bg04.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

.message02 .message-body > p{
    text-align: center;
}

@media screen and (max-width: 575px){
    .message{
        background-position: center bottom;
        background-attachment: scroll;
    }
    .message02 {
        padding: 45px 0 50px;
    }
}

/* ===============
    faq
===================== */
.faq{
    padding: 60px 0 70px;
    background-color: #fff;
}

.faq .text{
    text-align: center;
    font-weight: 400;
    font-size: 1.9rem;
    margin-top: 60px;
    line-height: 1.4;
}

.faq-content{
    margin: 65px auto 0;
    max-width: 880px;
}

.faq-content > div + div{
    margin-top: 30px;
}

.faq-content dt{
    font-weight: 700;
    font-size: 2rem;
    line-height: 1.3;
    padding: 18px 45px 16px 25px;
    position: relative;
    background-color: #008c96;
    color: #fff;
    cursor: pointer;
}

.faq-content dt::before,
.faq-content dt::after{
    content: "";
    display: block;
    width: 23px;
    height: 2px;
    background: #fff;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 3%;
    transition: .4s ease;
    pointer-events: none;
}

.faq-content dt.is-js::after{
    transform: translateY(-50%) rotate(90deg);
}

.faq-content dd{
    font-size: 400px;
    font-size: 1.7rem;
    line-height: 1.529;
    padding: 13px 15px 16px 25px;
}

@media screen and (max-width: 1024px){
    .faq-content dt{
        font-size: 1.6rem;
    }

    .faq-content dd{
        font-size: 1.5rem;
    }
}

@media screen and (max-width: 767px){
    .faq {
        padding: 45px 0 70px;
    }
    .faq .text{
        font-size: 1.6rem;
        margin-top: 20px;
    }

    .faq-content dt{
        padding: 15px 20px 14px 17px;
        font-weight: 500;
    }

    .faq-content dt::before,
    .faq-content dt::after{
        width: 15px;
    }

    .faq-content dd{
        font-size: 1.4rem;
        padding: 12px 15px 15px 15px;
    }
    .faq-content>div+div{
        margin-top: 20px;
    }
    .faq-content{
        margin-top: 30px;
    }
}

/* ===============
    contact
===================== */
.contact{
    padding: 75px 0 125px;
    background: url('../img/common/bg01.jpg') no-repeat;
    background-size: cover;
}

.contact .title{
    color: #fff;
    line-height: 1.4
}

table.formTable{
	width:100%;
    max-width: 807px;
	margin: 55px auto 0;
	border-collapse:collapse;
}

table.formTable td,
table.formTable th{
	padding: 15px 0;
    font-weight: 400;
}

table.formTable td{
    padding-left: 25px;
}

table.formTable th{
	width:26%;
    min-width: 197px;
	text-align:left;
    vertical-align: middle;
    font-weight: 400;
    font-size: 1.7rem;
    color: #fff;
}

table.formTable th span{
    font-size: 15px;
    display: inline-block;
    padding: 2% 0;
    margin-right: 3%;
    font-weight: 400;
    width: 50px;
    text-align: center;
}

textarea,
input[type="text"],
input[type="email"],
input[type="tel"]{
    width: 100%;
    resize: vertical;
    font-size: 17px;
    padding: 2%;
    border: 1px solid #fff;
    background-color: #fff;
}

input{
    color: #000;
}

textarea {
    min-height: 150px;
    line-height: 1.6;
}

input::placeholder,
textarea::placeholder {
  color: #A2A2A2;
  font-size: 14px;
}

table.formTable th span.mandatory{
  background-color: #f5a01e;
  color: #000;
}

table.formTable th span.any{
  background-color: #707070;
  color: #fff;
}

input[type="hidden"],
input[type="button"],
input[type="submit"] {
    background-color: #f5a01e;
    color: #fff;
    border: none;
    padding: 20px 15%;
    border-radius: 30px;
    font-size: 16px;
    display: block;
    -webkit-appearance: none;
    text-align: center;
    max-width: 375px;
    min-width: 250px;
    position: relative;
    width: 100%;
    margin: auto;
    transition: .4s ease;
}

input[type="hidden"]:hover,
input[type="button"]:hover,
input[type="submit"]:hover{
    background-color: #e15c16;
}

.input-btn__wrap{
    margin-top: 7%;
}

.input-btn{
    max-width: 350px;
    margin: auto;
    position: relative;
}

.input-btn::before{
    content: "";
    display: block;
    width: 8px;
    height: 100%;
    background: url('../img/common/arrow-white.svg') no-repeat;
    background-size: 100%;
    background-position: center;
    position: absolute;
    top: 0;
    right: 5%;
    z-index: 1;
    pointer-events: none;
}

table.formTable tr:last-child th{
    vertical-align: initial;
}


/* 確認画面 */
.confirm-page__header{
    position: static;
}

.confirm-page__header .header-logo{
    margin: auto;
}

.confirm-page{
    padding: 40px 0;
    background: url('../img/common/bg01.jpg') no-repeat;
    background-size: cover;
}

.confirm-page h3{
    text-align: center;
    font-size: 3rem;
    font-weight: 700;
    color: #fff;
}

.confirm-page h3 + p{
    font-size: 1.6rem;
    margin-top: 20px;
    color: #fff;
}

.confirm-page table.formTable th{
    color: #fff;
    font-weight: 700;
}

.confirm-page table.formTable td{
    font-size: 1.7rem;
    color: #fff;
}

.confirm-page .btn__wrap{
    margin-top: 40px;
    display: flex;
    flex-wrap: wrap;
}

.confirm-page h4,
.confirm-page .error_messe{
    color: #fff;
    font-size: 1.7rem;
}

.thanks{
    color: #fff;
    font-size: 1.7rem;
    padding: 80px 0;
}

.mail-top{
    max-width: 350px;
    margin-top: 40px;
}

@media screen and (max-width: 1024px){
    .contact .title{
        font-size: 3.2rem;
    }
}


@media screen and (max-width: 767px){
    .contact {
        padding: 45px 0 50px;
    }
    .contact .title{
        font-size: 2.3rem;
    }
    table.formTable{
        margin-top: 25px;
    }
    .contact__content > span {
        font-size: 2.2rem;
        line-height: 1.3;
    }
    table.formTable th span{
        font-size: 14px;
        padding: 1% 0;
    }
    table.formTable td, 
    table.formTable th {
        padding: 5px 0;
    }

    table.formTable th {
        margin-top: 0px;
        font-size: 1.5rem;
    }

    table.formTable tr:first-child td{
        padding-top: 3px;
    }
    
    textarea,
    input[type="text"],
    input[type="email"],
    input[type="tel"]{
        width: 100%;
        height: 36px;
    } 

    input[type="text"], 
    textarea {
        padding: 5px;
    }

    table.formTable td{
        padding-left: 0;
        display: block;
        margin-bottom: 10px;
    }
    
    table.formTable th{
        width: 100%;
        display: block;
    }

    .confirm-page h3{
        font-size: 2.4rem;
    }

    .confirm-page .input-btn:last-child{
        margin-top: 30px;
    }
    .input-btn{
        width: 80%;
    }
}

/* ===============
    footer
===================== */
.footer{
    padding: 30px 0 25px;
    background-color: #c8c8c8;
}

.footer .inner{
    width: 100%;
    padding: 0 8px;
}

.footer_top{
    display: flex;
    justify-content: center;
    align-items: center;
}

.footer_top > span {
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.54;
    margin-left: 10px;
}

.footer_bottom{
    display: flex;
    justify-content: space-between;
    margin-top: 40px;
}

.footer-nav{
    display: flex;
}

.footer-nav > li{
    font-size: 1.2rem;
    font-weight: 400;
}

.footer-nav > li:last-child{
    margin-left: 30px;
    position: relative;
}

.footer-nav > li:last-child::before{
    content: "";
    display: block;
    width: 1px;
    height: 100%;
    background-color: #000;
    position: absolute;
    top: 0;
    left: -15px;
    transform: translateX(-50%);
}

.footer-nav__link{
    transition: .4s ease;
}

.footer-nav__link:hover{
    opacity: .6;
}

.copyright{
    font-size: 1.2rem;
    font-weight: 400;
    display: block;
}

@media screen and (max-width: 1024px){
    .footer{
        margin-bottom: 81px;
    }
}

@media screen and (max-width: 767px){
    .footer_top .logo {
        width: 125px;
    }

    .footer_top > span {
        font-size: 1.0rem;
        margin-left: 0;
    }

    .footer-nav{
        justify-content: center;
    }

    .footer_bottom{
        display: block;
        text-align: center;
        margin-top: 17px;
    }

    .copyright{
        margin-top: 8px;
    }
}

@media screen and (max-width: 575px){
    .footer{
        margin-bottom: 86px;
        padding: 20px 0 22px;
    }
}

.tel-box{
    position: fixed;
    top: 30%;
    right: 0;
    font-size: 2.2rem;
    width: 68px;
    font-weight: 500;
    color: #fff;
}

.tel-box > a{
    background-color: #f5a01e;
    padding: 60px 22px 40px 25px;
    display: block;
    width: 100%;
    height: 100%;
}

.tel-box span{
    position: relative;
}

.tel-box span::before{
    content: "";
    display: block;
    width: 30px;
    height: 30px;
    background: url('../img/common/tel-icon.svg') no-repeat;
    background-size: 100%;
    position: absolute;
    top: -5px;
    left: 50%;
    transform: translate(-50%, -100%);
}

@media screen and (max-width: 1024px){
    .tel-box{
        font-size: 1.9rem;
    }

    .tel-box > a{
        padding: 60px 19px 20px 24px;
        display: block;
        width: 100%;
        height: 100%;
    }

    .tel-box span::before{
        width: 25px;
        height: 25px;
    }
}

@media screen and (max-width: 767px){
    .tel-box{
        display: none;
    }
}

/* プライバシーポリシー */
.privacy .key_line02{
    background-color: #f2f5fc;
    padding: 160px 0 65px;
}
.privacy .key_line02 .h3{
    text-align: center;
    font-size: 4.5rem;
    font-weight: 700;
    line-height: 1.51;
}
.privacy .inner{
    padding: 50px 0 100px;
}
.privacy .pra_box ul li,
.privacy .pra_box p,
.privacy .h3{
    font-size: 19px;
    font-weight: 400;
    line-height: 2;
}
.privacy .pra_box ul{
    padding-left: 20px;
}
.privacy .pra_box ul li{
    list-style: disc;
}
.privacy .pra_box{
    margin-bottom: 30px;
}
.privacy .pra_box .h3{
    font-weight: 700;
}
.privacy .btn {
    margin: 60px auto 0;
}
@media screen and (max-width: 767px){
    .privacy .inner {
        padding: 20px 0 50px;
    }
    .privacy .key_line02 .h3 {
        font-size: 1.9rem;
    }
    .privacy .key_line02{
        padding: 27px 0 30px;
    }
    .privacy .pra_box ul li,
    .privacy .pra_box p,
    .privacy .h3{
        font-size: 15px;
    }
    .privacy .pra_box p{
        line-height: 1.6;
    }
    .privacy .pra_box {
        margin-bottom: 15px;
    }
    .privacy .btn {
        margin-top: 40px;
    }
}