@charset "UTF-8";
#top .mv_inner {
    margin: -13.5% auto -20%;
    position: relative;
    aspect-ratio: 16 / 9;
    -webkit-clip-path: polygon(0 16%, 100% 16%, 100% 77.5%, 0 77.5%);
    clip-path: polygon(0 16%, 100% 16%, 100% 77.5%, 0 77.5%);
}

@media (max-width: 1280px) {
    #top .mv_inner {
        margin: -8.5% auto -20%;
    }
}

@media (max-width: 840px) {
    #top .mv_inner {
        -webkit-clip-path: polygon(0 15.5%, 100% 15.5%, 100% 75%, 0 75%);
        clip-path: polygon(0 15.5%, 100% 15.5%, 100% 75%, 0 75%);
        margin: calc(-21.5% + 0px) auto -23.5%;
    }
}

@media (max-width: 540px) {
    #top .mv_inner {
        -webkit-clip-path: polygon(0 40%, 100% 40%, 100% 88%, 0 88%);
        clip-path: polygon(0 40%, 100% 40%, 100% 88%, 0 88%);
        margin: calc(-45% + 40px) auto -18.5%;
        padding-top: 25%;
    }
}

#top .mv_inner::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 14vw;
    top: 62%;
    left: 0;
    z-index: 10;
    background-image: url(../img/01_top/mv_deco.png);
    background-size: contain;
    background-position: center;
    background-repeat: repeat-x;
}

@media (max-width: 840px) {
    #top .mv_inner::before {
        top: 64%;
    }
}

@media (max-width: 540px) {
    #top .mv_inner::before {
        top: 78%;
    }
}

#top .mv_movie video {
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    pointer-events: none;
    aspect-ratio: 16 / 13;
    position: relative;
    z-index: 0;
    opacity: 0.8;
}

@media (max-width: 840px) {
    #top .mv_movie video {
        aspect-ratio: 10 / 13;
        scale: 1.25;
    }
}

@media (max-width: 540px) {
    #top .mv_movie video {
        aspect-ratio: 13 / 13;
    }
}

#top .mv_mask {
    position: absolute;
    top: 0px;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
}

#top .mv_frame {
    position: absolute;
    background-image: url(../img/01_top/frame.png);
    z-index: 15;
    width: 50px;
    height: 50px;
}

@media (max-width: 840px) {
    #top .mv_frame {
        background-image: url(../img/01_top/frame_mb.png);
        width: 25px;
        height: 25px;
    }
}

#top .mv_frame.-tl {
    left: 0;
    top: 16%;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
}

@media (max-width: 840px) {
    #top .mv_frame.-tl {
        top: 15.5%;
    }
}

@media (max-width: 540px) {
    #top .mv_frame.-tl {
        top: 40%;
    }
}

#top .mv_frame.-tr {
    right: -0.25px;
    top: 16%;
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
}

@media (max-width: 840px) {
    #top .mv_frame.-tr {
        top: 15.5%;
    }
}

@media (max-width: 540px) {
    #top .mv_frame.-tr {
        top: 40%;
    }
}

#top .mv_frame.-br {
    right: -0.25px;
    bottom: 22.45%;
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
}

@media (max-width: 840px) {
    #top .mv_frame.-br {
        bottom: 25%;
    }
}

@media (max-width: 540px) {
    #top .mv_frame.-br {
        bottom: 12%;
    }
}

#top .mv_frame.-bl {
    left: 0;
    bottom: 22.45%;
}

@media (max-width: 840px) {
    #top .mv_frame.-bl {
        bottom: 25%;
    }
}

@media (max-width: 540px) {
    #top .mv_frame.-bl {
        bottom: 12%;
    }
}

#top .mv_catch {
    right: 5%;
    bottom: 45%;
    z-index: 15;
    position: absolute;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
}

@media (max-width: 840px) {
    #top .mv_catch {
        bottom: 35%;
    }
}

@media (max-width: 540px) {
    #top .mv_catch {
        bottom: 23%;
    }
}

#top .mv_catch span {
    font-size: calc(clamp(3.6rem, 4.6vw, 4.2rem) * 1.25);
    line-height: 140%;
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 800;
    color: #fff;
    opacity: 0;
    -webkit-transition: 0.5s opacity, 0.5s scale;
    transition: 0.5s opacity, 0.5s scale;
    display: inline-block;
}

@media (max-width: 1280px) {
    #top .mv_catch span {
        font-size: clamp(3.6rem, 4.6vw, 4.2rem);
    }
}

@media (max-width: 840px) {
    #top .mv_catch span {
        font-size: clamp(2.8rem, 3.6vw, 3.2rem);
    }
}

#top .mv_catch span.-active {
    opacity: 1;
    -webkit-animation: txt_bounce 0.6s ease-in-out both;
    animation: txt_bounce 0.6s ease-in-out both;
}

@media (max-width: 840px) {
    #top .concept {
        margin-top: 0;
    }
}

@media (max-width: 540px) {
    #top .concept {
        margin-top: 50px;
    }
}

#top .concept_inner {
    background-color: transparent;
    padding: 0;
    position: relative;
}

#top .concept_top {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    width: 90%;
    padding-left: 10%;
    position: relative;
    z-index: 10;
}

@media (max-width: 1024px) {
    #top .concept_top {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
        width: 100%;
        padding-left: 15%;
    }
}

#top .concept_top_body {
    width: 57.5%;
    position: relative;
    z-index: 10;
}

@media (max-width: 1024px) {
    #top .concept_top_body {
        width: 100%;
    }
}

#top .concept_top_body h2 {
    color: #701523;
    font-size: clamp(2.8rem, 3.6vw, 3.2rem);
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 800;
    line-height: 1.6;
    margin-bottom: 20px;
    position: relative;
    text-align: justify;
}

#top .concept_top_body h2::before {
    content: "";
    position: absolute;
    top: clamp(18.5px, 2.5vw, 23px);
    right: 105%;
    height: 5px;
    width: 50vw;
    background-color: #d65c5a;
    border-radius: 10px;
}

@media (max-width: 540px) {
    #top .concept_top_body h2::before {
        right: 110%;
    }
}

#top .concept_top_body h2::after {
    content: "";
    position: absolute;
    top: clamp(12.5px, 2vw, 15px);
    left: -6%;
    height: clamp(17.5px, 2vw, 20px);
    width: clamp(17.5px, 2vw, 20px);
    background-color: #d65c5a;
    border-radius: 30px;
}

@media (max-width: 540px) {
    #top .concept_top_body h2::after {
        left: -11%;
    }
}

#top .concept_top_body h2 .txt span {
    opacity: 0;
    -webkit-transition: 0.5s opacity, 0.5s scale;
    transition: 0.5s opacity, 0.5s scale;
    display: inline-block;
}

#top .concept_top_body h2 .txt span.-active {
    opacity: 1;
    -webkit-animation: txt_bounce_min 0.6s ease-in-out both;
    animation: txt_bounce_min 0.6s ease-in-out both;
}

#top .concept_top_body p {
    font-size: 2rem;
    line-height: 2.05;
}

@media (max-width: 1024px) {
    #top .concept_top_body p {
        font-size: 1.6rem;
        line-height: 1.9;
    }
}

@media (max-width: 540px) {
    #top .concept_top_body p {
        width: 118%;
        margin-left: -17.5%;
    }
}

#top .concept_top_img {
    width: 40%;
    padding-left: 5%;
    margin-top: 5%;
    position: relative;
    z-index: 1;
    opacity: 0;
    -webkit-transition: 1.5s opacity, 0.5s scale;
    transition: 1.5s opacity, 0.5s scale;
    display: inline-block;
}

