@charset "utf-8";

/* ------------------------------
 メインビジュアル（PC）
------------------------------ */
.mainBlock {
    position: relative;
    z-index: 1;
    width: 95%;
    height: auto;
    max-width: 1820px;
    margin: 0 auto;
    overflow: hidden;
}
/* -- 動画・スライド -- */
.mainBlock .movie,
.mainBlock .mainSwiper {
    position: relative;
    width: 100%;
    height: calc(100svh - 155px);
    border-radius: 30px;
    overflow: hidden;
}
.mainBlock .mainSwiper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* 動画リードテキスト */
.mainBlock figure {
    position: absolute;
    height: auto;
    z-index: 1;
}
/* ページネーション
.mainSwiper .swiper-pagination-bullets.swiper-pagination-horizontal {
	display: block;
	width: auto;
	height: 35px;
	bottom: 20px;
	left: 30px;
}
.mainSwiper .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
	background-color: #a1c3d1;
	margin: 0 3px;
	opacity: 1;
}
.mainSwiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
	background-color: #007a46;
}
*/
/* -- 重要なお知らせ -- */
.important .newsBox {
    position: relative;
}
.important .newsBox h2 {
    position: relative;
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 500;
    color: #fff;
    letter-spacing: 0.020em;
    background-color: #d64040;
    border-radius: 13px 13px 0 0;
    padding: 10px 25px 8px 47px;
    margin-bottom: 0;
}
.important .newsBox h2::before {
    content: "";
    position: absolute;
    width: 24px;
    height: 20px;
    background: url(../img/icon_news_important.svg) no-repeat center / cover;
    top: 12px;
    left: 20px;
}
.important .newsBox ul {
    border-top: dotted 1px #d64040;
    margin-top: -1px;
    padding-top: 15px;
}
.important .newsBox ul li {
    display: flex;
    align-items: center;
    gap: 10px;
}
.important .newsBox ul li:not(:last-child) {
    margin-bottom: 8px;
}
.important .newsBox .icon-link {
    position: absolute;
    top: 5px;
    right: 0;
}
.important .newsBox .icon-link a {
    position: relative;
    font-size: 1.8rem;
}
.important .newsBox .icon-link a::after {
    content: "";
    display: inline-block;
    width: 15px;
    height: 15px;
    background: url(../img/icon_list_important.svg) no-repeat center / cover;
    vertical-align: middle;
    margin-bottom: 3px;
    margin-left: 5px;
}
@media print, screen and (min-width: 768px) {
    /* 動画リードテキスト */
    .mainBlock .movie figure {
        width: 45%;
        left: 2%;
        bottom: 25px;
    }
    /* -- 重要なお知らせ -- */
    .important {
        position: absolute;
        width: 685px;
        max-width: 50%;
        min-height: 125px;
        background-color: #F6F9FA;
        border-radius: 30px 0 0 0;
        padding: 45px 1px 1px 45px;
        right: -1px;
        bottom: -1px;
        z-index: 1;
        filter: drop-shadow(0px 0px 10px rgb(23 145 188 / 15%));
    }
    .important::before,
    .important::after {
        content: "";
        width: 60px;
        height: 60px;
        background: transparent;
        position: absolute;
        border-radius: 30px;
        box-shadow: 30px 30px 0 0 #F6F9FA;
        right: 0;
        bottom: 100%;
        overflow: hidden;
        z-index: -1;
    }
    .important::after {
        left: -60px;
        bottom: 0;
    }
}
@media print, screen and (min-width: 1540px) {
    /* 動画リードテキスト */
    .mainBlock .movie figure {
        width: 48.6%;
        left: 80px;
        bottom: 70px;
    }
}
/* ------------------------------
 メインビジュアル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    .mainBlock {
        z-index: 2;
        width: 100%;
        max-width: unset;
        overflow: visible;
    }
    /* -- 動画・スライド -- */
    .mainBlock .movie,
    .mainBlock .mainSwiper {
        width: 95%;
        height: calc(100svh - 70px);
        border-radius: 20px;
        margin: 0 auto 50px;
    }
    /* 動画リードテキスト */
    .mainBlock figure {
        width: 95%;
        left: 0;
        right: 0;
        bottom: 3%;
        margin: auto;
    }
    /* ページネーション
    .mainSwiper .swiper-pagination-bullets.swiper-pagination-horizontal {
        bottom: 10px;
        left: 5%;
    }
    */
    /* -- 重要なお知らせ -- */
    .important {
        width: 90%;
        margin: 0 auto;
    }
    .important .newsBox h2 {
        padding: 7px 10px 6px 33px;
    }
    .important .newsBox h2::before {
        width: 22px;
        height: 18px;
        top: 9px;
        left: 8px;
    }
    .important .newsBox ul {
        padding-top: 10px;
    }
    .important .newsBox .icon-link a {
        font-size: 1.7rem;
    }
}
/* ------------------------------
 見出し・テキスト（PC）
------------------------------ */
/* -- h2 -- */
.contentsHome h2 {
    font-size: 4.8rem;
    text-align: center;
    letter-spacing: 0;
    margin-bottom: 45px;
}
.contentsHome h2 span {
    position: relative;
    display: block;
    width: fit-content;
    font-family: "Barlow", sans-serif;
    font-size: 1.7rem;
    font-weight: 600;
    color: #007a46;
    line-height: 1;
    letter-spacing: 0.030em;
    padding-left: 18px;
    margin: 0 auto 10px;
    
}
.contentsHome h2 span::before {
    content: "";
    position: absolute;
    width: 11px;
    height: 11px;
    background: url(../img/icon_h1.svg) no-repeat center / cover;
    left: 0;
    top: 0.2em;
}
/* -- h3 -- */
.contentsHome h3 {
	font-size: 2.8rem;
	margin-bottom: 25px;
}
.contentsHome h3::before {
	content: "";
	position: absolute;
	display: block;
	width: 80px;
	height: 5px;
	background: rgb(87,227,27);
	background: linear-gradient(90deg, rgba(87,227,27,1) 0%, rgba(0,176,138,1) 100%);
	border-radius: 0 5px 0 0;
	left: 0;
	bottom: 0;
}
.contentsHome h3::after {
	content: "";
	display: block;
	width: 100%;
	height: 0px;
	border-bottom: dotted 1px #A1C3D1;
	margin-top: 15px;
}
/* ------------------------------
 見出し・テキスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    /* -- h2 -- */
    .contentsHome h2 {
        font-size: 3.5rem;
        margin-bottom: 30px;
    }
    .contentsHome h2 span {
        font-size: 1.2rem;
        padding-left: 12px;
        margin-bottom: 5px;
    }
    .contentsHome h2 span::before {
        width: 9px;
        height: 9px;
        top: 0.15em;
    }
	/* -- h3 -- */
	.contentsHome h3 {
		font-size: 2.1rem;
		margin-bottom: 15px;
	}
}
/* ------------------------------
 ご利用案内（PC）
------------------------------ */
.guideBlock {
    position: relative;
    z-index: 1;
    padding: 120px 0 130px;
}
.guideBlock::before,
.careBlock::before,
.blogBlock::before {
    content: "";
    position: absolute;
    width: 880px;
    height: 618px;
    background: url(../../img/top_pattern_left.png) no-repeat center / cover;
    bottom: 93px;
    left: 0;
    z-index: -1;
}
.guideBlock::after,
.careBlock::after,
.blogBlock::after {
    content: "";
    position: absolute;
    width: 890px;
    height: 751px;
    background: url(../../img/top_pattern_right.png) no-repeat center / cover;
    bottom: 27px;
    right: 0;
    z-index: -1;
}
.receptionBox {
    position: relative;
    padding: 60px 80px 120px;
    margin-bottom: 105px;
}
.receptionBox .reception {
    font-size: 2.3rem;
}
.receptionBox .reception.time,
.receptionBox .reception.tel {
    display: flex;
    align-items: center;
    margin-bottom: 5px;
}
.receptionBox .reception.time span,
.receptionBox .reception.tel span {
    font-size: 5.0rem;
    color: #007a46;
    line-height: 1;
    margin-bottom: 3px;
}
.receptionBox span {
    font-family: "Barlow", sans-serif;
    font-weight: 500;
}
.searchBtn {
    width: fit-content;
    position: absolute;
    left: 0;
    right: 0;
    bottom: -53px;
    margin: auto;
}
.searchBtn a {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 552px;
    height: 110px;
    font-size: 2.8rem;
    font-weight: 500;
    background-color: #fff;
    border-radius: 60px;
    box-shadow: rgba(23, 145, 188, .15) 0 0 8px 0;
}
.searchBtn a::before {
    content: "";
    display: inline-block;
    width: 42px;
    height: 42px;
    background: url(../img/icon_search_btn.svg) no-repeat center / cover;
    vertical-align: middle;
    margin-right: 10px;
}
.guidanceLink {
    display: flex;
    flex-flow: row wrap;
    gap: 15px 3.158%;
}
.guidanceLink li a {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    height: 100%;
    background-color: #fff;
    border-radius: 20px;
    padding: 45px 0 40px;
    box-shadow: rgba(23, 145, 188, .15) 0 0 8px 0;
}
.guidanceLink li a figure {
    width: 83px;
    height: 83px;
    margin-bottom: 10px;
}
.guidanceLink li a p {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-grow: 1;
    font-size: 2.8rem;
    font-weight: 500;
    line-height: 1.3;
    text-align: center;
}
@media print, screen and (min-width: 768px) {
    .guideBlock .inBlock,
    .careBlock .inBlock h2 {
        position: relative;
        z-index: 1;
    }
    .guideBlock .inBlock::before,
    .careBlock .inBlock h2::before {
        content: "";
        position: absolute;
        width: 278px;
        height: 220px;
        z-index: -1;
    }
    .guideBlock .inBlock::before {
        background: url(../../img/top_pattern_right_mini.png) no-repeat center / cover;
        top: -100px;
        right: -310px;
    }
    .receptionBox {
        display: flex;
        justify-content: space-between;
    }
    .receptionBox .reception.time span {
        margin: 0 5px;
    }
	.guidanceLink li {
		width: 22.632%;
	}
}
/* ------------------------------
 ご利用案内（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    .guideBlock {
        padding: 50px 0 75px;
    }
    .guideBlock::before,
    .careBlock::before,
    .blogBlock::before {
        width: 100%;
        min-height: 420px;
        height: auto;
        background: url(../../img/top_pattern_sp_01.png) no-repeat center / cover;
        top: -215px;
        left: 0;
        right: 0;
        bottom: auto;
        margin: auto;
    }
    .guideBlock::after,
    .careBlock::after,
    .blogBlock::after {
        width: 100%;
        height: 300px;
        background: url(../../img/top_pattern_sp_02.png) no-repeat center / cover;
        bottom: -25px;
        right: 0;
        left: 0;
        margin: auto;
    }
    .receptionBox {
        padding: 40px 5% 80px;
        margin-bottom: 80px;
    }
    .receptionBox .reception {
        font-size: 1.6rem;
    }
    .receptionBox .reception.time span,
    .receptionBox .reception.tel span {
        font-size: 3.2rem;
    }
    .searchBtn {
        width: 80%;
        bottom: -35px;
    }
    .searchBtn a {
        width: 100%;
        height: 80px;
        font-size: 2.0rem;
        border-radius: 60px;
    }
    .searchBtn a::before {
        width: 30px;
        height: 30px;
        margin-right: 5px;
    }
    .guidanceLink {
        gap: 15px 5.5%;
    }
    .guidanceLink li {
		width: 47.25%;
    }
    .guidanceLink li a {
        border-radius: 15px;
        padding: 20px 0;
    }
    .guidanceLink li a figure {
        width: 63px;
        height: 63px;
        margin-bottom: 5px;
    }
    .guidanceLink li a p {
        font-size: 2.0rem;
    }
}
/* ------------------------------
 お知らせ・イベント・ブログ（PC）
------------------------------ */
.postBlock {
    position: relative;
}
/* -- タグ絞り込み -- */
.postBlock input {
    display: none;
}
.tagBtnBox {
    display: flex;
    flex-flow: row wrap;
    gap: 8px;
}
label.tagBtn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 146px;
    height: 34px;
    font-size: 1.5rem;
    font-weight: 500;
    color: #45788a;
    background-color: #fff;
    border: solid 1px #45788a;
    border-radius: 17px;
    transition: 0.3s ease-in-out;
    cursor: pointer;
}
label.tagBtn:hover,
#news1:checked ~ .inBox .tagBtnBox label.tagBtn[for="news1"],
#news2:checked ~ .inBox .tagBtnBox label.tagBtn[for="news2"],
#news3:checked ~ .inBox .tagBtnBox label.tagBtn[for="news3"],
#news4:checked ~ .inBox .tagBtnBox label.tagBtn[for="news4"],
#news5:checked ~ .inBox .tagBtnBox label.tagBtn[for="news5"],
#news6:checked ~ .inBox .tagBtnBox label.tagBtn[for="news6"],
#news7:checked ~ .inBox .tagBtnBox label.tagBtn[for="news7"],
#blog1:checked ~ .tagBtnBox label.tagBtn[for="blog1"],
#blog2:checked ~ .tagBtnBox label.tagBtn[for="blog2"],
#blog3:checked ~ .tagBtnBox label.tagBtn[for="blog3"],
#blog4:checked ~ .tagBtnBox label.tagBtn[for="blog4"],
#blog5:checked ~ .tagBtnBox label.tagBtn[for="blog5"] {
    color: #fff;
    background-color: #45788a;
}
.tagArea {
    opacity: 0;
    visibility: hidden;
    display: none;
    transition: 0.3s ease-in-out;
}
#news1:checked ~ .news-container .tagArea.news1,
#news2:checked ~ .news-container .tagArea.news2,
#news3:checked ~ .news-container .tagArea.news3,
#news4:checked ~ .news-container .tagArea.news4,
#news5:checked ~ .news-container .tagArea.news5,
#news6:checked ~ .news-container .tagArea.news6,
#news7:checked ~ .news-container .tagArea.news7,
#blog1:checked ~ .tagArea.blog1,
#blog2:checked ~ .tagArea.blog2,
#blog3:checked ~ .tagArea.blog3,
#blog4:checked ~ .tagArea.blog4,
#blog5:checked ~ .tagArea.blog5 {
    opacity: 1;
    visibility: visible;
    display: block;
}
/* -- ブログ・イベント情報 -- */
.contentsHome .postList {
	display: flex;
}
.contentsHome .postList li a .blogImg {
	margin-bottom: 15px;
}
@media print, screen and (min-width: 768px) {
    .contentsHome .postList {
        flex-flow: row wrap;
        gap: 0 36px;
    }
    .contentsHome .postList li {
        width: 22.632%;
    }
}
/* ------------------------------
 お知らせ・イベント・ブログ（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    /* -- タグ絞り込み -- */
    .tagBtnBox {
        gap: 5px;
        margin-bottom: 30px;
    }
    label.tagBtn {
        width: auto;
        height: auto;
        padding: 0 12px;
    }
    /* -- ボタン -- */
    section .btn a {
        width: 230px;
    }
	/* -- ブログ・イベント情報 -- */
	.contentsHome .postSwiper {
		position: relative;
		padding-left: 60px;
        padding-right: 60px;
		padding-bottom: 55px;
        margin-left: -5.5%;
        margin-right: -5.5%;
	}
	.contentsHome .postSwiper .swiper-buttons {
        right: 5%;
	}
    .contentsHome .postList {
        justify-content: space-between;
    }
    /* ブログだけ */
    .contentsHome .blogBlock .postSwiper .swiper {
        overflow: visible;
    }
    .contentsHome .blogBlock .postSwiper .swiper-pagination-bullets.swiper-pagination-horizontal {
        bottom: -55px;
    }
    .contentsHome .blogBlock .postSwiper .swiper-buttons {
        right: -19%;
        bottom: -55px;
    }
}
/* ------------------------------
 お知らせ・イベント（PC）
------------------------------ */
.newsBlock,
.hospitalBlock {
    background-color: #fff;
    padding: 120px 0 130px;
    box-shadow: rgba(23, 145, 188, .15) 0 0 8px 0;
}
.contentsHome .newsBlock h2,
.contentsHome .blogBlock h2 {
    text-align: left;
}
.contentsHome .newsBlock h2 span,
.contentsHome .blogBlock h2 span {
    margin: 0;
}
.newsBlock .pickup {
    margin-bottom: 100px;
}
.contentsHome .postBlock.pickup h2 {
    font-family: "Barlow", sans-serif;
    font-size: 5.0rem;
    font-weight: 600;
    line-height: 1;
}
.contentsHome .postBlock.pickup h2::before {
	content: "";
	position: absolute;
	display: block;
	width: 75px;
	height: 6px;
	background: rgb(87,227,27);
	background: linear-gradient(90deg, rgba(87,227,27,1) 0%, rgba(0,176,138,1) 100%);
	border-radius: 0 5px 0 0;
	left: 0;
	bottom: 0;
}
.contentsHome .postBlock.pickup h2::after {
	content: "";
	display: block;
	width: 100%;
	height: 0px;
	border-bottom: dotted 1px #A1C3D1;
	margin-top: 20px;
}
.newsBlock .pickup .postList .date {
    background-color: #fff;
}
.newsBlock .pickup .postList .date::before,
.newsBlock .pickup .postList .date::after {
    box-shadow: -15px -15px 0 0 #fff;
}
@media print, screen and (min-width: 768px) {
    .newsBlock .news {
        display: flex;
        justify-content: space-between;
    }
    .newsBlock .news .inBox {
        display: flex;
        flex-direction: column;
        width: 250px;
    }
    .newsBlock .news .inBox h2 {
        margin-bottom: 40px;
    }
    .newsBlock .news .tagBtnBox label.tagBtn {
        width: 160px;
    }
    .newsBlock .btn {
        margin-top: 30px;
    }
    .newsBlock .btn a,
    .blogBlock .btn a {
        min-width: 250px;
    }
    .newsBlock .news .newsList {
        width: 810px;
        min-height: 446px;
    }
    .contentsHome .postBlock.pickup .postList li a .blogImg img {
        height: 200px;
    }
}
/* ------------------------------
 お知らせ・イベント（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    .newsBlock,
    .hospitalBlock {
        position: relative;
        z-index: 2;
        padding: 60px 0 75px;
    }
    .newsBlock .news {
        padding-bottom: 100px;
    }
    .newsBlock .news .btn {
        position: absolute;
        width: 100%;
        text-align: center;
        bottom: 0;
    }
    .newsBlock .pickup {
        margin-bottom: 50px;
    }
    .contentsHome .postBlock.pickup h2 {
        font-size: 3.8rem;
    }
    .contentsHome .postBlock.pickup h2::before {
		width: 65px;
		height: 5px;
	}
}
/* ------------------------------
 命を支える最前線の医療体制（PC）
------------------------------ */
.careBlock {
    position: relative;
    z-index: 1;
}
.careBlock::before {
    bottom: 0;
}
.careBlock::after {
    width: 754px;
    height: 633px;
    background: url(../../img/top_pattern_right_care.png) no-repeat center / cover;
    bottom: auto;
    top: -75px;
}
.careBlock .inBlock,
.hospitalBlock .inBlock {
    position: relative;
    width: 95%;
    max-width: 1820px;
    padding: 120px 0;
    margin: 0 auto;
}
.careBlock p.link,
.hospitalBlock p.link {
    position: absolute;
    top: 115px;
    right: 0;
    z-index: 1;
}
.careBlock p.link a,
.hospitalBlock p.link a {
    display: block;
    width: 110px;
    height: 110px;
    background: #fff url(../img/arrow_link_top.svg) no-repeat center / 37px 27px;
    border-radius: 100%;
    box-shadow: rgba(23, 145, 188, .15) 0 0 8px 0;
}
.careBlock .careLink,
.hospitalBlock figure {
    width: 100%;
    border-radius: 30px;
    overflow: hidden;
}
.careBlock .careLink li a {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}
.careBlock .careLink li a img,
.hospitalBlock figure img,
.hospitalBlock .hospitalLink li a img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.careBlock .careLink li p {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
	display: inline-flex;
	align-items: center;
    width: fit-content;
    height: fit-content;
    min-width: 300px;
	min-height: 86px;
	font-size: 1.8rem;
	font-weight: 500;
	color: #000;
	text-align: left;
	text-decoration: none;
	background-color: #fff;
	border-radius: 50px;
	padding: 0 65px 0 30px;
	box-shadow: rgba(23, 145, 188, .15) 0 0 8px 0;
}
.careBlock .careLink li p::after {
	content: "";
	position: absolute;
	width: 42px;
	height: 42px;
	background: url(../img/arrow_link_btn.svg) no-repeat center / cover;
	position: absolute;
	top: 0;
	bottom: 0;
    right: 20px;
	left: auto;
	margin: auto;
}
@media print, screen and (min-width: 768px) {
    .careBlock .inBlock h2::before {
        background: url(../../img/top_pattern_left_mini.png) no-repeat center / cover;
        top: -20px;
        left: 40px;
    }
    .careBlock .careLink {
        position: relative;
        z-index: 1;
        height: 985px;
        display: grid;
        grid-template-columns: 53.297% 46.704%;
        grid-template-rows: 1fr 1fr 225px;
    }
    .careBlock .careLink li:first-child {
        grid-column: 1 / 2;
        grid-row: 1 / 4;
    }
    .careBlock .postSwiper {
        position: relative;
        z-index: 1;
        width: 100%;
        min-width: 95%;
        max-width: fit-content;
        background-color: #f6f9fa;
        border-top-left-radius: 30px;
        padding: 90px 30px 0 80px;
        margin-left: 5%;
        margin-top: -225px;
    }
    .careBlock .postSwiper::before,
    .careBlock .postSwiper::after {
        content: "";
        width: 60px;
        height: 60px;
        background: transparent;
        position: absolute;
        border-radius: 30px;
        box-shadow: 30px 30px 0 0 #F6F9FA;
        right: 0;
        bottom: 100%;
        overflow: hidden;
        z-index: -1;
    }
    .careBlock .postSwiper::after {
        left: -60px;
        top: 165px;
    }
    .careBlock .postSwiper .btn.list {
        position: absolute;
        top: 40px;
        right: 30px;
    }
    .careBlock .postSwiper .btn.list a {
        min-width: unset;
        min-height: unset;
        background-color: transparent;
        box-shadow: none;
        border-radius: 0;
        padding-left: 0;
        padding-right: 40px;
    }
    .careBlock .postSwiper .btn.list a:after {
        width: 30px;
        height: 30px;
        background: url(../img/icon_list_c.svg) no-repeat center / cover;
        right: 0;
    }
    .careBlock .postSwiper .postList {
        width: 100%;
        max-width: 1140px;
        gap: 0 3.947%;
    }
    .careBlock .postSwiper .postList .swiper-slide {
		width: 30.702%;
    }
    .careBlock .postSwiper .postList .swiper-slide img {
        height: 240px;
    }
}
@media print, screen and (min-width: 1400px) {
    .careBlock .postSwiper {
        min-width: unset;
    }
    .careBlock .postSwiper .postList {
        width: 1140px;
    }
}
/* ------------------------------
 命を支える最前線の医療体制（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    .careBlock::before {
        bottom: auto;
        top: -140px;
    }
    .careBlock::after {
        top: auto;
        bottom: -5px;
    }
    .careBlock .inBlock,
    .hospitalBlock .inBlock {
        width: 100%;
        max-width: unset;
        padding: 70px 0;
    }
    .careBlock .inBlock h2,
    .hospitalBlock .inBlock h2,
    .careBlock .postSwiper {
        width: 90%;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 15px;
    }
    .careBlock p.link,
    .hospitalBlock p.link {
        position: relative;
        top: 0;
        width: fit-content;
        background-color: #f6f9fa;
        border-bottom-left-radius: 20px;
        padding: 1px 5px 20px 18px;
        margin-left: auto;
        margin-right: 2.5%;
    }
    .careBlock p.link::before,
    .careBlock p.link::after,
    .hospitalBlock p.link::before,
    .hospitalBlock p.link::after {
        content: "";
        width: 40px;
        height: 40px;
        background: transparent;
        position: absolute;
        border-radius: 20px;
        box-shadow: 20px -20px 0 0 #F6F9FA;
        right: 0;
        top: 100%;
        overflow: hidden;
        z-index: -1;
    }
    .careBlock p.link::after,
    .hospitalBlock p.link::after {
        left: -40px;
        top: 15px;
    }
    .careBlock p.link a,
    .hospitalBlock p.link a {
        width: 54px;
        height: 54px;
        background: #fff url(../img/arrow_link_top.svg) no-repeat center / 18px 14px;
    }
    .careBlock .careLink,
    .hospitalBlock figure {
        width: 95%;
        border-radius: 20px;
        margin: -60px auto 60px;
    }
    .careBlock .careLink li p {
        top: auto;
        bottom: 25px;
        margin: auto;
        min-width: 260px;
        min-height: 76px;
        font-size: 1.6rem;
        padding: 0 60px 0 23px;
    }
    .careBlock .careLink li p::after {
        width: 36px;
        height: 36px;
        right: 16px;
    }
    .careBlock .postSwiper {
        width: 100%;
        margin-bottom: 110px;
    }
    .careBlock .postSwiper .btn {
        position: absolute;
        width: 90%;
        text-align: center;
        bottom: -110px;
        left: 0;
        right: 0;
        margin: auto;
    }
}
/* ------------------------------
 ホスピタリティの追求（PC）
------------------------------ */
.hospitalBlock .inBlock {
    padding: 0;
}
.hospitalBlock p.link {
    top: -5px;
}
.hospitalLink {
    position: relative;
    z-index: 1;
    width: fit-content;
    background-color: #fff;
    border-top-left-radius: 30px;
    padding: 80px 30px 0 80px;
    margin-top: -355px;
}
.hospitalLink::before,
.hospitalLink::after {
    content: "";
    width: 60px;
    height: 60px;
    background: transparent;
    position: absolute;
    border-radius: 30px;
    box-shadow: 30px 30px 0 0 #fff;
    right: 0;
    bottom: 100%;
    overflow: hidden;
    z-index: -1;
}
.hospitalLink::after {
    left: -60px;
    top: 165px;
}
.hospitalLink ul li a {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    background-color: #fff;
    text-decoration: none;
}
.hospitalLink ul li a,
.hospitalLink ul li a img {
    border-radius: 30px;
}
.hospitalLink ul li a .title {
    position: absolute;
    width: fit-content;
    background-color: #fff;
    border-top-right-radius: 20px;
    padding: 15px 18px 1px 1px;
    bottom: -10px;
    left: 0;
    z-index: 1;
}
.hospitalLink ul li a .title::before,
.hospitalLink ul li a .title::after {
    content: "";
    width: 40px;
    height: 40px;
    background: transparent;
    position: absolute;
    border-radius: 20px;
    box-shadow: -20px 20px 0 0 #fff;
    left: 0;
    bottom: 100%;
    overflow: hidden;
    z-index: -1;
}
.hospitalLink ul li a .title::after {
    left: auto;
    right: -40px;
    bottom: 10px;
}
.hospitalLink ul li a p {
    font-size: 2.0rem;
    font-weight: 500;
    color: #000;
}
.hospitalLink ul li a p::after {
    content: "";
    display: inline-block;
    width: 41px;
    height: 41px;
    background: url(../img/arrow_link.svg) no-repeat center / cover;
    vertical-align: middle;
    margin-bottom: 5px;
    margin-left: 3px;
}
.hospitalLink ul li a[target="_blank"] p::after {
    background: url(../img/icon_blank_btn.svg) no-repeat center / cover;
}
@media print, screen and (min-width: 768px) {
    .hospitalBlock figure {
        height: 903px;
    }
    .hospitalLink {
        margin-left: 5%;
    }
    .hospitalLink::after {
        top: 295px;
    }
    .hospitalLink ul {
        width: 100%;
        max-width: 1140px;
    }
    .hospitalLink .flexBox.div2 {
        gap: 35px 4.21%;
    }
    .hospitalLink .flexBox.div2 > * {
        width: 47.895%;
    }
}
@media print, screen and (min-width: 1400px) {
    .careBlock .postSwiper,
    .hospitalLink {
        margin-left: auto;
    }
}
/* ------------------------------
 ホスピタリティの追求（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    .hospitalLink {
        width: 81.333%;
        border-top-left-radius: 20px;
        padding: 20px 10px 0 20px;
        margin-top: -55px;
        margin-left: auto;
        margin-right: 2.5%;
    }
    .hospitalLink::before,
    .hospitalLink::after {
        width: 40px;
        height: 40px;
        border-radius: 20px;
        box-shadow: 20px 20px 0 0 #fff;
    }
    .hospitalLink::after {
        left: -40px;
        top: 15px;
    }
    .hospitalBlock p.link {
        background-color: #fff;
    }
    .hospitalBlock p.link::before,
    .hospitalBlock p.link::after {
        box-shadow: 20px -20px 0 0 #fff;
    }
    .hospitalBlock figure {
        margin-bottom: 0;
    }
    .hospitalLink ul li:not(:last-child) {
        margin-bottom: 20px;
    }
    .hospitalLink ul li a,
    .hospitalLink ul li a img {
        border-radius: 15px;
    }
    .hospitalLink ul li a .title {
        position: relative;
        border-top-right-radius: 15px;
        padding: 10px 10px 1px 1px;
        margin-top: -30px;
        bottom: auto;
    }
    .hospitalLink ul li a .title::before,
    .hospitalLink ul li a .title::after {
        width: 30px;
        height: 30px;
        border-radius: 15px;
        box-shadow: -15px 15px 0 0 #fff;
        left: 0;
        bottom: 100%;
    }
    .hospitalLink ul li a .title::after {
        left: auto;
        bottom: auto;
        right: -30px;
        top: 0;
    }
    .hospitalLink ul li a p {
        font-size: 1.6rem;
    }
    .hospitalLink ul li a p::after {
        width: 36px;
        height: 36px;
    }
}
/* ------------------------------
 ブログ（PC）
------------------------------ */
.blogBlock {
    position: relative;
    z-index: 1;
    padding: 100px 0 130px;
}
.blogBlock::before {
    bottom: -30px;
}
.blogBlock::after {
    bottom: -55px;
}
.blogBlock .tagArea {
    margin-bottom: 40px;
}
@media print, screen and (min-width: 768px) {
    .blogBlock .tagBtnBox {
        position: absolute;
        top: 45px;
        right: 0;
    }
}
/* ------------------------------
 ブログ（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    .blogBlock {
        padding: 40px 0 70px;
    }
    .blogBlock::before {
        bottom: auto;
        top: -145px;
    }
    .blogBlock::after {
        bottom: -30px;
    }
}
/* ------------------------------
 採用情報（PC）
------------------------------ */
.recruitBlock {
    position: relative;
    z-index: 1;
    margin-bottom: 70px;
}
.recruitBlock .inBlock {
    position: relative;
    width: 95%;
    max-width: 1820px;
    margin: 0 auto;
}
.recruitBlock a {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 18.7875%;
    max-width: 340px;
    height: auto;
    aspect-ratio: 1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}
