@charset "UTF-8";



/* -------------------------------------------

index

------------------------------------------- */
.index > section {
    position: relative;
}
.sec-name {
    font-size: 1.5rem;
    font-weight: 100;
    display: block;
    position: absolute;
    right: calc((100% - 96rem) / 2);
    margin-top: 2rem;
}
.sec-name.wh {
    color: #fff;
}
.index .ttl-wrap {
    margin-bottom: 4rem;
    position: relative;
    z-index: 10;
}
.index .ttl-wrap p {
    font-size: 1.5rem;
    font-weight: 900;
}
@media screen and (max-width: 768px) {
    .sec-name {
        position: relative;
        right: auto;
        margin-top: 0;
        text-align: right;
        margin-bottom: 3rem;
    }
    .index .ttl-wrap {
        margin-bottom: 6rem;
    }    
    .index .ttl-wrap p {
        font-size: 1.8rem;
    }    
}



/* -------------------------------------------

kv

------------------------------------------- */
.top-wrap {
    background: url(../img/top-kv-bg.jpg) no-repeat center / cover;
}
.top-kv .wrap {
    position: relative;
    padding-bottom: 2rem;
}
.top-kv .wrap p {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 50%;
    z-index: 10;
}
.top-kv > p {
    padding: 2.5rem 0;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .top-kv .wrap {
        position: relative;
        padding-bottom: 2rem;
    }
    .top-kv .wrap p {
        position: absolute;
        left: 0;
        bottom: auto;
        top: 48%;
        width: 95%;
        transform: translate(0,-50%);
    }
}