#top .concept_top_img.-active {
    opacity: 1;
    -webkit-animation: img_bounce 1s ease-in-out both;
    animation: img_bounce 1s ease-in-out both;
}

@media (max-width: 1024px) {
    #top .concept_top_img {
        width: 540px;
        max-width: 100%;
        margin: 50px auto 0;
        padding-left: 0;
    }
}

@media (max-width: 540px) {
    #top .concept_top_img {
        margin: 30px 0 0 -7.5%;
    }
}

#top .concept_top_img::before {
    content: "";
    background-image: url(../img/01_top/concept_top_deco.png);
    position: absolute;
    top: -40%;
    right: -45%;
    width: 65%;
    height: 65%;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center;
}

#top .concept_top_bg {
    position: absolute;
    bottom: -22vw;
    right: -80%;
    width: 130%;
}

@media (max-width: 1024px) {
    #top .concept_top_bg {
        bottom: -33vw;
        width: 150%;
    }
}

@media (max-width: 540px) {
    #top .concept_top_bg {
        width: 190%;
    }
}

#top .concept_bottom {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    width: 90%;
    padding-right: 10%;
    margin-top: 150px;
    margin-left: auto;
    position: relative;
    z-index: 10;
}

@media (max-width: 1024px) {
    #top .concept_bottom {
        -webkit-box-orient: vertical;
        -webkit-box-direction: reverse;
        -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
        flex-direction: column-reverse;
        width: 100%;
        padding-right: 15%;
    }
}

#top .concept_bottom_body {
    width: 60%;
    position: relative;
    z-index: 10;
}

@media (max-width: 1024px) {
    #top .concept_bottom_body {
        width: 100%;
    }
}

#top .concept_bottom_body h2 {
    color: #701523;
    font-size: clamp(2.8rem, 3.6vw, 3.2rem);
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 800;
    line-height: 1.6;
    margin-bottom: 20px;
    position: relative;
    display: inline-block;
}

#top .concept_bottom_body h2::before {
    content: "";
    position: absolute;
    top: clamp(18.5px, 2.5vw, 23px);
    left: 110%;
    height: 5px;
    width: 50vw;
    background-color: #d65c5a;
    border-radius: 10px;
}

@media (max-width: 1024px) {
    #top .concept_bottom_body h2::before {
        width: 100vw;
    }
}

#top .concept_bottom_body h2::after {
    content: "";
    position: absolute;
    top: clamp(12.5px, 2vw, 15px);
    right: -40px;
    height: clamp(17.5px, 2vw, 20px);
    width: clamp(17.5px, 2vw, 20px);
    background-color: #d65c5a;
    border-radius: 30px;
}

#top .concept_bottom_body h2 .txt span {
    opacity: 0;
    -webkit-transition: 0.5s opacity, 0.5s scale;
    transition: 0.5s opacity, 0.5s scale;
    display: inline-block;
}

#top .concept_bottom_body h2 .txt span.-active {
    opacity: 1;
    -webkit-animation: txt_bounce_min 0.6s ease-in-out both;
    animation: txt_bounce_min 0.6s ease-in-out both;
}

#top .concept_bottom_body p {
    font-size: 1.8rem;
    line-height: 2;
}

@media (max-width: 1024px) {
    #top .concept_bottom_body p {
        font-size: 1.6rem;
        line-height: 1.9;
    }
}

@media (max-width: 540px) {
    #top .concept_bottom_body p {
        width: 118%;
        margin-right: -17.5%;
    }
}

#top .concept_bottom_movie {
    width: 60%;
    padding-right: 5%;
    position: relative;
    z-index: 10;
    margin-left: -20%;
}

@media (max-width: 1024px) {
    #top .concept_bottom_movie {
        width: 115%;
        margin-left: -10%;
        margin-top: 50px;
    }
}

@media (max-width: 540px) {
    #top .concept_bottom_movie {
        width: 132.5%;
        margin-top: 30px;
    }
}

#top .concept_bottom_movie iframe {
    border-radius: 10px;
    width: 100%;
    aspect-ratio: 4 / 3;
}

#top .concept_bottom_deco {
    position: absolute;
    top: -50%;
    left: 10%;
    width: 40%;
    -webkit-animation: 120s linear infinite rotation;
    animation: 120s linear infinite rotation;
    opacity: 0.35;
}

@-webkit-keyframes rotation {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes rotation {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

#top .concept_bottom_bg {
    position: absolute;
    bottom: -20vw;
    left: -42vw;
    width: 80%;
    z-index: 0;
}

@media (max-width: 1024px) {
    #top .concept_bottom_bg {
        bottom: -37vw;
        width: 110%;
    }
}

#top .services {
    background-color: #fff;
    margin: calc(clamp(80px, 12vw, 150px) * 1.5) auto;
    padding: 50px 5% calc(clamp(180px, 12vw, 250px) * 0.7);
    position: relative;
    z-index: 0;
}

@media (max-width: 1024px) {
    #top .services {
        padding-bottom: clamp(80px, 12vw, 100px);
    }
}

#top .services::before {
    content: "";
    background-image: url(../img/01_top/services_bg_t.png);
    top: -18vw;
    width: 110%;
    height: 38vw;
    position: absolute;
    left: -10%;
    background-size: cover;
}

#top .services::after {
    content: "";
    background-image: url(../img/01_top/services_bg_b.png);
    bottom: -18vw;
    width: 110%;
    height: 38vw;
    position: absolute;
    left: -10%;
    background-size: cover;
    z-index: -1;
}

#top .services_inner {
    padding: 0;
}

#top .services_update {
    text-align: right;
    font-size: 1.4rem;
    color: #5d5d5d;
    display: none;
}

@media (max-width: 840px) {
    #top .services_update {
        margin-bottom: 20px;
        text-align: left;
    }
}

#top .services_lists {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    margin: 0 -20px;
    gap: clamp(30px, 5vw, 50px) 15px;
}

@media (max-width: 1024px) {
    #top .services_lists {
        gap: clamp(30px, 5vw, 50px) 30px;
    }
}

@media (max-width: 540px) {
    #top .services_lists {
        margin: 0;
    }
}

#top .services_lists li {
    width: calc((100% - 15px * 2) / 3);
}

@media (max-width: 1024px) {
    #top .services_lists li {
        width: calc((100% - 30px * 1) / 2);
    }
}

@media (max-width: 540px) {
    #top .services_lists li {
        width: 85%;
    }
}

#top .services_lists li:nth-child(2) {
    margin-top: 5%;
}

@media (max-width: 1024px) {
    #top .services_lists li:nth-child(2) {
        margin-top: 20%;
    }
}

@media (max-width: 540px) {
    #top .services_lists li:nth-child(2) {
        margin-top: 0%;
        margin-left: auto;
    }
}

#top .services_lists li:nth-child(3) {
    margin-top: 10%;
}

@media (max-width: 1024px) {
    #top .services_lists li:nth-child(3) {
        margin-top: -20%;
    }
}

@media (max-width: 540px) {
    #top .services_lists li:nth-child(3) {
        margin-top: 0;
    }
}

#top .services_lists li a:hover .services_img .img {
    -webkit-transform: scale(1.025);
    transform: scale(1.025);
}

#top .services_lists li a:hover .services_txt::before {
    right: -0.25em;
}

#top .services_img {
    position: relative;
}