.recruitBlock a::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #fff;
    border-radius: 20px;
    transform: rotate(45deg);
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
	box-shadow: rgba(23, 145, 188, .15) 0 0 8px 0;
}
.recruitBlock h2 {
    margin-top: 25px;
    margin-bottom: 0;
}
.recruitBlock h2::after {
    content: "";
    display: block;
    width: 37px;
    height: 27px;
    background: url(../img/arrow_link_top.svg) no-repeat center / cover;
    margin: 30px auto 0;
}
/* ------------------------------
 採用情報（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    .recruitBlock a {
        width: 45.755%;
        max-width: unset;
    }
    .recruitBlock a::before {
        border-radius: 15px;
    }
    .recruitBlock h2 {
        font-size: 3.2rem;
        margin-top: 15px;
    }
    .recruitBlock h2::after {
        width: 28px;
        height: 21px;
        margin-top: 15px;
    }
}
/* ------------------------------
 バナー（PC）
------------------------------ */
.bnrBlock {
    background-color: #e7f0f4;
    padding: 90px 0;
}
.bnrBlock .bnrSwiper {
    position: relative;
    padding: 8px;
    overflow: hidden;
}
.bnrSwiper ul {
    display: flex;
    justify-content: space-between;
}
.bnrSwiper ul li {
    width: 22.632%;
    height: 104px;
    border-radius: 15px;
    box-shadow: rgb(23 145 188 / 15%) 0 0 8px 0;
}
.bnrSwiper ul li a {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
    border-radius: 15px;
    overflow: hidden;
}
.bnrSwiper ul li a:not(:has(figure)) {
    background-color: #fff;
    padding: 20px 65px 20px 25px;
}
.bnrSwiper ul li a:not(:has(figure)) p {
    font-size: 1.8rem;
    font-weight: 500;
    color: #000;
    line-height: 1.4;
    text-align: left;
}
.bnrSwiper ul li a:not(:has(figure))::before {
	content: "";
    position: absolute;
    width: 42px;
    height: 42px;
    background: url(../img/arrow_link_btn.svg) no-repeat center / cover;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 20px;
    left: auto;
    margin: auto;
    transition: .3s ease-in-out;
}
/* -- 5枚以上でスライド -- */
.bnrBlock .bnrSwiper.swiper-horizontal {
    padding-bottom: 52px;
}
/* ページネーション */
.bnrSwiper .swiper-pagination-bullets.swiper-pagination-horizontal {
    display: block;
    width: calc(100% - 16px);
    height: 35px;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}
