@charset "utf-8";


.main_area {
    width: 100%;
    height: 100%;
    position: relative;
}

.main_area>div {
    position: relative;
    width: 100%;
}

.main_area .main_slide {
    width: 80%;
    max-width: 1000px;
    margin: auto;
}

.main_area .bg_circle li:nth-of-type(1) {
    width: 8%;
    top: 20%;
    left: 2%;
}

.main_area .bg_circle li:nth-of-type(2) {
    width: 12%;
    bottom: 9%;
    left: 8%;
}

.main_area .bg_circle li:nth-of-type(3) {
    width: 13%;
    top: 0%;
    right: 8%;
}

.main_area .bg_circle li:nth-of-type(4) {
    width: 6%;
    top: 30%;
    right: 3%;
}

.main_area .bg_circle li:nth-of-type(5) {
    width: 9%;
    bottom: 0;
    right: 14%;
}





.front_link .list {
    gap: 2em clamp(1.5em, 3vw, 3em);
    font-size: 80%;
}

.front_link .list li.more01 {
    width: calc((100% - clamp(3em, 6vw, 6em)) / 3);
    max-width: 540px;
    margin: auto;
}

.front_link .list li.more01:nth-of-type(2) {
    margin-top: 3em;
}

.front_link .list li.more01 a {
    line-height: 1.4;
}

section h2 {
    font-size: 300%;
    margin-bottom: 1em;
    font-weight: 900;
}

section h3 {
    font-size: 200%;
    margin-bottom: 1.5em;
    font-weight: 700;
}

@media(max-width: 799px) {
    .front_link .list {
        font-size: 90%;
        gap: 2em 0;
        width: 90%;
        max-width: 400px;
        margin-inline: auto;
    }

    .front_link .list li.more01 {
        width: 100%;
    }

    .front_link .list li.more01:nth-of-type(2) {
        margin-top: 0;
    }

    section h2 {
        font-size: 250%;
    }

    section h3 {
        font-size: 180%;
    }
}

@media(max-width: 599px) {
    .main_area {
        margin-bottom: 1.5em
    }

    .main_area .main_slide {
        width: 100%;
    }

    .front_link .list {
        font-size: 70%;
        gap: 2em 0;
    }

    .front_link .list li.more01 a {
        padding-block: 1.25em;
    }

    section h2 {
        font-size: 200%;
    }

    section h3 {
        font-size: 150%;
    }
}





.front_post .flex>div {
    display: flex;
    flex-direction: column;
}