#top .services_img .img {
    position: relative;
    z-index: 5;
}

#top .services_img .deco {
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    z-index: 1;
    -webkit-animation: rotat-img 40s linear infinite;
    animation: rotat-img 40s linear infinite;
}

@-webkit-keyframes rotat-img {
    from {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes rotat-img {
    from {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

#top .services_txt {
    position: relative;
    font-size: clamp(2.8rem, 3.6vw, 3.2rem);
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-left: 0.75em;
    padding-right: 1.65em;
}

#top .services_txt span {
    font-family: "M PLUS Rounded 1c", sans-serif;
    color: #701523;
    font-size: clamp(2.8rem, 3.6vw, 3.2rem);
    font-weight: 700;
    display: inline-block;
    line-height: 1.35;
}

#top .services_txt::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    translate: 0 -50%;
    width: 1.25em;
    height: 1.25em;
    -webkit-transition: 0.5s right;
    transition: 0.5s right;
    background-image: url(../img/01_top/services_arrow.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center;
}

#top .services_num {
    display: block;
    text-align: right;
    margin-top: 3.5px;
    display: none;
}

#top .services_num .txt {
    display: inline-block;
    border-bottom: 2px solid #701523;
}

#top .services_num .num {
    font-size: clamp(2.8rem, 3.6vw, 3.2rem);
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 800;
    color: rgba(112, 21, 35, 0.6);
    line-height: 1.4;
}

#top .services_mynum {
    margin: 50px auto 0;
    max-width: 1024px;
    background-color: rgba(241, 216, 215, 0.7);
    border-radius: min(3vw,20px);
    padding: 1em 1em;
}

#top .post {
    overflow: hidden;
    margin-bottom: 0;
}

#top .post_inner {
    padding: 0;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    background-color: transparent;
}

#top .post_inner .news {
    width: 50%;
    background-color: #fff;
    padding: 50px 5% 80px;
    border-radius: min(3vw,20px);
    border-bottom-right-radius: 0;
}

@media (max-width: 1280px) {
    #top .post_inner .news {
        width: 85%;
    }
}

@media (max-width: 840px) {
    #top .post_inner .news {
        width: 90%;
        padding: 40px 5% 50px;
    }
}

#top .post_inner .news_list {
    background-color: rgba(241, 216, 215, 0.7);
}

#top .post_inner .blog {
    width: 50%;
    background-color: #f1d8d7;
    padding: 50px 5% 80px;
    border-radius: min(3vw,20px);
    border-top-left-radius: 0;
    margin-top: 50px;
}

@media (max-width: 1280px) {
    #top .post_inner .blog {
        width: 85%;
        margin-top: 0;
        margin-left: auto;
    }
}

@media (max-width: 840px) {
    #top .post_inner .blog {
        width: 90%;
        padding: 40px 5% 50px;
    }
}

#top .post_inner .blog_list {
    background-color: rgba(255, 255, 255, 0.9);
}

#top .post_lists {
    min-height: 240px;
}

@media (max-width: 1280px) {
    #top .post_lists {
        min-height: auto;
    }
}

#top .post_lists li {
    border-radius: 50px;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}

#top .post_lists li:hover a::after {
    right: 15px;
}

#top .post_lists li:not(:last-child) {
    margin-bottom: 30px;
}

#top .post_lists li a {
    display: block;
    padding: 17.5px 40px 12.5px 25px;
    position: relative;
}

#top .post_lists li a::after {
    content: "\f0142";
    font-family: "icomoon";
    font-weight: 900;
    position: absolute;
    top: 50%;
    right: 20px;
    -webkit-transform: translate(0, -50%);
    transform: translate(0, -50%);
    -webkit-transition: 0.5s right;
    transition: 0.5s right;
    font-size: 1.4rem;
    color: #701523;
}

#top .post_lists li a time {
    position: absolute;
    top: -12.5px;
    left: -10px;
    background-color: #701523;
    color: #fff;
    font-size: 1.4rem;
    display: inline-block;
    padding: 0 15px;
    border-radius: 50px;
}

#top .post_btn {
    display: block;
    width: 240px;
    max-width: 100%;
    margin: 30px auto 0;
    background-color: #701523;
    color: #fff;
    text-align: center;
    padding: 12.5px 30px 15px;
    border-radius: 50px;
    position: relative;
    z-index: 10;
}

#top .post_btn::before {
    position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 20px;
    background-color: #f9e502;
    left: 87.5%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-transition: 0.5s width,0.5s height,0.5s left,0.2s scale;
    transition: 0.5s width,0.5s height,0.5s left,0.2s scale;
    z-index: 10;
}

#top .post_btn:hover {
    background-color: #840115;
    scale: 1.075;
}

#top .post_btn:hover::before {
    width: 7.5%;
    height: 3px;
    left: 92.5%;
}

#top .post_nopost {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    min-height: 270px;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    margin-top: -30px;
}

@media (max-width: 1280px) {
    #top .post_nopost {
        min-height: auto;
        margin-top: -10px;
    }
}

#top .recruit {
    width: 100%;
    margin-bottom: 0;
    margin-top: 10px;
    background-image: url(../img/01_top/recruit_bg.jpg);
    background-size: cover;
    background-position: center center;
    padding: calc(clamp(80px, 12vw, 150px) * 1 + 13vw) 5% calc(clamp(80px, 12vw, 150px) * 1);
    z-index: 0;
}

@media (max-width: 840px) {
    #top .recruit {
        padding: calc(clamp(50px, 12vw, 150px) * 1 + 13vw) 5% calc(clamp(50px, 12vw, 150px) * 1);
        margin-top: 50px;
    }
}

#top .recruit::before {
    content: "";
    background: rgba(155, 0, 49, 0.5);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

@media (max-width: 840px) {
    #top .recruit::before {
        background: rgba(155, 0, 49, 0.65);
    }
}

#top .recruit::after {
    content: "";
    position: absolute;
    top: -5px;
    left: 0;
    width: 100%;
    height: 18vw;
    background-image: url(../img/01_top/recruit_deco.png);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

#top .recruit_inner {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

#top .recruit_img {
    width: 45%;
}

#top .recruit_img img {
    border-radius: min(2vw,10px);
}

@media (max-width: 840px) {
    #top .recruit_img {
        width: 100%;
        margin-bottom: 30px;
    }
}

#top .recruit_content {
    width: 55%;
    padding-left: 5%;
}

@media (max-width: 840px) {
    #top .recruit_content {
        width: 100%;
        padding-left: 0;
    }
}

#top .recruit_content h2 {
    color: #fff;
    font-size: clamp(2.8rem, 3.6vw, 3.2rem);
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 800;
    line-height: 1.6;
    margin-bottom: 20px;
    position: relative;
    display: inline-block;
}

#top .recruit_content h2 .txt span {
    opacity: 0;
    -webkit-transition: 0.5s opacity, 0.5s scale;
    transition: 0.5s opacity, 0.5s scale;
    display: inline-block;
}

#top .recruit_content h2 .txt span.-active {
    opacity: 1;
    -webkit-animation: txt_bounce_min 0.6s ease-in-out both;
    animation: txt_bounce_min 0.6s ease-in-out both;
}

#top .recruit_content p {
    line-height: 2;
    font-size: 1.8rem;
    color: #fff;
    text-shadow: 0px 0px 20px rgba(0, 0, 0, 0.8);
}

@media (max-width: 1024px) {
    #top .recruit_content p {
        font-size: 1.6rem;
        line-height: 1.9;
    }
}

