@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Oswald:wght@200..700&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

html,body{
    margin: 0;
}
body {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 15px;
    line-height: 1.8em;
}
img{
    max-width: 100%;
}
a{
    transition: 0.4s;
    color: #000;
}
a:hover{
    opacity: 0.7;
}
h2{
    margin: 0;
}
section{
    padding: 80px 0px;
    box-sizing: border-box;
}
.yellow{
    color: #FBD400;
}
.sp{
    display: none;
}
.hidden{
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    clip: rect(0 0 0 0);
    overflow: hidden;
}
.contents{
    width: 1400px;
    max-width: 100%;
    margin: auto;
    padding: 0 10px;
    box-sizing: border-box;
}
.contents2{
    width: 2000px;
    max-width: 100%;
    margin: auto;
    padding: 0 10px;
    box-sizing: border-box;
}
.text-center{
    text-align: center;
}
.reverse{
    flex-direction: row-reverse;
}
.highlight.activeline{
    background-position: -100% 1.1em;
}
.highlight {
    background-image: -webkit-linear-gradient(left, transparent 50%, #FBD400 50%);
    background-image: -moz-linear-gradient(left, transparent 50%, #FBD400 50%);
    background-image: -ms-linear-gradient(left, transparent 50%, #FBD400 50%);
    background-image: -o-linear-gradient(left, transparent 50%, #FBD400 50%);
    background-image: linear-gradient(left, transparent 50%, #FBD400 50%);
    background-repeat: repeat-x;
    background-size: 200% .3em;
    background-position: 0 .9em;
    transition: all 2s ease;
    font-weight: normal;
}

#mainvisual{
    background-image: url(../imgs/kv1.jpg);
    background-size: cover;
    background-position: center center;
    position: relative;
    padding-bottom: 5vw;
}
#mainvisual .logo{
    position: absolute;
    width: 200px;
    top: 10px;
    left: 10px;
    z-index: 2;
}
#mainvisual .cc{
    position: relative;
    width: 45%;
    margin-top: 13vw;
    margin-left: 5%;
    z-index: 1;
}
#mainvisual .entrybtn{
    display: block;
    width: 22%;
    min-width: 300px;
    margin: 6vw 0 0 5%;
}

/* about */
#about{
    background-image: url(../imgs/bg1.jpg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top;
    background-color: #F6F6F6;
    overflow-x: hidden;
}
#about h2{
    text-align: center;
    font-family: "Oswald", sans-serif;
    font-weight: bold;
    font-size: 5vw;
    line-height: 1em;
    margin-top: 2vw;
    display: inline-block;
}
#about h2 .mid{
    display: block;
    text-align: left;
    font-size: 0.4em;
    font-weight: 800;
    font-family: "Noto Sans JP", sans-serif;
    width: fit-content;
    margin: 0 auto 0 0;
}
#about .item_box{
    display: flex;
    gap: 20px;
    margin: 80px 0;
}
#about .item_box h3{
    font-size: 3vw;
    line-height: 1.2em;
    font-weight: 800;
}
#about .item_box h3 .mid{
    display: block;
    font-size: 0.5em;
    line-height: 1.7em;
}
#about .item_box .half{
    position: relative;
    width: 50%;
}
#about .details{
    padding: 0 8% 0 20px;
    box-sizing: border-box;
}
#about .about_imgs{
    z-index: 2;
}
#about .backtitle{
    text-align: right;
    font-family: "Poppins", sans-serif;
    font-weight: 100;
    color: #fff;
    font-size: 8vw;
    margin: 40px 0 -40px -30px;
}
#about .reverse .backtitle{
    text-align: left;
}
#about .reverse .details{
    padding: 0 20px 0 8%;
    box-sizing: border-box;
}
#about p{
    font-size: 1vw;
    line-height: 2.5vw;
}

@media only screen and (max-width: 1500px) {
    #about p{
        font-size: 1.2em;
        line-height: 2.3em;
    }
}
/* about end */

