@charset "utf-8";

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    list-style: none;
    text-decoration: none;
}

img {
    width: 100%;
    vertical-align: bottom;
}

html {
    font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Yu Gothic", 游ゴシック, YuGothic, 游ゴシック体, Meiryo, メイリオ, sans-serif;
    scroll-behavior: smooth;
    scroll-padding: 50px;
}

body{
    color: #666;
}

h2{
    text-align: center;
    color: #0056B3;
    margin-bottom: 20px;
    font-size: 2em;
}

.small_index{
    text-align: center;
    font-family: "Alice", serif;
    font-weight: 400;
    font-style: italic;
    color: #ECBE4E;
    font-size: 1.2em;
}
@media screen and (min-width:767px){
    h2{
        margin-bottom: 50px;
    }
}
@media screen and (min-width:960px){
    h2{
        font-size: 2.5em;
    }

}



/* header */

#fixed-header {
    position: fixed;
    top: -70px;  
    width: 100%;
    height: 70px;
    z-index: 9;
    background: url(../img/haikei.jpeg);
    transition: .5s;
  }
#fixed-header.is-show {
    top: 0;
}


header img{
    width: 200px;
    padding: 13px 0 0 13px;
}
.header_flex{
    display: flex;
    justify-content: space-between;
}


/* ham */

.ham {
    background-color: #0056B3;
    width: 70px;
    height: 70px;
    display: flex;
    padding: 20px;
    flex-direction: column;
    justify-content: space-around;
    cursor: pointer;
    z-index: 999;
}

.ham span {
    width: 100%;
    height: 4px;
    background: #fff;
    border-radius: 4px;
    transition: all 1s;
}

.sp_nav{
    opacity: 0;
    padding: 40% 10%;
    pointer-events: none;
    width: 100%;
    height: 100vh;
    background: url(../img/haikei.jpeg);
    transition: all 1s;
    li{
        border-bottom: dashed 1px #0056B3;
        padding-bottom: 15px;
        color: #666;
        text-align: center;
        margin: 20px 0;
    }
}
nav{
    pointer-events: none;
}
.nav_btn{
    display: block;
    text-align: center;
    width: 100%;
    background: #ECBE4E;
    padding: 15px 0;
    color: #fff;
    small{
        display: block;
    }
}

.ham.active span:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
}

.ham.active span:nth-child(2) {
    opacity: 0;
}

.ham.active span:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
}

.sp_nav.active{
    opacity: 1;
    pointer-events: all;
}

.pc_nav{
    display: none;
}

@media screen and (min-width:767px) {
    .sp_nav{
        padding: 10% 5%;
        height: fit-content;
    }
}

@media screen and (min-width:960px){
    .sp_nav,.ham{
        display: none;
    }
    #fixed-header{
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    header img{
        padding-top: 0;
    }
    nav{
        pointer-events: all;
    }
    .pc_nav{
        display: flex;
        align-items: center;
        ul{
            display: flex;
            padding: 0 30px;
            gap: 30px;
            a{
                color: #666;
                font-weight: bold;
            }
            a:hover{
                color: #0056B3;
            }
        }
        
    }
    .nav_btn{
        height: 70px;
        width: 160px;
        padding: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        font-weight: bold;
        &:hover{
            background-color: #ebcb79;
        }
    }
    
}


/* main */
/* hero */

.slider img{
    height: 95vh;
    object-fit: cover;
}

.hero{
    position: relative;
}

.hero h1{
    position: absolute;
    top: 18vh;
    left: 10%;
    writing-mode: vertical-rl;
    font-family: "Alice", serif;
    color: #fff;
    font-weight: 400;
    font-style: normal;
    text-shadow: #0056B3 1px 0 10px;
}

.hero_img{
    position: absolute;
    top: 13px;
    left: 13px;
    width: 200px;
}

.recruit_btn{
    position: absolute;
    bottom: 0;
    right: 0;
    transform: rotate(10deg);
}

@media screen and (min-width:767px) {
    .slider img{
        height: 90vh;
        object-fit: cover;
    }
    .hero h1{
        top: 40%;
        writing-mode: horizontal-tb;
    }
    .hero_img{
        top: 15px;
        left: 15px;
    }
}
@media screen and (min-width:960px){
    .slider img{
        height: 100vh;
    }
    .recruit_btn{
        bottom: 10px;
        right: 10px;
        width: 300px;
        transition: all 1s;
    }
    .recruit_btn:hover{
        transform: rotate(20deg);
    }
}