#top .recruit_btn {
    display: block;
    width: 240px;
    max-width: 100%;
    margin-top: 30px;
    background-color: #fff;
    color: #701523;
    text-align: center;
    padding: 12.5px 30px 15px;
    border-radius: 50px;
    position: relative;
    z-index: 10;
}

#top .recruit_btn::before {
    position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 20px;
    background-color: #f9e502;
    left: 87.5%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-transition: 0.5s width,0.5s height,0.5s left,0.2s scale;
    transition: 0.5s width,0.5s height,0.5s left,0.2s scale;
    z-index: 10;
}

#top .recruit_btn:hover {
    scale: 1.075;
}

#top .recruit_btn:hover::before {
    width: 7.5%;
    height: 3px;
    left: 92.5%;
}

#visiting .service_body,
#rehabilitation .service_body,
#psychiatry .service_body {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    position: relative;
}

#visiting .service_index,
#rehabilitation .service_index,
#psychiatry .service_index {
    width: 22.5%;
    position: -webkit-sticky;
    position: sticky;
    height: 300px;
    top: 150px;
}

@media (max-width: 1280px) {
    #visiting .service_index,
    #rehabilitation .service_index,
    #psychiatry .service_index {
        width: 30%;
    }
}

@media (max-width: 1024px) {
    #visiting .service_index,
    #rehabilitation .service_index,
    #psychiatry .service_index {
        display: none;
    }
}

#visiting .service_index ul li a,
#rehabilitation .service_index ul li a,
#psychiatry .service_index ul li a {
    display: block;
    max-width: 100%;
    width: 100%;
    margin: 0 5px 15px;
    background-color: #fff;
    color: rgba(112, 21, 35, 0.6);
    text-align: center;
    padding: 15px 30px 15px;
    border-radius: 50px;
    position: relative;
    cursor: pointer;
    z-index: 10;
    -webkit-transition: 0.5s;
    transition: 0.5s;
    -webkit-transition-property: background-color, color, -webkit-transform;
    transition-property: background-color, color, -webkit-transform;
    transition-property: background-color, color, transform;
    transition-property: background-color, color, transform, -webkit-transform;
    border: 2px solid #701523;
    line-height: 1.6;
}

#visiting .service_index ul li a:hover,
#rehabilitation .service_index ul li a:hover,
#psychiatry .service_index ul li a:hover {
    background-color: #701523;
    color: #fff;
}

#visiting .service_index ul li.now a,
#rehabilitation .service_index ul li.now a,
#psychiatry .service_index ul li.now a {
    background-color: #701523;
    color: #fff;
}

#visiting .service_content,
#rehabilitation .service_content,
#psychiatry .service_content {
    width: 77.5%;
    padding-left: 5%;
}

@media (max-width: 1280px) {
    #visiting .service_content,
    #rehabilitation .service_content,
    #psychiatry .service_content {
        width: 70%;
    }
}

@media (max-width: 1024px) {
    #visiting .service_content,
    #rehabilitation .service_content,
    #psychiatry .service_content {
        width: 100%;
        padding-left: 0;
    }
}

#visiting .service_content_list:not(:last-child),
#rehabilitation .service_content_list:not(:last-child),
#psychiatry .service_content_list:not(:last-child) {
    padding-bottom: calc(clamp(30px, 7vw, 80px) * 1.25);
}

#visiting .service_content .head_body,
#rehabilitation .service_content .head_body,
#psychiatry .service_content .head_body {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
}

#visiting .service_content .head_body.-reverse,
#rehabilitation .service_content .head_body.-reverse,
#psychiatry .service_content .head_body.-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
}

#visiting .service_content .head_body p,
#rehabilitation .service_content .head_body p,
#psychiatry .service_content .head_body p {
    width: 50%;
    font-size: 1.8rem;
}

@media (max-width: 1280px) {
    #visiting .service_content .head_body p,
    #rehabilitation .service_content .head_body p,
    #psychiatry .service_content .head_body p {
        width: 100%;
    }
}

#visiting .service_content .head_img,
#rehabilitation .service_content .head_img,
#psychiatry .service_content .head_img {
    width: 45%;
}

@media (max-width: 1280px) {
    #visiting .service_content .head_img,
    #rehabilitation .service_content .head_img,
    #psychiatry .service_content .head_img {
        width: 100%;
        margin-top: 30px;
    }
}

#visiting .service_content .head_img img,
#rehabilitation .service_content .head_img img,
#psychiatry .service_content .head_img img {
    border-radius: 10px;
}

#visiting .service_content .head_target,
#rehabilitation .service_content .head_target,
#psychiatry .service_content .head_target {
    margin-top: 30px;
}

#visiting .service_content .head_target_ttl,
#rehabilitation .service_content .head_target_ttl,
#psychiatry .service_content .head_target_ttl {
    font-size: calc(clamp(2.4rem, 3vw, 2.6rem) * 0.9);
    font-weight: 600;
    font-family: "M PLUS Rounded 1c", sans-serif;
    position: relative;
    display: block;
    margin-bottom: 15px;
}

#visiting .service_content .head_target_ttl::after,
#rehabilitation .service_content .head_target_ttl::after,
#psychiatry .service_content .head_target_ttl::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2.5px;
    width: 70px;
    height: 2px;
    border-radius: 5px;
    background-color: #701523;
}

#visiting .service_content .head_target ul,
#rehabilitation .service_content .head_target ul,
#psychiatry .service_content .head_target ul {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
}

#visiting .service_content .head_target ul li,
#rehabilitation .service_content .head_target ul li,
#psychiatry .service_content .head_target ul li {
    background-color: rgba(112, 21, 35, 0.05);
    padding: 7.5px 7.5px;
    border-radius: 5px;
    width: 49.5%;
    margin-bottom: 7.5px;
}

@media (max-width: 840px) {
    #visiting .service_content .head_target ul li,
    #rehabilitation .service_content .head_target ul li,
    #psychiatry .service_content .head_target ul li {
        width: 100%;
    }
}

#visiting .service_content .head_target_other,
#rehabilitation .service_content .head_target_other,
#psychiatry .service_content .head_target_other {
    display: block;
    text-align: right;
}

#visiting .service_content .point_body,
#rehabilitation .service_content .point_body,
#psychiatry .service_content .point_body {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
}

#visiting .service_content .point_body.-reverse,
#rehabilitation .service_content .point_body.-reverse,
#psychiatry .service_content .point_body.-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
}

#visiting .service_content .point_img,
#rehabilitation .service_content .point_img,
#psychiatry .service_content .point_img {
    width: 35%;
}

@media (max-width: 1280px) {
    #visiting .service_content .point_img,
    #rehabilitation .service_content .point_img,
    #psychiatry .service_content .point_img {
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
    }
}

#visiting .service_content .point_content,
#rehabilitation .service_content .point_content,
#psychiatry .service_content .point_content {
    width: 60%;
}

@media (max-width: 1280px) {
    #visiting .service_content .point_content,
    #rehabilitation .service_content .point_content,
    #psychiatry .service_content .point_content {
        width: 100%;
        margin-top: 30px;
    }
}

#visiting .service_content .point_content ul li,
#rehabilitation .service_content .point_content ul li,
#psychiatry .service_content .point_content ul li {
    padding: 12.5px 0;
    border-top: 1px dotted #701523;
}

#visiting .service_content .point_content ul li:last-child,
#rehabilitation .service_content .point_content ul li:last-child,
#psychiatry .service_content .point_content ul li:last-child {
    border-bottom: 1px dotted #701523;
}