/* know */
#know{
    background-image: url(../imgs/bg2.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: top;
    padding: 8vw 0 10vw 0;
}
#know h2{
    border-left: 0.8vw solid #FBD400;
    padding-left: 1vw;
    color: #fff;
    font-size: 3.3vw;
    line-height: 1.5em;
    margin-bottom: 3.5vw;
    font-weight: 800;
}
#know h2 .mid{
    display: block;
    font-size: 0.5em;
    line-height: 1.4em;
}
#know_area{
    display: flex;
    justify-content: space-between;
}
#know_area .know_box{
    background-color: #fff;
    width: calc((100% - 80px) / 3); 
    padding: 15px 15px 30px 15px;
    box-sizing: border-box;
}
#know_area .know_box h3{
    text-align: center;
    margin: 15px auto;
    font-size: 1.4em;
    line-height: 2em;
}
#know_area .know_box p{
    font-size: 1.2em;
    line-height: 2em;
}

@media only screen and (min-width: 1200px) {
    #know_area .know_box p{
        margin: 0;
        padding: 0 10px 15px;
    }
}


/* know end */

/* persona */
#persona{
    background-image: url(../imgs/bg3.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: top;
    padding: 8vw 0 7vw 0;
}
#persona h2{
    border-left: 0.8vw solid #FBD400;
    padding-left: 1vw;
    font-size: 2.5vw;
    line-height: 1.5em;
    margin-bottom: 3.5vw;
    font-weight: 800;
}
#persona h2 .mid{
    display: block;
    font-size: 0.7em;
    line-height: 1.4em;
}
#persona .persona{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}
#persona .persona_box{
    width: calc(50% - 10px);
}
#persona .persona_box .persona_no,
#persona .persona_box .persona_text{
    display: inline-block;
    vertical-align: top;
    width: calc(100% - 95px);
}
#persona .persona_box .persona_no{
    font-size: 4em;
    font-weight: bold;
    font-family: "Oswald", sans-serif;
    width: 90px;
}
#persona .persona_box h3{
    margin: 15px 0 20px;
    font-size: 1.8em;
    font-weight: 800;
}
#persona .persona_box{
    font-size: 1.2em;
    line-height: 2em;
    margin-bottom: 50px;
}
#persona .swiper{
    margin-top: 80px;
}

/* persona end */

/* staff */
#staff h2{
    text-align: center;
    font-family: "Oswald", sans-serif;
    font-weight: bold;
    font-size: 4vw;
    line-height: 0.8em;
    display: inline-block;
    margin-top: 3vw;
    margin-bottom: 20px;
}
#staff h2 .mid{
    display: block;
    text-align: left;
    font-size: 0.3em;
    font-family: "Noto Sans JP", sans-serif;
    width: fit-content;
    margin: 0 auto 0 0;
}
#staff .staff_main{
    display: flex;
    gap: 20px;
    padding-top: 50px;
}
#staff .staff_main{
    font-size: 1.1em;
    line-height: 2em;
}
#staff .staff_main .half{
    width: 50%;
}
#staff .staff_main .number{
    font-size: 4em;
    font-weight: bold;
    font-family: "Oswald", sans-serif;
    margin-right: 15px;
}
#staff .staff_main .manage{
    font-size: 1.5em;
    font-weight: bold;
}
#staff .staff_main .manage b{
    font-size: 1.5em;
}
#staff h3{
    border-left: 6px solid #FBD400;
    padding-left: 7px;
    font-size: 1.5em;
    line-height: 2em;
    margin: 35px 0 20px;
}
@media only screen and (max-width: 800px) {
    #staff h3{
        font-size: 1.2em;
    }
}
.staff_qa{
    display: flex;
    gap: 40px;
    margin-bottom: 80px;
    font-size: 1.1em;
    line-height: 2em;
}
.staff_qa .staff_qa_left{
    width: 70%;
}
.staff_qa .staff_qa_right{
    width: 30%;
    margin-top: 35px;
}
/* staff end */

/* recruit */
#recruit{
    background-image: url(../imgs/bg4.jpg);
    background-size: cover;
    background-position: top;
}
#recruit h2{
    color: #fff;
    text-align: center;
    font-size: 2.5em;
    line-height: 1.5em;
    margin-bottom: 60px;
}
#recruit h2 .mid{
    display: block;
    font-family: "Oswald", sans-serif;
    font-size: 0.5em;
    font-weight: normal;
    line-height: 1.4em;
}
#recruit #recruit_inner{
    width: 1000px;
    max-width: 100%;
    margin: auto;
    background-color: rgba(255,255,255,0.9);
    padding: 0 40px 60px;
    box-sizing: border-box;
    margin-bottom: 80px;
}
#recruit #recruit_inner h3{
    display: inline-block;
    font-size: 2em;
    line-height: 1.3em;
    background-color: #FBD400;
    margin: auto;
    padding: 20px 30px;
    box-sizing: border-box;
    margin-bottom: 60px;
}
#recruit #recruit_inner table{
    border-collapse: collapse;
    border-bottom: 1px solid #000;
}
#recruit #recruit_inner table tr{
    border-top: 1px solid #000;
}
#recruit #recruit_inner table th,
#recruit #recruit_inner table td{
    padding: 30px 15px;
    box-sizing: border-box;
    text-align: left;
    vertical-align: top;
}
#recruit #recruit_inner table th{
    width: 100px;
}
#recruit #recruit_inner table td .tdtext{
    border-left: 3px solid #FBD400;
    padding-left: 20px;
}
/* recruit end */