/* -------------------------------------------

msg

------------------------------------------- */
.top-msg {
    padding-top: 20rem;
    padding-bottom: 10rem;
    padding-left: 10rem;
}
.top-msg .wrap {
    background: url(../img/top-msg-bg.jpg) no-repeat center / cover;
    border-radius: 5rem 0 0 5rem;
    padding: 6rem 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.top-msg h2 {
    font-size: 4rem;
    font-weight: 900;
}
.top-msg p {
    margin: 2.5rem 0 3rem 0;
    font-weight: 900;
    text-align: center;
    font-size: 1.6rem;
}
@media screen and (max-width: 768px) {
    .top-msg {
        padding-top: 10rem;
        padding-bottom: 4rem;
        padding-left: 3rem;
        padding-right: 3rem;
    }
    .top-msg .wrap {
        background: url(../img/top-msg-bg-sp.jpg) no-repeat center / cover;
        border-radius: 3rem;
        padding: 16rem 2rem 8rem 2rem;
    }
    .top-msg h2 {
        font-size: 2.6rem;
        text-align: center;
    }
    .top-msg p {
        margin: 2.5rem 0 10rem 0;
    }
}



/* -------------------------------------------

about

------------------------------------------- */
.top-about {
    padding: 14rem 0 20rem 0;
    background:
        url(../img/deco-1.png) no-repeat right -20rem top,
        url(../img/deco-1.png) no-repeat left -18rem bottom 6rem;
    background-size:
        56rem auto,
        30rem auto;
}
.top-about .wrap {
    display: flex;
    align-items: flex-end;
}
.top-about .wrap > figure {
    width: 54%;
}
.top-about .wrap > div {
    width: 46%;
    padding-left: 4rem;
}
.top-about .wrap > div > figure {
    margin: 6rem 0 10rem 0;
}
.top-about .wrap p {
    padding: 0 12rem 0 4rem;
    font-weight: 900;
}
.top-about .more-wrap {
    padding-right: 10rem;
}
.top-about .more {
    margin: 0 0 0 auto;
}
@media screen and (max-width: 768px) {
    .top-about {
        padding: 14rem 3rem 10rem 3rem;
        background:
            url(../img/deco-1.png) no-repeat right -23rem top,
            url(../img/deco-1.png) no-repeat left -12rem bottom 28rem;
        background-size:
            44rem auto,
            25rem auto;
    }
    .top-about .wrap {
        flex-direction: column;
        align-items: flex-start;
    }
    .top-about .wrap > figure {
        width: 95%;
        margin-left: -3rem;
    }
    .top-about .wrap > div {
        width: 100%;
        padding-left: 0;
    }
    .top-about .wrap > div > figure {
        margin: 3rem 0 4rem 3rem;
        margin-right: -3rem;
    }
    .top-about .wrap p {
        padding: 0;
        font-size: 1.8rem;
        font-weight: 900;
        margin-top: 2rem;
    }
    .top-about .more-wrap {
        padding-right: 0;
    }
    .top-about .more {
        margin: 0 auto;
    }	
}



/* -------------------------------------------

business

------------------------------------------- */
.top-business {
    background:
        url(../img/top-business-deco-1.png) no-repeat left -5rem top -20rem,
        url(../img/top-business-deco-2.png) no-repeat right 3rem top 3rem,
        url(../img/top-business-deco-3.png) no-repeat left 3rem bottom 3rem,
        url(../img/top-business-deco-4.png) no-repeat right bottom 6rem;
    background-size:
        48rem auto,
        6.5rem auto,
        6.5rem auto,
        18rem auto;
	background-color: var(--navy);
    padding: 10rem 0;
}
.top-business .ttl-wrap {
    color: #fff;
}
.top-business > ul {
    display: flex;
    gap: 4rem;
}
.top-business > ul > li {
    flex: 1;
    background: #ECECEC;
    border-radius: 4rem;
    padding: 3rem 4rem;
    color: var(--navy);
}
.top-business dt {
    font-size: 3.2rem;
    font-weight: 900;
    line-height: 1;
}
.top-business dd {
    font-weight: 900;
    margin: 1.5rem 0;
    font-size: 1.7rem;
}
.top-business > ul > li > div {
    display: flex;
    align-items: center;
    height: 28rem;
    margin-bottom: 4rem;
}
@media screen and (min-width: 1401px) {
    .top-business > ul > li > div {
        height: 34rem;
    }
}
.top-business > ul > li  p {
    font-weight: 900;
}
.top-business > ul ul {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}
.top-business > ul ul li {
    width: calc((100% - 3rem) / 2);
    height: 8rem;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 2.5rem;
    font-size: 1.6rem;
    font-weight: 900;
}
.top-business .wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 8rem;
}
.top-business .wrap > p {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #fff;
    font-weight: 900;
    text-align: center;
}
.top-business .wrap > p span {
    font-size: 3.2rem;
    line-height: 1.4;
    margin-bottom: 2rem;
}
.top-business .wrap > img {
    display: block;
    margin: 5rem 0 3rem 0;
    width: 30rem;
}
@media screen and (max-width: 768px) {
    .top-business {
        background:
            url(../img/top-business-deco-1.png) no-repeat left -8rem top -14rem,
            url(../img/top-business-deco-2.png) no-repeat right 2rem top 2rem,
            url(../img/top-business-deco-3.png) no-repeat left 2rem bottom 2rem,
            url(../img/top-business-deco-4.png) no-repeat right 3rem bottom 3rem;
        background-size:
            20rem auto,
            4.5rem auto,
            4.5rem auto,
            12rem auto;
        background-color: var(--navy);
        padding: 8rem 3rem 12rem 3rem;
    }
    .top-business > ul {
        flex-direction: column;
        gap: 3rem;
    }
    .top-business > ul > li {
        flex: none;
        width: 100%;
        padding: 3rem 3rem;
    }
    .top-business dt {
        font-size: 2.6rem;
    }
    .top-business dd {
        font-weight: 900;
        margin: 1.5rem 0;
        font-size: 1.5rem;
    }
    .top-business > ul > li > div {
        height: auto;
        margin: 3rem 0;
    }
    .top-business > ul ul li {
        height: 7.2rem;
        text-align: center;
        line-height: 1.3;
    }
    .top-business .wrap > p {
        font-size: 2rem;
    }
    .top-business .wrap > p span {
        font-size: 2.8rem;
        margin-bottom: 6rem;
    }
    .top-business .wrap > img {
        margin: 6rem 0 4rem 0;
        width: 100%;
    }	
}