#visiting .service_content .point_content ul li .mintxt,
#rehabilitation .service_content .point_content ul li .mintxt,
#psychiatry .service_content .point_content ul li .mintxt {
    display: block;
    color: #818181;
    font-size: 1.4rem;
}

#visiting .service_content .point_content span,
#rehabilitation .service_content .point_content span,
#psychiatry .service_content .point_content span {
    display: block;
    margin-top: 10px;
}

#visiting .service_content .faq_body li:not(:last-child),
#rehabilitation .service_content .faq_body li:not(:last-child),
#psychiatry .service_content .faq_body li:not(:last-child) {
    margin-bottom: 25px;
}

#visiting .service_content .faq_body li p,
#rehabilitation .service_content .faq_body li p,
#psychiatry .service_content .faq_body li p {
    padding-left: 15%;
}

#visiting .service_content .faq_body li .tel,
#rehabilitation .service_content .faq_body li .tel,
#psychiatry .service_content .faq_body li .tel {
    font-size: clamp(2.4rem, 3vw, 2.6rem);
    line-height: 1.6;
    font-weight: 800;
    font-family: "M PLUS Rounded 1c", sans-serif;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    background-color: rgba(112, 21, 35, 0.1);
    display: inline-block;
    padding: 7.5px 15px;
    border-radius: 5px;
    margin-top: 10px;
}

#visiting .service_content .faq_body li .tel::before,
#rehabilitation .service_content .faq_body li .tel::before,
#psychiatry .service_content .faq_body li .tel::before {
    content: "";
    background-image: url(../img/00_common/tel.png);
    background-position: center center;
    background-size: contain;
    background-repeat: no-repeat;
    width: 25px;
    height: 25px;
    display: inline-block;
    margin-right: 5px;
}

#visiting .service_content .faq_body li .tel:hover,
#rehabilitation .service_content .faq_body li .tel:hover,
#psychiatry .service_content .faq_body li .tel:hover {
    opacity: 0.7;
}

#visiting .service_content .faq_ttl,
#rehabilitation .service_content .faq_ttl,
#psychiatry .service_content .faq_ttl {
    font-size: calc(clamp(2.4rem, 3vw, 2.6rem) * 0.9);
    font-weight: 600;
    font-family: "M PLUS Rounded 1c", sans-serif;
    position: relative;
    display: block;
    line-height: 1.6;
}

#visiting .service_bg,
#rehabilitation .service_bg,
#psychiatry .service_bg {
    position: absolute;
    top: 0;
    left: 0;
}

#visiting .service_link,
#rehabilitation .service_link,
#psychiatry .service_link {
    margin-top: clamp(30px, 7vw, 80px);
    padding-top: clamp(30px, 7vw, 80px);
}

#visiting .service_link .services_lists,
#rehabilitation .service_link .services_lists,
#psychiatry .service_link .services_lists {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 840px;
}

#visiting .service_link .services_lists li,
#rehabilitation .service_link .services_lists li,
#psychiatry .service_link .services_lists li {
    width: calc(50% - 15px);
}

@media (max-width: 540px) {
    #visiting .service_link .services_lists li,
    #rehabilitation .service_link .services_lists li,
    #psychiatry .service_link .services_lists li {
        width: 48%;
    }
}

#visiting .service_link .services_lists li a:hover .services_img img,
#rehabilitation .service_link .services_lists li a:hover .services_img img,
#psychiatry .service_link .services_lists li a:hover .services_img img {
    opacity: 0.8;
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
}

#visiting .service_link .services_img,
#rehabilitation .service_link .services_img,
#psychiatry .service_link .services_img {
    position: relative;
    overflow: hidden;
    background-color: #701523;
    border-radius: 10px 10px 0 0;
}

#visiting .service_link .services_img img,
#rehabilitation .service_link .services_img img,
#psychiatry .service_link .services_img img {
    border-radius: 10px 10px 0 0;
}

#visiting .service_link .services_img span,
#rehabilitation .service_link .services_img span,
#psychiatry .service_link .services_img span {
    position: absolute;
    bottom: 10px;
    left: 10px;
    font-family: "M PLUS Rounded 1c", sans-serif;
    color: #fff;
    font-size: clamp(2.8rem, 3.6vw, 3.2rem);
    text-shadow: 0px 0px 17.5px #414141;
}

@media (max-width: 540px) {
    #visiting .service_link .services_img span,
    #rehabilitation .service_link .services_img span,
    #psychiatry .service_link .services_img span {
        font-size: calc(clamp(2.4rem, 3vw, 2.6rem) * 0.8);
        left: 3%;
    }
}

#visiting .service_link .services_img::before,
#rehabilitation .service_link .services_img::before,
#psychiatry .service_link .services_img::before {
    position: absolute;
    content: "";
    left: 0;
    bottom: 0;
    width: 100%;
    height: 10px;
    background-color: #701523;
    z-index: 10;
}

#flow .sec_lists {
    max-width: 1280px;
    margin: 0 auto;
}

#flow .sec_lists li {
    position: relative;
    background-color: #fafafa;
    padding: 30px 30px 30px 85px;
    border-radius: 10px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    width: 70%;
}

#flow .sec_lists li:not(:last-child) {
    margin-bottom: 80px;
}

@media (max-width: 540px) {
    #flow .sec_lists li:not(:last-child) {
        margin-bottom: 50px;
    }
}

#flow .sec_lists li:nth-child(even) {
    margin-left: auto;
}

@media (max-width: 1280px) {
    #flow .sec_lists li {
        width: 90%;
    }
}

@media (max-width: 840px) {
    #flow .sec_lists li {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
        padding: 70px 5% 30px;
    }
}

@media (max-width: 540px) {
    #flow .sec_lists li {
        padding: 50px 5% 30px;
    }
}

#flow .sec_step {
    position: absolute;
    width: clamp(90px, 10vw, 120px);
    left: max(-3vw,-50px);
    top: -30px;
}

@media (max-width: 540px) {
    #flow .sec_step {
        width: 70px;
    }
}

#flow .sec_content {
    width: 65%;
}

@media (max-width: 840px) {
    #flow .sec_content {
        width: 100%;
    }
}

#flow .sec_content h3 {
    font-size: clamp(2.4rem, 3vw, 2.6rem);
    font-family: "M PLUS Rounded 1c", sans-serif;
    line-height: 1.6;
    font-weight: 700;
    color: #4d4d4d;
    margin-bottom: 15px;
    width: 100%;
}

#flow .sec_img {
    padding-left: 30px;
    width: 35%;
    position: relative;
    top: 80px;
}

@media (max-width: 840px) {
    #flow .sec_img {
        top: 0;
        margin: 30px auto 0;
        width: 100%;
        max-width: 300px;
        padding-left: 0;
    }
}

#company .sec {
    overflow: hidden;
}

#company .sec_member {
    max-width: 1024px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    margin: 20px auto -15px;
}

#company .sec_member img {
    border-radius: min(2vw,10px);
}

#company .sec_info {
    max-width: 1024px;
    margin: clamp(30px, 7vw, 80px) auto 0;
}

#company .sec_info li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    border-bottom: 1px dotted #701523;
    padding: 17.5px 2.5px;
}

#company .sec_info li:first-child {
    border-top: 1px dotted #701523;
}

@media (max-width: 840px) {
    #company .sec_info li {
        padding: 15px 2.5px;
    }
}

#company .sec_info li .ttl {
    width: 20%;
    font-weight: 900;
    color: #701523;
}