.bnrSwiper .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    background-color: #a1c3d1;
    margin: 0 3px;
    opacity: 1;
}
.bnrSwiper .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet:first-child {
    margin-left: 0;
}
.bnrSwiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
    background-color: #007a46;
}
/* 前へ／次へボタン */
.bnrSwiper .swiper-buttons {
    position: absolute;
    display: flex;
    justify-content: flex-end;
    height: 35px;
    gap: 10px;
    bottom: 0;
    right: 8px;
}
.bnrSwiper .swiper-buttons .swiper-button-prev,
.bnrSwiper .swiper-buttons .swiper-button-next {
    position: static;
    width: 35px;
    height: 35px;
    margin: 0;
    transition: 0.3s ease-in-out;
}
.bnrSwiper .swiper-buttons .swiper-button-prev::after,
.bnrSwiper .swiper-buttons .swiper-button-next::after {
    content: "";
    display: block;
    width: 35px;
    height: 35px;
    background: url(../img/arrow_swiper.svg) no-repeat center / cover;
}
.bnrSwiper .swiper-buttons .swiper-button-prev::after {
    transform: rotate(180deg);
}
@media print, screen and (min-width: 768px) {
    .bnrBlock .bnrSwiper {
        width: 1156px;
    }
    /* 前へ／次へボタン */
    .bnrSwiper .swiper-buttons .swiper-button-prev:hover,
    .bnrSwiper .swiper-buttons .swiper-button-next:hover {
        opacity: 0.7;
    }
}
/* ------------------------------
 バナー（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    .bnrBlock {
        padding: 70px 0;
    }
    .bnrBlock .bnrSwiper {
        width: calc(90% + 16px);
        margin-left: calc(5% - 8px);
        margin-right: calc(5% - 8px);
    }
    .bnrBlock .bnrSwiper:not(.swiper-horizontal) ul {
        flex-flow: row wrap;
        gap: 10px 0;
    }
    .bnrSwiper ul li {
        width: 100%;
        height: 80px;
    }
    .bnrSwiper ul li a:not(:has(figure)) {
        padding: 10px calc(5% + 40px) 10px calc(5% + 10px);
    }
    .bnrSwiper ul li a:not(:has(figure)) p {
        font-size: 1.6rem;
    }
    .bnrSwiper ul li a:not(:has(figure))::before {
        right: 5%;
    }
    /* -- 5枚以上でスライド -- */
    .bnrBlock .bnrSwiper.swiper-horizontal {
        padding-bottom: 45px;
    }
    /* ページネーション */
    .bnrSwiper .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
        margin: 0 4px;
    }
    /* 前へ／次へボタン */
    .bnrSwiper .swiper-buttons {
        gap: 8px;
    }
}