/* flow */
#flow h2{
    text-align: center;
    font-size: 2.5em;
    line-height: 1.5em;
    margin-bottom: 70px;
}
#flow h2 .mid{
    display: block;
    font-family: "Oswald", sans-serif;
    font-size: 0.5em;
    font-weight: normal;
    line-height: 1.4em;
}
.flow_area{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 60px;
    position: relative;
    flex-wrap: nowrap;
}
.flow_box{
    position: relative;
    text-align: center;
    background-color: #FBD400;
    border-radius: 20px;
    width: 20%;
    max-width: 300px;
    aspect-ratio: 10 / 7;
    padding: 15px 10px 30px 10px;
    box-sizing: border-box;
    font-size: 1.2em;
    font-weight: 800;
    margin-bottom: 60px;
}
.flow_box p{
    margin: 0;
}
.flow_box .arrow.pc{
    position: absolute;
    right: -40px;
    top: 50%;
    transform: translateY(-50%);
}
/* flow end */

/* entry */
#entry{
    background-color: #FBD400;
}
#entry h2{
    font-family: "Oswald", sans-serif;
    text-align: center;
    font-size: 5em;
    line-height: 1.2em;
    margin-bottom: 40px;
}
@media only screen and (max-width: 800px) {
    #entry h2{
        font-size: 3em;
    }
}
#entry h2 .mid{
    display: block;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 0.3em;
    font-weight: normal;
    line-height: 1.4em;
}
#entry #entry_btn{
    width: 1270px;
    max-width: 100%;
    margin: auto;
    text-align: center;
    margin-bottom: 30px;
}
#entry #entry_btn a{
    display: block;
    background-color: #fff;
    border-radius: 15px;
    padding: 25px 5px;
    text-decoration: none;
    font-size: 1.5em;
    font-weight: bold;
}
/* entry end */

/* footer */
footer{
    background-color: #000;
    color: #fff;
    text-align: center;
    padding: 60px 0;
}
footer img{
    width: 250px;
    margin-bottom: 15px;
}
footer p{
    margin: 0;
    font-size: 0.9em;
}
footer p#copyright{
    margin: 0;
    padding: 30px 0 0;
    font-size: 0.9em;
}
/* footer end */


/* animation */
.anime{
    opacity: 0;
}
.animated {
    opacity: 1;
    position: relative;
    display: inline-block;
    overflow: hidden;
    clip-path: inset(0 100% 0 0);
    animation: reveal 1.2s cubic-bezier(.8, 0, .2, 1) forwards;
}
.animated::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #FBD400;
    transform: translateX(-101%);
    z-index: 1;
    animation: wipe 1.2s cubic-bezier(.8, 0, .2, 1) forwards;
}
@keyframes wipe {
    0%   { transform: translateX(-101%); }
    45%  { transform: translateX(0); }
    100% { transform: translateX(101%); }
}
@keyframes reveal {
    0%   { clip-path: inset(0 100% 0 0); }
    45%  { clip-path: inset(0 0 0 0); }
    100% { clip-path: inset(0 0 0 0); }
}
/* animation end */