@media (max-width: 840px) {
    #company .sec_info li .ttl {
        width: 100%;
    }
}

#company .sec_info li .txt {
    width: 80%;
}

@media (max-width: 840px) {
    #company .sec_info li .txt {
        width: 100%;
    }
}

#company .sec_map {
    margin: clamp(30px, 7vw, 80px) -6% clamp(-80px, -7vw, -30px);
}

#company .sec_map iframe {
    width: 100%;
    height: 600px;
    border-radius: min(3vw,20px);
    border-top-right-radius: 0;
    border-top-left-radius: 0;
}

#recruit .joboffer_body {
    max-width: 1024px;
    margin: 0 auto;
}

#recruit .joboffer_head {
    max-width: 840px;
    margin: 0 auto 50px;
}

#recruit .joboffer_head p {
    font-size: 1.8rem;
}

#recruit .joboffer_tab ul {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin: 0 -5px 30px;
}

@media (max-width: 540px) {
    #recruit .joboffer_tab ul {
        margin: 0 0 30px;
    }
}

#recruit .joboffer_tab ul > .act {
    color: #fff;
    background-color: #701523;
    -webkit-transform: translateY(-3px);
    transform: translateY(-3px);
    opacity: 1;
}

#recruit .joboffer_tab ul > .near {
    background-color: #fff;
}

#recruit .joboffer_tab ul li {
    display: block;
    max-width: 100%;
    width: calc(100% / 3 - 10px);
    margin: 0 5px 15px;
    background-color: #fff;
    color: rgba(112, 21, 35, 0.6);
    text-align: center;
    padding: 15px 30px 15px;
    border-radius: 50px;
    position: relative;
    cursor: pointer;
    z-index: 10;
    -webkit-transition: 0.5s;
    transition: 0.5s;
    -webkit-transition-property: background-color, color, -webkit-transform;
    transition-property: background-color, color, -webkit-transform;
    transition-property: background-color, color, transform;
    transition-property: background-color, color, transform, -webkit-transform;
    border: 2px solid #701523;
    line-height: 1.6;
}

#recruit .joboffer_tab ul li:hover {
    background-color: #701523;
    color: #fff;
    -webkit-transform: translateY(-3px);
    transform: translateY(-3px);
}

@media (max-width: 1024px) {
    #recruit .joboffer_tab ul li {
        width: calc(100% / 2 - 10px);
    }
}

@media (max-width: 700px) {
    #recruit .joboffer_tab ul li {
        width: 100%;
        margin: 0 0px 10px;
    }
}

#recruit .joboffer_content > .act {
    display: block;
}

#recruit .joboffer_content_inner {
    display: none;
}

#recruit .joboffer_content_ttl {
    display: block;
    font-size: clamp(2.4rem, 3vw, 2.6rem);
    font-family: "M PLUS Rounded 1c", sans-serif;
    line-height: 1.6;
    font-weight: 700;
    color: #4d4d4d;
    margin: 10px 0 15px;
    width: 100%;
}

#recruit .joboffer_content ul li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    border-bottom: 1px dotted #701523;
    padding: 17.5px 2.5px;
}

#recruit .joboffer_content ul li:first-child {
    border-top: 1px dotted #701523;
}

@media (max-width: 840px) {
    #recruit .joboffer_content ul li {
        padding: 15px 2.5px;
    }
}

#recruit .joboffer_content ul li .ttl {
    width: 20%;
    font-weight: 900;
    color: #701523;
}

@media (max-width: 840px) {
    #recruit .joboffer_content ul li .ttl {
        width: 100%;
    }
}

#recruit .joboffer_content ul li .txt {
    width: 80%;
}

@media (max-width: 840px) {
    #recruit .joboffer_content ul li .txt {
        width: 100%;
    }
}

#recruit .joboffer_content_btn {
    border: none;
    background-color: #701523;
    -webkit-transition: 0.5s;
    transition: 0.5s;
    -webkit-transition-property: color, background-color;
    transition-property: color, background-color;
    margin: 30px auto;
    display: block;
    width: 300px;
    color: #fff;
    text-align: center;
    padding: 12.5px 30px 15px;
    border-radius: 50px;
    position: relative;
    max-width: 100%;
}

#recruit .joboffer_content_btn::before {
    position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 20px;
    background-color: #fff;
    left: 87.5%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-transition: 0.5s width, 0.5s height, 0.5s left;
    transition: 0.5s width, 0.5s height, 0.5s left;
    z-index: 10;
}

#recruit .joboffer_content_btn:hover {
    background-color: #840115;
}

#recruit .joboffer_content_btn:hover::before {
    width: 7.5%;
    height: 3px;
    left: 92.5%;
}

#news .archive,
#blog .archive {
    margin-top: clamp(50px, 8vw, 80px);
}

#news .archive_lists,
#blog .archive_lists {
    max-width: 1024px;
    margin: 0 auto;
}

#news .archive_lists li,
#blog .archive_lists li {
    border-radius: 50px;
    -webkit-transition: 0.5s;
    transition: 0.5s;
    background-color: rgba(241, 216, 215, 0.7);
}

#news .archive_lists li:hover a::after,
#blog .archive_lists li:hover a::after {
    right: 15px;
}

#news .archive_lists li:not(:last-child),
#blog .archive_lists li:not(:last-child) {
    margin-bottom: 30px;
}

#news .archive_lists li a,
#blog .archive_lists li a {
    display: block;
    padding: 17.5px 40px 12.5px 25px;
    position: relative;
}

#news .archive_lists li a::after,
#blog .archive_lists li a::after {
    content: "\f0142";
    font-family: "icomoon";
    font-weight: 900;
    position: absolute;
    top: 50%;
    right: 20px;
    -webkit-transform: translate(0, -50%);
    transform: translate(0, -50%);
    -webkit-transition: 0.5s right;
    transition: 0.5s right;
    font-size: 1.4rem;
    color: #701523;
}

#news .archive_lists li a time,
#blog .archive_lists li a time {
    position: absolute;
    top: -12.5px;
    left: -10px;
    background-color: #701523;
    color: #fff;
    font-size: 1.4rem;
    display: inline-block;
    padding: 0 15px;
    border-radius: 50px;
}

#news .article_head, #news .article_content,
#blog .article_head,
#blog .article_content {
    max-width: 960px;
    margin: 0 auto;
}

#news .article_head time,
#blog .article_head time {
    background-color: #701523;
    color: #fff;
    font-size: 1.4rem;
    display: block;
    text-align: center;
    width: 120px;
    padding: 0 15px;
    border-radius: 50px;
}

#news .article_head h2,
#blog .article_head h2 {
    display: block;
    font-size: clamp(2.4rem, 3vw, 2.6rem);
    font-family: "M PLUS Rounded 1c", sans-serif;
    line-height: 1.6;
    font-weight: 700;
    color: #4d4d4d;
    margin: 10px 0 20px;
    width: 100%;
}

#news .article_content img,
#blog .article_content img {
    margin: 5px 0;
    border-radius: 5px;
}

#news .article_btn,
#blog .article_btn {
    display: block;
    width: 240px;
    max-width: 100%;
    margin: 30px auto 0;
    background-color: #701523;
    color: #fff;
    text-align: center;
    padding: 12.5px 30px 15px;
    border-radius: 50px;
    position: relative;
    z-index: 10;
}

#news .article_btn::before,
#blog .article_btn::before {
    position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 20px;
    background-color: #f9e502;
    left: 12.5%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-transition: 0.5s width, 0.5s height, 0.5s left, 0.3s scale;
    transition: 0.5s width, 0.5s height, 0.5s left, 0.3s scale;
    z-index: 10;
}