.front_post .post_common {
    background: #fff;
    border-radius: var(--br30);
    padding: 3em 2.5em;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.front_post .post_common>ul {
    flex-grow: 1
}

.front_post .front_news {
    width: 35%;
}

.front_post .front_blog {
    width: 62%;
}

.front_post h2 {
    position: relative;
}

.front_post h2 img {
    display: block
}

.front_post .front_news h2 {
    height: 2.5em;
    max-width: 380px;
    width: 90%;
    margin: 0 auto -.5em;
    gap: 3%;
}

.front_post .front_news h2 .img_area {
    width: 35%;
}

.front_post .front_news h2 .txt_area {
    width: 62%;
}

.front_post .front_blog h2 {
    height: 2.5em;
    max-width: 680px;
    width: 90%;
    margin: 0 auto -.5em;
}

.front_post .front_blog h2 .img_area {
    width: 18%;
}

.front_post .front_blog h2 .txt_area {
    width: 82%;
}


.news_list li {
    border-bottom: 1px solid var(--c_line);
    padding-bottom: 1.25em;
}

.news_list li:not(:last-child) {
    margin-bottom: 1.25em;
}

.news_list li .thumb {
    display: none;
}

.news_list li .thumb img {
    object-fit: cover;
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 4;
}
.news_list li .comment {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
    line-height: 1.6;
}
.news_list li .blog_text .day {
    margin-bottom: .25em;
}

.blog_list {
    gap: 2em;
}

.blog_list li {
    width: calc((100% - 4em) / 3);
}

.blog_list li .thumb {
    margin-bottom: 1em;
}

.blog_list li .thumb img {
    object-fit: cover;
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 4;
    border-radius: var(--br10);
    border: solid 1px #ccc;
}
.blog_list li .comment {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
    line-height: 1.6;
}
.blog_list .blog_box {
    display: flex;
    flex-direction: column-reverse;
}
.blog_list li .day {
    order: 2;
    width: 100%;
}

.blog_list li dl {
    order: 1;
    width: 100%;
}

.front_post .front_news .more02 a {
    background: var(--c_yel);
}

.front_post .front_blog .more02 a {
    background: var(--c_pink);
}

@media (max-width: 1299px) {
    .blog_list {
        gap: 1.5em;
    }

    .blog_list li {
        width: calc((100% - 1.5em) / 2);
    }

    .blog_list li .thumb img {
        aspect-ratio: 5 / 3;
    }

    .blog_list li .thumb {
        margin-bottom: .5em;
    }
}

@media (max-width: 1099px) {
    .front_post .post_common {
        padding: 2.5em 1.75em;
    }
}

@media (max-width: 799px) {

    .front_post .front_news::before,
    .front_post .front_news::after {
        content: "";
        display: block;
    }

    .front_post .front_news::before {
        background: url(../images/common/ilst_person01.png) no-repeat center center;
        background-size: contain;
        width: clamp(120px, 28vw, 174px);
        margin: 0 auto 2em;
        aspect-ratio: 29 / 21;
    }

    .front_post .front_news::after {
        background: url(../images/common/ilst_person02.png) no-repeat center center;
        background-size: contain;
        width: clamp(100px, 24vw, 140px);
        margin: 2em auto 0;
        aspect-ratio: 70 / 89;
    }

    .front_post .front_news,
    .front_post .front_blog {
        width: 100%;
    }

    .front_post .front_news {
        margin-bottom: 3em
    }

    .front_post .post_common {
        padding: 2em clamp(1em, 8vw, 3em);
    }

    .front_post .front_news h2,
    .front_post .front_blog h2 {
        height: auto;
    }
}

@media (max-width: 599px) {
    .front_post .front_blog h2 .img_area {
        width: 25%;
    }

    .front_post .front_blog h2 .txt_area {
        width: 75%;
    }

    .blog_list {
        gap: 1.25em 0;
    }

    .blog_list li {
        width: 100%;
    }

    .blog_list li a {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
                flex-wrap: wrap;
    }

    .blog_list li a .thumb {
        width: 30%;
        margin-bottom: 0;
    }

    .blog_list li a .blog_box {
        width: 64%;
    }
}









.front_guidance h3::after {
    content: "";
    display: block;
    background: url(../images/common/logo_ilst.png) no-repeat center center;
    background-size: contain;
    width: 22vw;
    max-width: 200px;
    margin: 1.5em auto 0;
    aspect-ratio: 80 / 81;
}

.front_guidance .list {
    gap: clamp(1em, 3vw, 2em);
    font-size: 150%;
}

.front_guidance .list li {
    width: 14em;
    max-width: calc((100% - clamp(3em, 9vw, 6em)) / 4);
    aspect-ratio: 1 / 1;
    display: flex;
    justify-content: center;
    align-items: center;
}

.front_guidance .list li:nth-of-type(1) {
    background: url(../images/front/front_about_img01.png) no-repeat center center;
    background-size: cover;
}

.front_guidance .list li:nth-of-type(2) {
    background: url(../images/front/front_about_img02.png) no-repeat center center;
    background-size: cover;
}

.front_guidance .list li:nth-of-type(3) {
    background: url(../images/front/front_about_img03.png) no-repeat center center;
    background-size: cover;
}

.front_guidance .list li:nth-of-type(4) {
    background: url(../images/front/front_about_img04.png) no-repeat center center;
    background-size: cover;
}

.front_guidance .list li a {
    color: #fff;
    text-align: center;
    font-weight: 800;
}

.front_guidance .bnr {
    width: 100%;
    max-width: 600px;
    margin: auto;
}

@media (max-width: 799px) {
    .front_guidance h2::before {
        content: "";
        display: block;
        background: url(../images/common/logo_ilst.png) no-repeat center center;
        background-size: contain;
        width: 30vw;
        max-width: 180px;
        margin: 0 auto 1em;
        aspect-ratio: 80 / 81;
    }

    .front_guidance h3::after {
        display: none;
    }

    .front_guidance .list {
        gap: 1.5em;
    }

    .front_guidance .list li {
        max-width: calc((100% - 1.5em) / 2);
        width: 12em;
    }
}

@media (max-width: 599px) {
    .front_guidance .list {
        gap: 1em;
        font-size: 130%;
    }

    .front_guidance .list li {
        max-width: calc((100% - 1em) / 2);
        width: 10em;
    }
}








.front_facility .img_area {
    width: 50%;
}

.front_facility .txt_area {
    width: 44%;
}

.front_facility .txt_area .txt_link {
    margin-bottom: .5em;
}

.front_facility .txt_area .txt_link a {
    text-decoration: underline;
    color: var(--c_blue);
}

.front_facility .txt_area .img_link {
    width: 70%;
    max-width: 251px;
}

.front_facility .txt_area .img_link img {
    border-radius: var(--br10);
}

.front_facility .gmap {
    padding-bottom: 30%;
    border: 1px solid var(--c_line);
}

.front_facility .box02 {
    padding: 3em 4em;
    border-radius: var(--br30);
}

.front_facility .left_area {
    width: 44%;
}

.front_facility .right_area {
    width: 50%;
}

.front_facility .box02 li:not(:last-child) {
    margin-bottom: 1.5em;
}

.front_facility .box02 figure {
    display: flex;
}

.front_facility .box02 .right_area img {
    width: 40%;
    border-radius: 10px;
    margin-right: 6%;
}

.front_facility .box02 .right_area li:nth-of-type(1) img {
    border: 1px solid #707070;
}

.front_facility .box02 figcaption {
    width: fit-content;
    font-size: 150%;
    color: var(--c_blue);
    font-weight: 700;
}

.front_facility .box02 figcaption.arrow::before,
.front_facility .box02 figcaption.arrow::after {
    border-color: transparent transparent transparent var(--c_blue);
    border-width: .35em 0 .35em .5em;
}

.front_facility .box02 figcaption.arrow::before {
    right: calc(-.5em - 1em);
}

.front_facility .box02 figcaption.arrow::after {
    right: -1em;
}

@media (max-width: 799px) {

    .front_facility .img_area,
    .front_facility .txt_area {
        width: 100%;
    }

    .front_facility .img_area {
        width: 80%;
        margin-bottom: 1.5em
    }

    .front_facility .list_line dl dt {
        position: relative;
        padding-left: 1.5em
    }

    .front_facility .list_line dl dt::before {
        content: "";
        background: var(--c_blue);
        width: 1em;
        aspect-ratio: 1 / 1;
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
    }

    .front_facility .gmap {
        padding-bottom: 90vw;
    }

    .front_facility .box02 {
        padding: 2.5em 2.25em;
    }

    .front_facility .left_area,
    .front_facility .right_area {
        width: 100%;
    }

    .front_facility .left_area {
        margin-bottom: 2em
    }

    .front_facility .left_area .img {
        width: 80%;
        margin-inline: auto;
    }
}

@media (max-width: 599px) {
    .front_facility .box02 {
        padding: 1.75em 1.25em;
    }

    .front_facility .box02 .right_area img {
        width: 36%;
        margin-right: 4%
    }

    .front_facility .box02 figcaption {
        font-size: 110%;
    }
}







.front_houjin h3 {
    position: relative;
    z-index: 0;
}

.front_houjin h3::after {
    content: "";
    background: url(../images/front/front_houjin_ilst01.png) no-repeat center center;
    background-size: contain;
    width: clamp(80px, 10vw, 137px);
    position: absolute;
    bottom: 0;
    right: 0;
    aspect-ratio: 137 / 172;
    z-index: -1;
}

.front_houjin .img {
    width: 90%;
    max-width: 750px;
    margin: 0 auto;
}

.front_houjin li {
    width: calc(100% / 3 - 2em);
}

.front_houjin li a {
    background: var(--c_gren);
    border-radius: 6em;
}

.front_houjin .more02 a.t_blank::after {
    right: 1em;
}

.front_houjin .box02 {
    padding: 3em 4em;
    border-radius: var(--br30);
}

.front_houjin .flex>div {
    width: calc(50% - clamp(1em, 2vw, 2em));
}

.front_houjin .box02 .more02 {
    margin-left: 0;
}

@media (max-width: 1099px) {
    .front_houjin h3::after {
        bottom: 1.5em;
        right: -1.5em;
    }
}

@media (max-width: 799px) {
    .front_houjin h3::after {
        width: clamp(80px, 20vw, 137px);
    }

    .front_houjin .img {
        width: 80%;
        margin-bottom: 2em
    }

    .front_houjin ul {
        gap: 1em;
    }

    .front_houjin li {
        width: clamp(20em, calc(50% - .5em), 360px);
        margin: 0;
    }

    .front_houjin .box02 {
        padding: 1.75em 2.5em;
    }

    .front_houjin .flex>.txt_area {
        width: 100%;
    }

    .front_houjin .flex>.img_area {
        display: none;
    }

    .front_houjin .box02 .more02 {
        margin-left: auto;
    }
}

@media (max-width: 599px) {
    .front_houjin .box02 {
        padding: 1.25em 1.75em;
    }

    .front_houjin h3::after {
        min-width: 86px;
    }

    .front_houjin .more02 a {
        font-size: 120%;
    }
}