.main {
    width: 100%;
    max-width: 128rem;
    font-family: 'Noto Sans JP', sans-serif;
}
.title {
    font-size: 4rem;
    font-weight: 700;
    font-family: 'Shippori Mincho', serif;
    color: #555555;
    letter-spacing: 0.4rem;
}
.subtitle {
    font-size: 2.5rem;
    font-weight: 400;
    color: #AAEBC7;
}
.link {
    display: inline-block;
    color: #323232;
    font-size: 1.8rem;
    font-weight: 400;
    transition: color 0.3s;
}
.link:hover {
    color: #44986A;
}
.link::after {
    content: "";
    display: inline-block;
    width: 3.9rem;
    height: 3.9rem;
    background-image: url('../img/top/icon_01.svg');
    background-size: 3.9rem;
    background-repeat: no-repeat;
    background-position: center;
    vertical-align: middle;
    margin-left: 1.3rem;
    transition: background-image 0.3s, transform 0.3s;
}
.link:hover::after {
    background-image: url('../img/top/icon_01_hover.svg');
    background-size: 3.9rem;
    transform: translateX(0.5rem);
}
.link:hover {
    color: #AAEBC7;
}
.link:hover::after {
    background-image: url('../img/top/icon_01_hover.svg');
}
.text_box {
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 1.93;
    letter-spacing: 0.03rem;
    color: #555555;
}
.text_box p {
    margin-bottom: 2rem;
}
.img {
    border: 1px solid #000;
}
.keyvisual {
    position: relative;
    margin-bottom: 10rem;
    margin-left: 4.1rem;
}
.keyvisual_img{
    width: 90.6rem;
    height: 56.3rem;
    box-shadow: 11px 12px 19px 5px #AAEBC7;
    border-radius: 10px;
}
.keyvisual_slogan {
    position: absolute;
    top: 18rem;
    right: 5.8rem;
    color: #555555;
    font-size: 5.55rem;
    font-weight: 800;
    font-family: 'Shippori Mincho', serif;
    line-height: 2;
    letter-spacing: 0.2rem;
    writing-mode: vertical-rl;
    text-indent: -15rem;
    padding-left: 15rem;
}
.news {
    background-image: url("../img/top/news_back.png");
    background-size: 35rem 38.9rem;
    background-repeat: no-repeat;
    background-position: right bottom -15rem;
}
.news_inner {
    width: 103rem;
    margin: 0 auto 4.7rem;
}
.news .subtitle {
    width: 89.8rem;
    text-align: right;
    margin: 0 0 0 auto;
}
.news_conteiner {
    display: flex;
}
.news .title {
    writing-mode: vertical-rl;
    margin-right: 2.6rem;
}
.news .subtitle {
    padding-bottom: 0.6rem;
    border-bottom: 1px solid #DDDDDD;;
}
.news_content {
    font-size: 1.4rem;
    font-weight: 400;
    margin-top: 1rem;
    padding-left: 4rem;
    border-left: 1px solid #DDDDDD;
    color: #555555;
}
.news_content a {
    color: #555555;
}
.news_list {
    margin-bottom: 2.1rem;
}
.news_item {
    display: flex;
    gap: 5.2rem;
    padding: 2.6rem 0;
    width: 89.8rem;
    border-bottom: 1px solid #DDDDDD;
}
.news_date {
    display: flex;
    gap: 5.6rem;
}
.news_title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.concept {
    margin-bottom: 10rem;
}
.concept .title {
    margin-bottom: 3.8rem;
}
.concept .subtitle {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}
.concept .subtitle::after {
    content: "";
    display: inline-block;
    margin-left: 1.3rem;
    width: 45rem;
    height: 1px;
    background-color: #DDDDDD;
}
.concept {
    display: grid;
    grid-template-columns: 1fr 51.9rem ;
}
.concept_content {
    padding: 9.4rem 5.2rem 0;
}
.concept .text_box {
    width: 61.4rem;
}
.concept .link_box {
    display: flex;
    margin-bottom: 1rem;
}
.concept .link {
    margin: 8rem auto 0 3rem;
    align-self: flex-start;
}
.concept_img03 {
    margin: -10rem 0 0 -9rem;
    width: 35rem;
    height: 46.1rem;
}
.concept_img01 {
    width: 51.9rem;
    height: 73.3rem;
}
.concept_img02 {
    grid-column: 1 / 3;
    width: 98.7rem;
    height: 51.1rem;
    margin: 0 auto;
}
.introduction {
    display: flex;
    gap: 4.5rem;
    margin-bottom: 10rem;
}
.title_container {
    display: flex;
    gap: 4.5rem;
}
.introduction_img01 {
    width: 53.5rem;
    height: 84.5rem;
}
.introduction .title {
    writing-mode: vertical-rl;
    margin-top: 17px;
}
.introduction_comtent {
    margin: 11.8rem 0 0 auto;
    width: 59.1rem;
}
.introduction .subtitle {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}
.introduction .subtitle::after {
    content: "";
    display: inline-block;
    margin-left: 0.8rem;
    width: 25rem;
    height: 1px;
    background-color: #DDDDDD;
}
.introduction .text_box {
    width: 48.2rem;
}
.introduction .link_box {
    position: relative;
    overflow: hidden;
    height: 42rem;
    margin-top: -6rem;
    padding-top: 6rem;
}
.introduction_img03 {
    position: absolute;
    top: 0rem;
    right: -4rem;
    width: 24.2rem;
    height: 24.2rem;
}
.introduction_img02 {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 36.6rem;
    height: 18.9rem;
}