#news .article_btn:hover,
#blog .article_btn:hover {
    background-color: #840115;
    scale: 1.05;
}

#news .article_btn:hover::before,
#blog .article_btn:hover::before {
    width: 7.5%;
    height: 3px;
    left: 7.5%;
}

#news .pagenation,
#blog .pagenation {
    padding: 30px 0 0;
    text-align: center;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
}

#news .pagenation .page-numbers,
#blog .pagenation .page-numbers {
    display: inline-block;
    width: 25px;
    padding: 7.5px 0px 2.5px;
    font-weight: 500;
    font-family: "M PLUS Rounded 1c", sans-serif;
    margin: 0 5px;
}

#news .pagenation .page-numbers:not(.dots),
#blog .pagenation .page-numbers:not(.dots) {
    color: #aaa;
    border: 0px solid #000;
    font-weight: 800;
}

#news .pagenation .page-numbers.current,
#blog .pagenation .page-numbers.current {
    color: #701523;
    border-bottom: 2px solid #701523;
}

#news .pagenation .prev,
#news .pagenation .next,
#blog .pagenation .prev,
#blog .pagenation .next {
    width: 25px;
    padding: 7.5px 0px;
    position: relative;
}

#news .pagenation .prev::after,
#news .pagenation .next::after,
#blog .pagenation .prev::after,
#blog .pagenation .next::after {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    font-family: "icomoon";
    color: #aaa;
    position: absolute;
    font-size: 2rem;
    font-weight: 500;
    font-weight: 800;
}

#news .pagenation .prev::after,
#blog .pagenation .prev::after {
    content: "\f0141";
}

#news .pagenation .next::after,
#blog .pagenation .next::after {
    content: "\f0142";
}

#document .sec {
    overflow: hidden;
}

#document .sec_head {
    display: block;
    text-align: center;
    margin-bottom: 30px;
}

#document .sec_lists {
    max-width: 1024px;
    margin: 0 auto;
}

#document .sec_lists li:not(:last-child) {
    margin-bottom: 12.5px;
}

#document .sec_lists li:hover a::after {
    right: 15px;
}

#document .sec_lists li a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 17.5px 40px 17.5px 20px;
    border: 1px solid #ddd;
    width: 100%;
    border-radius: 50px;
    position: relative;
}

@media (max-width: 840px) {
    #document .sec_lists li a {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-align: start;
        -webkit-align-items: flex-start;
        -ms-flex-align: start;
        align-items: flex-start;
    }
}

#document .sec_lists li a::after {
    content: "\f0142";
    font-family: "icomoon";
    font-weight: 900;
    position: absolute;
    top: 50%;
    right: 20px;
    -webkit-transform: translate(0, -50%);
    transform: translate(0, -50%);
    -webkit-transition: 0.5s right;
    transition: 0.5s right;
    font-size: 1.4rem;
    color: #701523;
}

#document .sec_lists li a .category {
    background-color: #701523;
    color: #fff;
    font-size: 1.4rem;
    display: inline-block;
    padding: 0 15px;
    border-radius: 50px;
    margin-right: 10px;
}

@media (max-width: 840px) {
    #document .sec_lists li a .category {
        margin-bottom: 5px;
    }
}

#document .sec_lists li a .ttl {
    padding-left: 5px;
}

#document .sec_lists li a .ttl::after {
    content: "\f0224";
    font-family: "icomoon";
    padding-left: 5px;
}

#contact .form_info {
    background-color: rgba(241, 216, 215, 0.7);
    padding: 20px 30px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    border-radius: min(2vw,10px);
    max-width: 540px;
    margin: 0 auto;
}

#contact .form_info .tel {
    font-size: clamp(2.8rem, 3.6vw, 3.2rem);
    line-height: 1.6;
    font-weight: 800;
    font-family: "M PLUS Rounded 1c", sans-serif;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

#contact .form_info .tel::before {
    content: "";
    background-image: url(../img/00_common/tel.png);
    background-position: center center;
    background-size: contain;
    background-repeat: no-repeat;
    width: 35px;
    height: 35px;
    display: inline-block;
    margin-right: 5px;
}

#contact .form_info .fax {
    margin-top: -5px;
}

#contact .form_info .fax::before {
    content: "\f1786";
    font-family: "icomoon";
    color: #701523;
    margin-right: 3px;
}

#contact .form_info .time {
    font-size: 1.4rem;
}

#contact .form_head {
    max-width: 840px;
    margin: clamp(30px, 7vw, 50px) auto 0;
}

#contact .form_content {
    max-width: 840px;
    margin: clamp(30px, 7vw, 50px) auto 0;
}

#contact .form_list {
    border-top: 1px dotted #701523;
    padding: 12.5px 0px;
}

#contact .form_list:last-child {
    border-bottom: 1px dotted #701523;
}

#contact .form_list label {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    display: block;
    color: #701523;
    font-weight: 900;
    margin-bottom: 7.5px;
}

#contact .form_list label.-required::after {
    content: "必須";
    color: #fff;
    background-color: #701523;
    font-size: 1.2rem;
    padding: 0px 12.5px 2.5px;
    border-radius: 15px;
    margin-left: 5px;
    margin-bottom: 2.5px;
}

@media screen and (max-width: 840px) {
    #contact .form_list label {
        text-align: left;
    }
}

#contact .form_list input {
    padding-left: 5px;
    color: #444;
    background-color: #f5f5f5;
    border-radius: 5px;
    border: none;
    height: 45px;
    width: 100%;
}

#contact .form_list input#c_name_01, #contact .form_list input#c_name_02, #contact .form_list input#c_birth, #contact .form_list input#c_graduation, #contact .form_list input#c_tel {
    width: 400px;
    max-width: 100%;
}

#contact .form_list .form_radio li {
    border: none;
    padding: 0;
}

#contact .form_list .form_radio li input {
    width: auto;
    margin-right: 5px;
    margin-bottom: 5px;
    height: auto;
    display: inline-block;
    position: relative;
    top: 1px;
}

#contact .form_list .form_radio li input[type="radio"] {
    accent-color: #701523;
}

#contact .form_list .form_radio li label {
    display: inline-block;
    color: #444;
    margin-bottom: 5px;
    font-weight: normal;
}

#contact .form_list .form_radio li .hidden {
    display: none;
}

#contact .form_list .form_radio li #elementToShow {
    width: 100%;
}

#contact .form_list .form_entry {
    background-color: #faf2f4;
    margin: 2.5px 0 5px 20px;
    border-radius: 5px;
    padding: 15px 15px 25px;
    width: 640px !important;
    position: relative;
}

#contact .form_list .form_entry::before {
    content: "";
    position: absolute;
    top: -17.5px;
    left: 5%;
    margin-left: -10px;
    border: 10px solid transparent;
    border-bottom: 15px solid #faf2f4;
}

@media (max-width: 840px) {
    #contact .form_list .form_entry {
        width: calc(100% - 20px) !important;
    }
}

#contact .form_list .form_entry label {
    display: block !important;
}

#contact .form_list .form_entry input {
    width: 100% !important;
    height: 45px !important;
    padding-left: 5px !important;
    color: #444 !important;
    background-color: #fff;
}

#contact .form_list .form_entry a {
    display: block;
    width: 240px;
    max-width: 100%;
    margin: 30px auto 0;
    background-color: #701523;
    color: #fff;
    text-align: center;
    padding: 12.5px 30px 15px;
    border-radius: 50px;
    position: relative;
    z-index: 10;
    width: 180px;
    font-size: 1.2rem;
    padding: 7.5px 30px 7.5px;
    margin: 10px 0 0;
}