/* -------------------------------------------

job

------------------------------------------- */
.top-job {
    padding: 30rem 0 15rem 0;
    position: relative;
    background:
        url(../img/deco-1.png) no-repeat left -18rem top 10rem,
        url(../img/deco-3.png) no-repeat left 18rem bottom;
    background-size:
        56rem auto,
        32rem auto; 
    overflow: hidden;
}
.top-job::before {
    content: "";
    width: 22rem;
    height: 22rem;
    background: url(../img/deco-2.png) no-repeat center / contain;
    position: absolute;
    right: -6rem;
    bottom: 10rem;
    z-index: 10;
    pointer-events: none;
}
.top-job ul {
    display: flex;
    gap: 4rem;
}
.top-job ul > li {
    width: calc((100% - 4rem) / 2);
    background: var(--bg-blue);
    border-radius: 4rem;
    padding: 3rem 3rem 5rem 3rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.top-job ul > li img {
    border-radius: 3.5rem;
}
.top-job dl {
    margin-top: 2rem;
    padding: 0 2.5rem;
}
.top-job dt {
    display: flex;
    flex-direction: column;
    font-weight: 900;
    font-size: 2.8rem;
    line-height: 1.4;
}
.top-job dt span {
    font-size: 2rem;
}
.top-job dd {
    font-weight: 900;
    margin-top: 1.5rem;
    display: flex;
    height: 11rem;
}
@media screen and (max-width: 768px) {
    .top-job {
        padding: 10rem 3rem 6rem 3rem;
        background:
            url(../img/deco-1.png) no-repeat left -18rem top 2rem;
        background-size:
            40rem auto;
    }
    .top-job::before {
        display: none;
    }
    .top-job ul {
        flex-direction: column;
        gap: 3rem;
    }
    .top-job ul > li {
        width: 100%;
        padding: 2rem 2rem 4rem 2rem;
        position: relative;
    }
    .top-job ul > li:nth-child(1)::before {
        content: "";
        width: 50%;
        height: 5rem;
        background: url(../img/deco-3.png) no-repeat left center;
        background-size: auto 100%;
        position: absolute;
        left: -3rem;
        bottom: -2.2rem;
        pointer-events: none;
    }
    .top-job dl {
        margin-top: 2rem;
        padding: 0 0.5rem;
    }
    .top-job dt {
        font-size: 3.2rem;
    }
    .top-job dt span {
        font-size: 2.5rem;
    }
    .top-job dd {
        margin: 1.5rem 0 3rem; 
        height: auto;
    }	
}



/* -------------------------------------------

system

------------------------------------------- */
.top-system {
	padding: 15rem 0 20rem 0;
    background:
        url(../img/top-system-deco-1.png) no-repeat right top,
        url(../img/deco-1.png) no-repeat left -24rem bottom;
    background-size:
        34rem auto,
        56rem auto;
}
.top-system ul {
    display: flex;
    flex-direction: column;
    margin-bottom: 6rem;
    gap: 4rem;
}
.top-system ul li {
    width: 65%;
    display: flex;
    align-items: center;
    border-radius: 6rem;
    background: var(--bg-blue);
    padding: 2rem;
}
.top-system ul li:nth-child(2) {
    margin: 0 auto;
}
.top-system ul li:nth-child(3) {
    margin-left: auto;
}
.top-system ul li > figure {
    width: 32%;
}
.top-system ul li > dl {
    width: 68%;
    padding-left: 2rem;
    font-weight: 900;
}
.top-system ul li > dl dt {
    margin-bottom: 0.5rem;
    font-size: 2.4rem;
}
.top-system figure img {
    border-radius: 5.5rem;
}
.top-system .more-wrap {
    padding-right: 12rem;
}
.top-system .more {
    margin: 0 0 0 auto;
}
@media screen and (max-width: 768px) {
    .top-system {
        padding: 10rem 3rem 4rem 3rem;
        background:
            url(../img/top-system-deco-1.png) no-repeat right top,
            url(../img/deco-1.png) no-repeat left -18rem bottom;
        background-size:
            22rem auto,
            36rem auto;
    }
    .top-system ul {
        margin-bottom: 5rem;
        gap: 3rem;
    }
    .top-system ul li {
        width: 100%;
        flex-direction: column;
        border-radius: 4rem;
        padding: 2.5rem 2.5rem 3rem 2.5rem;
    }
    .top-system ul li > figure {
        width: 100%;
    }
    .top-system ul li > dl {
        width: 100%;
        padding-left: 0;
        margin-top: 1.5rem;
    }
    .top-system figure img {
        border-radius: 3.5rem;
    }
    .top-system .more-wrap {
        padding-right: 0;
    }
    .top-system .more {
        margin: 0 auto;
    }	
}



/* -------------------------------------------

workstyle

------------------------------------------- */
.top-workstyle {
	padding: 4rem 0 20rem 0;
}
.top-workstyle .wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.top-workstyle p {
    margin: 4rem 0;
    font-weight: 900;
    font-size: 1.6rem;
}
@media screen and (max-width: 768px) {
    .top-workstyle {
        padding: 10rem 3rem 15rem 3rem;
    }
    .top-workstyle figure {
        width: calc(100% + 3rem);
        margin-left: -3rem;
    }
    .top-workstyle p {
        margin: 3rem 0;
        font-size: 1.7rem;
    }	
}



/* -------------------------------------------

interview

------------------------------------------- */
.top-interview {
    background-color: var(--bg-blue);
    padding: 10rem 0;
    position: relative;
}
.top-interview .deco-1,
.top-interview .deco-2,
.top-interview .deco-3 {
    position: absolute;
    overflow: hidden;
}
.top-interview .deco-1 {
    right: 0;
    top: -12rem;
    width: 46rem;
}
.top-interview .deco-1 img {
    right: -14rem;
    position: relative;
}
.top-interview .deco-2 {
    left: -8rem;
    bottom: -6rem;
    width: 24rem;
}
.top-interview .deco-3 {
    right: 0;
    bottom: -3rem;
    width: 34rem;
}
.top-interview > ul {
    margin-bottom: 8rem;
    display: flex;
    gap: 4rem;
    position: relative;
    z-index: 10;
}
.top-interview > ul > li {
    width: calc((100% - 8rem) / 3);
    overflow: hidden;
    border-radius: 4rem;
}
.top-interview > ul > li a {
    position: relative;
    color: #fff;
    height: 48rem;
    display: block;
}
.top-interview > ul > li a::before {
    content: "";
    width: 100%;
    height: 100%;
    transition: all .3s;
    position: absolute;
    left: 0;
    top: 0;
}
.top-interview > ul > li a:hover::before {
    transform: scale(1.1);
}
.top-interview > ul > li:nth-child(1) a::before {
    background: url(../img/top-interview-bg-1.jpg) no-repeat center / cover;
}
.top-interview > ul > li:nth-child(2) a::before {
    background: url(../img/top-interview-bg-2.jpg) no-repeat center / cover;
}
.top-interview > ul > li:nth-child(3) a::before {
    background: url(../img/top-interview-bg-3.jpg) no-repeat center / cover;
}
.top-interview > ul > li a > div {
    position: absolute;
    left: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    padding: 2.5rem 4rem;
    font-weight: 900;
}
.top-interview > ul > li a > div p {
    font-size: 1.9rem;
    line-height: 1.4;
    display: flex;
    height: 9rem;
}
.top-interview > ul > li a > div ul {
    font-size: 1rem;
}
@media screen and (max-width: 768px) {
    .top-interview {
        padding: 4rem 3rem 8rem 3rem;
    }
    .top-interview .deco-1 {
        top: -10rem;
        width: 32rem;
    }
    .top-interview .deco-1 img {
        right: -12rem;
        position: relative;
    }
    .top-interview .deco-2 {
        left: -5.5rem;
        bottom: -7rem;
        width: 16rem;
        pointer-events: none;
    }
    .top-interview .deco-3 {
        display: none;
    }
    .top-interview > ul {
        margin-bottom: 6rem;
        gap: 3rem;
        flex-direction: column;
    }
    .top-interview > ul > li {
        width: 100%;
    }
    .top-interview > ul > li a {
        aspect-ratio: 3/4;
        height: auto;
    }
    .top-interview > ul > li a > div {
        padding: 2.5rem 3.5rem;
    }
    .top-interview > ul > li a > div p {
        font-size: 2.2rem;
        height: auto;
        margin-bottom: 2rem;
    }
    .top-interview > ul > li a > div ul {
        font-size: 1.2rem;
    }	
}



/* -------------------------------------------

recruit

------------------------------------------- */
.top-recruit {
    padding-top: 15rem;
}
.top-recruit .wrap-1 {
    width: calc(100% - 10rem);
    margin-left: auto;
    background: url(../img/top-recruit-bg.jpg) no-repeat center / cover;
    border-radius: 5rem 0 0 5rem;
}
.top-recruit .wrap-1 > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 5rem 0 5rem 12rem;
}
.top-recruit h2 {
    margin: 0;
}
.top-recruit p {
    margin: 2rem 0 2.5rem 0;
    font-weight: 900;
    font-size: 1.5rem;
}
.top-recruit .sec-name {
    margin-top: 6.5rem;
}
.recruit-cv {
    padding: 15rem 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.recruit-cv p {
    font-size: 1.8rem;
    font-weight: 900;
    margin-bottom: 2.5rem;
}
@media screen and (max-width: 768px) {
    .top-recruit {
        padding-top: 12rem;
    }
    .top-recruit .wrap-1 {
        width: 100%;
        margin-left: auto;
        background: url(../img/top-recruit-bg-sp.jpg) no-repeat center / cover;
        border-radius: 5rem;
    }
    .top-recruit .wrap-1 > div {
        padding: 6rem 4rem;
        display: block;
    }
    .top-recruit h2 {
        margin: 0;
    }
    .top-recruit p {
        margin: 2rem 0 2.5rem 0;
        font-weight: 900;
        font-size: 1.5rem;
    }
    .top-recruit .sec-name {
        margin-top: auto;
    }
    .recruit-cv {
        padding: 10rem 0;
    }
    .recruit-cv p {
        font-size: 1.5rem;
        white-space: nowrap;
    }	
}



/* -------------------------------------------

low

------------------------------------------- */
.low .wrap > div > section:not(:last-of-type) {
    margin-bottom: 7rem;
}
.low .list-group {
    margin: 2rem 0;
}
.low h4 {
    display: flex;
}
.low h4 span {
    display: flex;
    align-items: center;
    white-space: nowrap;
}
.low h4 span::after {
    content: "";
    width: 1px;
    height: 2rem;
    margin: 0 1.2rem;
    background: var(--prime);
}
@media screen and (max-width: 768px) {

}



/* -------------------------------------------

message

------------------------------------------- */
.message .sig {
    display: block;
    margin-top: 5rem;
    font-weight: 900;
    font-size: 1.6rem;
}
@media screen and (max-width: 768px) {

}



/* -------------------------------------------

interview
------------------------------------------- */
.interview .list-group li span:nth-child(1) {
    margin-right: 1.5rem;
    white-space: nowrap;
}

@media screen and (max-width: 768px) {
    .interview .list-group {
        line-height: 1.4;
    }    
    .interview .list-group li span:nth-child(1) {
        display: block;
        font-weight: 900;
    }
    .interview .list-group li:not(:last-child) {
        margin-bottom: 1rem;
    }
}



/* -------------------------------------------

recruit

------------------------------------------- */
.recruit dd:not(:last-of-type) {
    margin-bottom: 3rem;
}
.recruit dt {
    font-weight: 900;
}
.recruit dd a {
    text-decoration: underline;
}
@media screen and (max-width: 768px) {

}