.recruit {
    display: flex;
    background-image: url("../img/top/recruit_back01.png");
    background-repeat: no-repeat;
    background-position: right bottom;
}
.recruit .title {
    line-height: 1;
    margin: 0 4rem;
    writing-mode: vertical-rl;
}
.recruit .subtitle {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}
.recruit .subtitle::after {
    content: "";
    display: inline-block;
    margin-left: 0.8rem;
    width: 47.6rem;
    height: 1px;
    background-color: #DDDDDD;
}
.recruit_content {
    width: 59rem;
    margin-top: 4rem;
}
.recruit .text_box {
    width: 59.2rem;
    margin-bottom: 4.6rem;
} 
.recruit .img_box {
    margin: 0 0 0 auto;
    width: 52.7rem;
    position: relative;
}
.recruit_img01 {
    right: 0;
    top: 0;
    width: 52.7rem;
    height: 84.5rem;
}
.recruit_img02 {
    position: absolute;
    left: -22rem;
    bottom: 5rem;
    width: 46.1rem;
    height: 26rem;
    z-index: 2;
}
.recruit_img03 {
    margin-top: 4.6rem;
    width: 26.6rem;
    height: 26.6rem;
}
.sp {
    display: none;
}
@media screen and (max-width:699.98px) {
    .sp {
        display: block;
    }
    .pc {
        display: none;
    }
    .title_container {
        display: flex;
        gap: 0;
    }
    .title {
        font-size: 2rem;
    }
    .subtitle {
        font-size: 2rem;
    }
    .text_box {
        font-size: 1.6rem;
    }
    .keyvisual {
        width: 35.2rem;
        height: 21.8rem;
        margin: 0 auto 1.7rem;
    }
    .keyvisual_img {
        width: 34.5rem;
        height: 21.4rem;
        box-shadow: 10px 7px 7px -5px #AAEBC7;
    }
    .keyvisual_slogan {
        color: #fff;
        font-size: 2.27rem;
        text-align: right;
        writing-mode: horizontal-tb;
        text-indent: 0;
        padding-left: 0;
        line-height: 1.5;
        right: 1rem;
        bottom: 2rem;
        top: auto;
        letter-spacing: 0.1rem;
    }
    .news {
        background-image: url("../img/top/news_back2.png");
        background-size: 20.1rem 32rem;
        background-position: right bottom;
        padding-bottom: 10rem;
    }
    .news_inner {
        width: 35.3rem;
        margin: 0 auto;
    }
    .news_conteiner,
    .news_item
    {
        display: block;
        width: 35.3rem;
    }
    .news_content {
        font-size: 1.6rem;
        padding: 0;
        margin-top: 0;
        border-left: none;
    }
    .news .title {
        writing-mode: horizontal-tb;
        margin-right: 0.9rem;
    }
    .news .subtitle {
        width: fit-content;
        margin: 0;
        border-bottom: none;
    }
    .news_item {
        padding: 1rem 0;
    }
    .news_date {
        gap: 1rem;
    }
    .news_tag {
        order: 2;
    }
    .news_day {
        order: 1;
    }
    .concept {
        grid-template-columns: 1fr;
        margin-bottom: 10rem;
    }
    .concept_content {
        order: 3;
        padding: 0;
        width: 35.3rem;
        margin: 5.3rem auto 0;
    }
    .concept_img01 {
        order: 1;
        width: 26.6rem;
        height: 37.6rem;
        margin: 0 auto 5.3rem;
    }
    .concept_img02 {
        grid-column: 1;
        order: 2;
        width: 37.5rem;
        height: auto;
    }
    .concept .text_box {
        width: 100%;
    }
    .concept .title {
        font-size: 2.4rem;
        letter-spacing: 0.05rem;
    }
    .concept .subtitle::after {
        margin-left: 0.3rem;
        width: 23rem;
    }
    .concept .link {
        order: 1;
        margin: 0;
    } 
    .concept_img03 {
        order: 2;
        width: 17.2rem;
        height: 22.7rem;
        margin: -8rem -1rem 0 auto;
    }
    .introduction {
        flex-direction: column;
        gap: 4rem;
    }
    .introduction_img01 {
        width: 27.7rem;
        height: 39.7rem;
    }
    .introduction .title_container {
        gap: 3.6rem;
    }
    .introduction_comtent {
        margin: 0  auto;
        width: 35.3rem;
    }
    .introduction .subtitle {
        font-size: 2.5rem;
    }
    .introduction .subtitle::after {
        margin-left: 0.3rem;
        width: 11rem;
    }
    .introduction .text_box {
        width: 100%;
    }
    .introduction .link {
        margin-left: 1rem;
    }
    .introduction .link_box {
        height: 29rem;
        width: 37.3rem;
        margin: 0 -1rem;
        padding: 0;
    }
    .introduction_img03 {
        left: -6rem;
        top: 8rem;
        width: 21.9rem;
        height: 21.9rem;
        z-index: 1;
    }
    .introduction_img02 {
        width: 26.8rem;
        height: 13.4rem;
    }
    .recruit {
        display: block;
        background-size: 32.5rem 35.9rem;
        background-position: bottom 0 right -3rem;
    }
    .recruit .title {
        writing-mode: horizontal-tb;
        margin: 0 1rem;
        text-align: right;
    }
    .recruit .subtitle {
        font-size: 2.5rem;
    }
    .recruit .subtitle::after {
        display: none;
    }
    .recruit .subtitle::before {
        content: "";
        display: inline-block;
        margin-right: 0.3rem;
        width: 26rem;
        height: 1px;
        background-color: #DDDDDD;
    }
    .recruit_content {
        width: 35.3rem;
        margin: 0 auto;
    }
    .recruit .text_box {
        width: 100%;
    }
    .recruit .link {
        margin: 3.1rem 0 7.1rem 1rem;
    }
    .recruit .img_box {
        margin: -12.2rem 0 0;
        width: 37.5rem;
    }
    .recruit_img01 {
        margin: 0 0 5rem auto;
        width: 24rem;
        height: 37.9rem;
    }
    .recruit_img03 {
        width: 12.2rem;
        height: 12.2rem;
    }
    .recruit_img02 {
        width: 21.7rem;
        height: 13.8rem;
        left: 0;
        bottom: -3rem;
    }
}