/* message */
.message {
    background-image: url(../img/sankaku_blue.png),url(../img/haikei.jpeg);
    background-repeat: no-repeat,repeat;
    background-position: bottom, center;
    background-size: 100%,100%;
}

.message_wrap{
    padding: 20% 6% 25%;
}

.message h3{
    margin-bottom: 10px;
}

.message p{
    text-align: justify;
    margin-bottom: 10px;
    br{
        display: none;
    }
}


@media screen and (min-width:767px){
    .message_wrap{
        padding: 10% 6% 20%;
    }
    .message h3{
        text-align: center;
        margin-bottom: 30px;
        font-size: 1.5em;
    }
    .message p{
        text-align: center;
        margin-bottom: 20px;
        line-height: 2em;
        br{
            display: inline;
        }
    }
}


/* strengths */

#strengths{
    background: #0952A4;
    color: #fff;
    padding: 10% 0 25%;
    background-image: url(../img/sankaku_lb.png);
    background-repeat: no-repeat;
    background-position: bottom;
    background-size: 100%;
    h2{
        color: #fff;
    }
    
}

.str_text{
    padding: 0 6% 10%;
}

#strengths .num{
    font-size: 4em;
    font-family: "Alice", serif;
    font-weight: 400;
    font-style: italic;
    color: #ECBE4E;
    margin-bottom: 10px;
}

#strengths h3{
    margin-bottom: 10px;
    font-size: 1.5em;
}

#strengths img{
    width: 80%;
}

.str_container,.str_container02{
    margin-bottom: 10%;
}

.str_container img{
    border-radius: 80px 0 0 80px;
    position: relative;
    right: -20%;
}

.str_container02 img{
    border-radius: 0 80px 80px 0;
}

@media screen and (min-width:767px){
    #strengths{
        padding: 5% 0 20%;
    }
    .str_container .str_text{
        padding: 0 0 0 6%;
    }
    .str_container02 .str_text{
        padding: 0 6% 0 0;
    }

    .str_container{
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 5%;
    }
    .str_container02{
        display: flex;
        justify-content: space-between;
        flex-direction: row-reverse;
        align-items: center;
        margin-bottom: 8%;
    }

    #strengths img{
        width: 48%;
    }
    .str_text{
        width: 45%;
    }

    .str_container img{
        right: 0%;
        width: 20%;
    }

    .sankaku_lb{
        height: 130px;
    }
}
@media screen and (min-width:960px){
    .str_container .str_text{
        padding: 0 0 0 10%;
    }
    .str_container02 .str_text{
        padding: 0 10% 0 0;
    }
    #strengths h3{
        font-size: 2.5em;
    }
    #strengths .num{
        font-size: 6em;
    }
}

/* works */

#works{
    background: #C9E6F6;
    background-image: url(../img/sankaku_white.png);
    background-repeat: no-repeat;
    background-position: bottom;
    background-size: 100%;
}

.works_wrap{
    padding: 10% 6% 25%;
    br{
        display: none;
    }
}

#works h3,.works_text p{
    margin-bottom: 10px;
}
#works h3{
    color: #0056B3;
}

.center_text{
    margin-bottom: 20px;
}

.works_container{
    margin-bottom: 30px;
}

.works_text{
    padding: 5% 0;
    ul{
        background: #fff;
        padding: 3%;
    }
}


@media screen and (min-width:767px){
    .center_text{
        text-align: center;
        margin-bottom: 40px;
    }
    .works_wrap{
        padding: 5% 6% 20%;
        br{
            display: inline;
        }
    }
    .works_container{
        display: flex;
        flex-direction: row-reverse;
        justify-content: space-between;
        align-items: center;
        .works_text{
            width: 55%;
        }
        img{
            width: 40%;
        }
    }
    .works_container:nth-child(5){
        flex-direction: row;
    }

    #works h3{
        margin-bottom: 20px;
    }
    .sankaku_white{
        height: 130px;
    }
}
@media screen and (min-width:960px){
    .works_wrap{
        padding: 5% 10% 20%;
    }
    .works_container .works_text{
        width: 50%;
    }
    #works h3{
        font-size: 1.5em;
    }
}

/* recruit */

.recruit_wrap{
    padding: 10% 6% 20%;
    h3{
        margin-bottom: 10px;
        font-size: 1.5em;
    }
}

.tab-area {
    display: flex;
    gap: 5%;
    margin-bottom: 20px;
}

.tab-area li{
    background: #CBEAFB;
    cursor: pointer;
    border-radius: 50px;
    padding: 2%;

    &:hover{
        background-color: #0056B3;
        color: #fff;
    }
}