@media screen and (max-width: 767px) {
    .pc{
        display: none;
    }
    .sp{
        display: block;
    }
    section {
        padding: 50px 0px;
    }
    .contents{
        padding: 0 20px;
    }
    #mainvisual{
        background-image: url(../imgs/kv1_sp.jpg);
        height: 80vh;
    }
    #mainvisual .logo{
        position: static;
        width: 150px;
        margin: 10px 10px 0;
    }
    #mainvisual .cc{
        width: 100%;
        margin: 0;
        padding: 15px 10px 0;
        box-sizing: border-box;
    }
    #mainvisual .entrybtn{
        position: absolute;
        bottom: 10px;
        right: 10px;
        max-width: 60%;
        min-width: 250px;
        margin: 0;
    }
    /* about */
    #about h2 {
        font-size: 3.5em;
        line-height: 1em;
        display: block;
    }
    #about h2 .mid {
        margin-top: 15px;
        font-size: 0.3em;
        line-height: 1.6em;
        width: 100%;
        text-align: center;
    }
    #about .item_box {
        display: block;
        gap: 0px;
        margin: 40px 0;
    }
    #about .item_box .half{
        width: 100%;
    }
    #about .backtitle {
        font-size: 4em;
        margin: 15px 0 -30px -20px;
    }
    #about .details,
    #about .reverse .details{
        padding: 0;
    }
    #about .item_box h3 {
        font-size: 2em;
        line-height: 1.3em;
    }
    #about .item_box h3 .mid {
        font-size: 0.5em;
    }
    /* about end */

    /* know */
    #know h2{
        font-size: 1.6em;
        margin-top: 30px;
        margin-bottom: 30px;
    }
    #know h2 .mid{
        font-size: 0.6em;
    }
    #know_area{
        display: block;
    }
    #know_area .know_box{
        width: 100%;
        margin-bottom: 30px;
    }
    /* know end */

    /* persona */
    #persona h2{
        font-size: 1.6em;
        margin-top: 30px;
        margin-bottom: 30px;
    }
    #persona h2 .mid{
        font-size: 0.6em;
    }
    #persona .persona{
        display: block;
    }
    #persona .persona_box{
        width: 100%;
        margin-bottom: 30px;
    }
    #persona .persona_box .persona_no, 
    #persona .persona_box .persona_text {
        display: inline-block;
        vertical-align: top;
        width: calc(100% - 55px);
    }
    #persona .persona_box .persona_no{
        font-size: 2.5em;
        width: 50px;
    }
    #persona .persona_box h3{
        font-size: 1.2em;
    }
    /* persona end */

    /* staff */
    #staff h2{
        text-align: left;
        font-size: 3em;
        margin-bottom: -10px;
    }
    #staff .staff_main,
    #staff .staff_qa{
        display: block;
    }
    #staff .staff_main .half,
    .staff_qa .staff_qa_left{
        width: 100%;
    }
    #staff .staff_main img{
        margin-bottom: 15px;
    }
    .staff_qa{
        margin-bottom: 60px;
    }
    .staff_qa .staff_qa_left img{
        display: block;
        margin-top: 15px;
    }
    #staff .staff_main .number{
        font-size: 2em;
    }
    #staff .staff_main .manage{
        font-size: 1.1em;
    }
    #staff h3 {
        margin: 30px 0 15px;
    }
    /* staff end */

    /* recruit */
    #recruit h2{
        font-size: 1.6em;
    }
    #recruit #recruit_inner{
        width: 100%;
        padding: 0 10px 30px;
    }
    #recruit #recruit_inner h3 {
        font-size: 1.3em;
        line-height: 1.2em;
        padding: 15px 20px;
        margin-bottom: 30px;
    }
    #recruit #recruit_inner table th, 
    #recruit #recruit_inner table td {
        padding: 12px 6px;
        font-size: 0.9em;
    }
    #recruit #recruit_inner table th{
        width: 72px;
    }
    #recruit #recruit_inner table td .tdtext {
        padding-left: 10px;
    }
    /* recruit end */

    /* flow */
    #flow h2{
        font-size: 1.6em;
        margin-bottom: 30px;
    }
    .flow_area{
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 50px;
    }
    .flow_box{
        aspect-ratio: unset;
        position: relative;
        display: flex;
        align-items: center;
        gap: 20px;
        width: 90%;
        margin: 0 auto;
        padding: 15px 50px;
        border-radius: 16px;
        box-sizing: border-box;
        text-align: left;
    }
    .flow_box > img:first-child{
        width: 40px;
        height: 40px;
        flex: 0 0 40px;
        display: block;
    }
    .flow_box p{
        margin: 0;
        font-weight: 700;
        line-height: 1.5;
        flex: 1 1 auto;
    }
    .flow_box .arrow.pc{
        display: none;
    }
    .flow_box .arrow.sp{
        display: block;
        position: absolute;
        left: 50%;
        bottom: -40px;
        transform: translateX(-50%);
    }
    /* flow end */
}