#contact .form_list .form_entry a::before {
    position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 20px;
    background-color: #f9e502;
    left: 87.5%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-transition: 0.5s width,0.5s height,0.5s left,0.2s scale;
    transition: 0.5s width,0.5s height,0.5s left,0.2s scale;
    z-index: 10;
}

#contact .form_list .form_entry a:hover {
    background-color: #840115;
    scale: 1.075;
}

#contact .form_list .form_entry a:hover::before {
    width: 7.5%;
    height: 3px;
    left: 92.5%;
}

@media screen and (max-width: 840px) {
    #contact .form_list .form_address {
        width: 100%;
    }
}

#contact .form_list .form_address li {
    border: none;
    padding: 0;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

#contact .form_list .form_address li:nth-child(1) {
    margin-bottom: 12.5px;
}

@media screen and (max-width: 840px) {
    #contact .form_list .form_address li:nth-child(1) {
        margin-bottom: 5px;
    }
}

@media screen and (max-width: 840px) {
    #contact .form_list .form_address li {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
        line-height: 1;
    }
}

#contact .form_list .form_address li input {
    margin-right: 5px;
    margin-bottom: -2px;
}

@media screen and (max-width: 840px) {
    #contact .form_list .form_address li input {
        margin-bottom: 5px;
    }
}

#contact .form_list .form_address li input#c_address_01_01, #contact .form_list .form_address li input#c_address_02_01 {
    height: 45px;
    padding-left: 5px;
    color: #444;
    background-color: #f5f5f5;
    border: none;
    width: 150px;
}

#contact .form_list .form_address li textarea#c_address_01_02, #contact .form_list .form_address li textarea#c_address_02_02 {
    height: 45px;
    padding: 10px 5px 5px;
    color: #444;
    background-color: #f5f5f5;
    border: none;
    width: 100%;
    line-height: 1.6;
    resize: vertical;
    border-radius: 5px;
}

#contact .form_list .form_address li label {
    width: auto;
    color: #aaa;
    margin-right: 5px;
    padding: 5px 0 0;
}

#contact .form_list textarea {
    width: 100%;
    height: 300px;
    resize: vertical;
    padding: 5px 5px;
    background-color: #f5f5f5;
    border: none;
    border-radius: 5px;
}

@media screen and (max-width: 840px) {
    #contact .form_list textarea {
        width: 100%;
    }
}

#contact .form input[type="radio"],
#contact .form input[type="checkbox"],
#contact .form input[type="submit"] {
    accent-color: #701523;
}

#contact .form_agree {
    margin-top: 30px;
}

#contact .form_agree_check {
    margin-top: 15px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

#contact .form_agree_check #agree {
    margin-right: 10px;
}

#contact .form_privacy {
    display: inline-block;
    border-bottom: 1px solid #aaa;
    line-height: 1;
}

#contact .form_privacy::after {
    content: "\f0327";
    font-family: "icomoon";
    padding-right: 5px;
    font-size: 2rem;
    font-weight: 500;
    vertical-align: -2.5px;
}

#contact .form_privacy:hover {
    opacity: 0.7;
}

#contact .form_btn {
    border: none;
    background-color: #ddd;
    -webkit-transition: 0.5s;
    transition: 0.5s;
    -webkit-transition-property: color, background-color;
    transition-property: color, background-color;
    margin: 30px auto;
    display: block;
    width: 240px;
    color: #fff;
    text-align: center;
    padding: 12.5px 30px 15px;
    border-radius: 50px;
    position: relative;
    max-width: 100%;
}

#contact .form_btn::before {
    position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 20px;
    background-color: #fff;
    left: 87.5%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-transition: 0.5s width, 0.5s height, 0.5s left;
    transition: 0.5s width, 0.5s height, 0.5s left;
    z-index: 10;
    background-color: #ddd;
}

#contact .form_btn.-active {
    -webkit-transition: 0.5s;
    transition: 0.5s;
    -webkit-transition-property: color, background-color;
    transition-property: color, background-color;
    color: #fff;
    background-color: #701523;
}

#contact .form_btn.-active::before {
    background-color: #fff;
}

#contact .form_btn.-active:hover {
    background-color: #840115;
}

#contact .form_btn.-active:hover::before {
    width: 7.5%;
    height: 3px;
    left: 92.5%;
}

#policy .sec_head {
    max-width: 1024px;
    margin: 0 auto;
}

#policy .sec_lists {
    max-width: 1024px;
    margin: 30px auto 0;
}

#policy .sec_lists li:not(:last-child) {
    margin-bottom: 35px;
}

#policy .sec_lists li h2 {
    display: block;
    font-size: clamp(2.4rem, 3vw, 2.6rem);
    font-family: "M PLUS Rounded 1c", sans-serif;
    line-height: 1.6;
    font-weight: 700;
    color: #4d4d4d;
    margin-bottom: 5px;
}

#error .sec,
#thanks .sec {
    margin-top: 0;
    padding-top: clamp(160px, 16vw, 250px);
}

#error .sec h2,
#thanks .sec h2 {
    font-size: clamp(2.4rem, 3vw, 2.6rem);
    font-family: "M PLUS Rounded 1c", sans-serif;
    line-height: 1.6;
    font-weight: 700;
    color: #701523;
    margin-bottom: 15px;
    text-align: center;
}

#error .sec p,
#thanks .sec p {
    text-align: center;
}

#error .sec_btn,
#thanks .sec_btn {
    display: block;
    width: 240px;
    max-width: 100%;
    margin: 30px auto 0;
    background-color: #701523;
    color: #fff;
    text-align: center;
    padding: 12.5px 30px 15px;
    border-radius: 50px;
    position: relative;
    z-index: 10;
}

#error .sec_btn::before,
#thanks .sec_btn::before {
    position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 20px;
    background-color: #f9e502;
    left: 87.5%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-transition: 0.5s width,0.5s height,0.5s left,0.2s scale;
    transition: 0.5s width,0.5s height,0.5s left,0.2s scale;
    z-index: 10;
}

#error .sec_btn:hover,
#thanks .sec_btn:hover {
    background-color: #840115;
    scale: 1.075;
}

#error .sec_btn:hover::before,
#thanks .sec_btn:hover::before {
    width: 7.5%;
    height: 3px;
    left: 92.5%;
}

/* CSS */
.txtanim {
    opacity: 0;
    -webkit-filter: blur(4px);
    filter: blur(4px);
    -webkit-transition: opacity 1s, -webkit-filter 1s;
    transition: opacity 1s, -webkit-filter 1s;
    transition: opacity 1s, filter 1s;
    transition: opacity 1s, filter 1s, -webkit-filter 1s;
    white-space: pre-line;
    display: inline-block;
    color: #701523;
    font-size: clamp(2.8rem, 3.6vw, 3.2rem);
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 800;
    line-height: 1.6;
    margin-bottom: 0px;
    position: relative;
    text-align: justify;
}

.txtanim.animated {
    opacity: 1;
    -webkit-filter: blur(0);
    filter: blur(0);
    -webkit-transition: opacity 1s, -webkit-filter 1s;
    transition: opacity 1s, -webkit-filter 1s;
    transition: opacity 1s, filter 1s;
    transition: opacity 1s, filter 1s, -webkit-filter 1s;
}

.scroll {
    visibility: hidden;
}