.tab {
    width: calc(100%/3);
    padding: 5px;
    text-align: center;
}
.tab.active {
    background-color: #0056B3;
    color: #fff;
}
.panel {
    display: none;
}
.panel.active {
    display: block;
    box-shadow: 0 5px 5px 0;
    padding: 5%;
}

.recruit_contents{
    margin-bottom: 5%;
}

.recruit_contents h4{
    border-bottom: dashed #666 1px;
    margin-bottom: 3%;
}

.recruit_contents:last-child{
    margin-bottom: 0;
}

@media screen and (min-width:767px){
    .recruit_wrap{
        padding: 5% 6% 15%;
    }
    .tab-area {
        margin-bottom: 40px;
    }
}
@media screen and (min-width:960px){
    .recruit_wrap{
        padding: 5% 10% 15%;
    }
}

/* flow */
#flow{
    background-image: url(../img/sankaku_lb.png),url(../img/haikei.jpeg);
    background-repeat: no-repeat,repeat;
    background-position: bottom, center;
    background-size: 100%,100%;
}

.flow_wrap{
    padding: 20% 6% 25%;
}

.flow_box{
    background: #fff;
    margin-bottom: 20px;
    border-radius: 15px;
}

.flow_box img{
    display: block;
    width: 80%;
    margin: 0 auto;
}

.flow_box h3{
    text-align: center;
    background: #0952A4;
    border-radius: 15px 15px 0 0;
    padding: 5%;
    color: #fff;
    font-size: 1.5em;
}

.flow_box p{
    padding: 5%;
}

@media screen and (min-width:767px){
    .flow_wrap{
        padding: 10% 6% 20%;
    }
    .flow_flex{
        display: flex;
        justify-content: space-between;
    }
    .flow_box{
        width: 23%;
    }
    .flow_box h3{
        text-align: center;
        background: #0952A4;
        border-radius: 15px 15px 0 0;
        padding: 4%;
        color: #fff;
        font-size: 1.1em;
    }
}
@media screen and (min-width:960px){
    .flow_wrap{
        padding: 10% 10% 20%;
    }
}

/* entry */

#entry{
    background-color: #C9E6F6;
}

.entry_wrap{
    padding: 10% 6% 20%;
}

.form_box{
    background: #fff;
    padding: 10% 6%;
    margin-top: 20px;
}

.form_box p{
    border: solid #0056B3 1px;
    text-align: center;
    padding: 2%;
    font-size: 1.5em;
    color: #0056B3;
    margin-bottom: 10%;
}

form dt{
    font-weight: bold;
    margin-bottom: 5px;
}

form dl{
    margin-bottom: 15px;
}

form dd li{
    margin-bottom: 5px;
}

form a{
    color: #666;
    text-decoration: underline;
}

input[type="text"],input[type="email"],input[type="tel"],textarea{
    width: 100%;
    padding: 10px;
}

button{
    display: block;
    cursor: pointer;
    background: #0056B3;
    color: #fff;
    width: 50%;
    border: none;
    padding: 5%;
    border-radius: 50px;
    margin: 5% auto 0;
    &:hover{
        background-color: #CBEAFB;
    }
}

@media screen and (min-width:767px){
    .entry_wrap{
        padding: 5% 6% 15%;
    }
    .form_box{
        padding: 6%;
    }
    .form_box p{
        margin-bottom: 5%;
    }
    button{
        padding: 3%;
    }
}
@media screen and (min-width:960px){
    .entry_wrap{
        padding: 5% 10% 15%;
    }
}

/* footer */

footer{
    background: #0952A4;
    padding: 15% 0;
}

footer img{
    display: block;
    margin: 0 auto 20px;
    width: 60%;
}

footer p{
    text-align: center;
    color: #fff;
}

@media screen and (min-width:767px){
    footer{
        padding: 5% 0;
    }
    footer img{
        width: 30%;
    }
}
@media screen and (min-width:960px){
    footer img{
        width: 20%;
    }
}



/* privacypolicy */

.privacypolicy{
    padding: 10% 6%;
    h1{
        text-align: center;
        margin-bottom: 20px;
        color: #0056B3;
    }
    p{
        margin-bottom: 20px;
    }
    h2{
        font-size: 1.5em;
        text-align: left;
        margin-bottom: 5px;
        color: #666;
    }
}

@media screen and (min-width:767px){
    .privacypolicy h1{
        margin-bottom: 50px;
    }
    .privacypolicy p{
        margin-bottom: 40px;
    }
}
@media screen and (min-width:960px){
    .privacypolicy{
        padding: 10% 10%;
    }
}