@charset "utf-8";

/* ------------------------------
 メインビジュアル（PC）
------------------------------ */
.mainBlock {
	position: relative;
	padding-top: 9%;
	z-index: 1;
}
.mainBlock::before {
	content: "";
	position: absolute;
	width: 745px;
	height: 745px;
	background-color: #d9dfe2;
	background-image: linear-gradient(-90deg, transparent 30%, #fff 30%), linear-gradient(transparent 30%, #fff 30%);
	background-size: 6px 6px;
    mix-blend-mode: multiply;
	border-radius: 50%;
    top: -420px;
	right: -240px;
	z-index: -2;
}
.mainBlock::after {
	content: "";
	position: absolute;
	width: 565px;
	height: 565px;
	background-color: #fff;
	border-radius: 50%;
    top: -330px;
	right: -150px;
	z-index: -1;
}
/* h1 */
.top_mainLead {
	padding: 0 5%;
}
h1 {
	font-size: 6.4rem;
	letter-spacing: 0.04em;
	margin-bottom: 10px;
}
h1 + .h1Text {
	position: relative;
	display: block;
	font-family: "Montserrat", sans-serif;
    font-size: 2.5rem;
    font-weight: 500;
	color: #99aab2;
	line-height: 1.2;
	letter-spacing: 0.04em;
	padding-left: 30px;
	margin-bottom: 50px;
}
h1 + .h1Text span {
	position: absolute;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	overflow: hidden;
	left: 0;
	top: 5px;
}
h1 + .h1Text span::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
}
h1 + .h1Text span::after {
	content: "";
	position: absolute;
	width: 10px;
	height: 10px;
	background-color: #fff;
	border-radius: 50%;
	left: 6px;
	top: 6px;
}
/* -- メインスライド -- */
.mainSlide {
	position: relative;
	margin-bottom: 120px;
	z-index: 1;
}
.mainSlide::before,
.mainSlide::after {
	content: "";
	position: absolute;
	width: 100%;
	height: 740px;
	border-top-right-radius: 70px;
	right: 150px;
	bottom: -326px;
}
.mainSlide::before {
	z-index: -2;
}
.mainSlide::after {
	z-index: -1;
}
.mainSlide .swiper-wrapper {
    transition-timing-function: linear !important;
}
.mainSlide .swiper-slide {
	width: 570px;
	height: auto;
	border-radius: 30px;
	overflow: hidden;
	margin: 0 20px;
}
.mainimg .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* -- グラデアニメーション -- */
h1 + .h1Text span,
.mainSlide::before {
	background: rgba(122, 167, 255, 1);
	animation: animGrad 15s ease-in-out infinite;
}
@keyframes animGrad {
  0% {
	background: rgba(122, 167, 255, 1);
  }
  10% {
	background: rgba(122, 166, 255, 1);
  }
  28% {
	background: rgba(255, 181, 243, 1);
  }
  46% {
	background: rgba(101, 235, 193, 1);
  }
  64% {
	background: rgba(242, 245, 86, 1);
  }
  82% {
	background: rgba(186, 245, 103, 1);
  }
  100% {
	background: rgba(122, 167, 255, 1);
  }
}
/* 上にかぶせる透過グラデ */
h1 + .h1Text span::before,
.mainSlide::after {
	background: rgba(150, 232, 255, 1);
	background: linear-gradient(45deg, rgba(150, 232, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
}
@media print, screen and (min-width: 768px) {
	.mainSlide .swiper-slide:nth-child(odd) {
		margin-top: 50px;
	}
	.mainSlide .swiper-slide:nth-child(even) {
		margin-bottom: 50px;
	}
	.mainSlide::before,
	.mainSlide::after {
		width: 98%;
		right: 2%;
	}
}
@media print, screen and (min-width: 1750px) {
	.mainSlide::before,
	.mainSlide::after {
		width: 100%;
		right: 150px;
	}
}
/* ------------------------------
 メインビジュアル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.mainBlock {
		padding-top: 60px;
	}
	.mainBlock::before {
		width: 272px;
		height: 272px;
		background-image: linear-gradient(-90deg, transparent 40%, #fff 40%), linear-gradient(transparent 40%, #fff 40%);
        background-size: 3px 3px;
		top: -150px;
		right: -90px;
	}
	.mainBlock::after {
		width: 184px;
		height: 184px;
		top: -106px;
		right: -46px;
	}
	h1 {
		font-size: 3.4rem;
	}
	h1 + .h1Text {
		font-size: 1.6rem;
		letter-spacing: 0.02em;
		padding-left: 18px;
		margin-bottom: 35px;
	}
	h1 + .h1Text span {
		width: 14px;
		height: 14px;
		top: 2px;
	}
	h1 + .h1Text span::after {
		width: 6px;
		height: 6px;
		left: 4px;
    	top: 4px;
	}
	/* -- メインスライド -- */
	.mainSlide {
		margin-bottom: 60px;
	}
	.mainSlide::before,
	.mainSlide::after {
		height: 347px;
		border-top-right-radius: 30px;
		right: 5%;
		top: 80px;
		bottom: auto;
	}
	.mainSlide .swiper-slide {
		width: auto;
		max-width: 255px;
		height: 269px;
		border-radius: 15px;
	}
}

/* ------------------------------
 見出し（PC）
------------------------------ */
/* -- h2 -- */
.contentsHome h2 {
	font-size: 4.8rem;
	line-height: 1.3;
	letter-spacing: 0.03em;
	margin-bottom: 30px;
}
.contentsHome h2 span {
	position: relative;
	display: block;
	font-family: "Montserrat", sans-serif;
	font-size: 2.5rem;
	font-weight: 500;
	color: #99aab2;
	line-height: 1;
	letter-spacing: 0;
	padding-left: 18px;
	margin-bottom: 30px;
}
.contentsHome h2 span::before {
	content: "";
	position: absolute;
	width: 11px;
	height: 11px;
	background-color: #005580;
	border-radius: 50%;
	top: 6px;
	left: 0;
}
/* -- h3 -- */
h3 {
	font-size: 2rem;
	font-weight: bold;
	color: #fff;
	margin-bottom: 10px;
}
/* ------------------------------
 見出し（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- h2 -- */
	.contentsHome h2 {
		font-size: 2.8rem;
		margin-bottom: 25px;
		letter-spacing: 0;
	}
	.contentsHome h2 span {
		font-size: 1.8rem;
		padding-left: 13px;
		margin-bottom: 20px;
	}
	.contentsHome h2 span::before {
		width: 7px;
    	height: 7px;
		top: 5px;
	}
	/* -- h3 -- */
	h3 {
		font-size: 2.4rem;
		line-height: 1.5;
		margin-bottom: 5px;
		text-align: center;
	}
}

/* ------------------------------
 新着情報（PC）
------------------------------ */
.newsBlock {
	position: relative;
	z-index: 1;
	padding-top: 120px;
	margin-bottom: 120px;
}
.newsBlock::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	background-color: #fff;
	border-top-left-radius: 70px;
	top: 0;
}
.newsBlock .inBlock {
	position: relative;
	z-index: 1;
	display: flex;
}
.newsBlock .inBlock::before {
	content: "";
    position: absolute;
    width: 656px;
    height: 656px;
    background-color: #d9dfe2;
    background-image: linear-gradient(-90deg, transparent 30%, #fff 30%), linear-gradient(transparent 30%, #fff 30%);
    background-size: 6px 6px;
    mix-blend-mode: multiply;
    border-radius: 50%;
    bottom: -580px;
    left: -711px;
    z-index: -2;
}
.newsBlock .inBlock::after {
	content: "";
    position: absolute;
    width: 476px;
    height: 476px;
    background-color: #fff;
    border-radius: 50%;
    bottom: -490px;
    left: -621px;
    z-index: -1;
}
.contentsHome .newsBlock h2 span {
	margin-bottom: 10px;
}
@media print, screen and (min-width: 768px) {
	.newsBlock::before {
		left: 2%;
	}
	.newsBlock .inBlock {
		justify-content: space-between;
	}
	.newsBlock .newsList {
		width: 840px;
	}
	.headline a {
		display: -webkit-box;
		text-overflow: ellipsis;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 1;
		overflow: hidden;
	}
	.newsBlock .btn {
		position: absolute;
		bottom: 15px;
	}
}
@media print, screen and (min-width: 1450px) {
	.newsBlock::before {
		min-width: 1650px;
		left: calc(50% - 1140px / 2 - 120px);
	}
}
/* ------------------------------
 新着情報（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.newsBlock {
		padding-top: 50px;
		margin-bottom: 60px;
	}
	.newsBlock::before {
		border-top-left-radius: 30px;
		left: 5%;
	}
	.newsBlock .inBlock {
		flex-direction: column;
        padding-left: 5%;
	}
	.newsBlock .inBlock::before {
		width: 316px;
		height: 316px;
		background-image: linear-gradient(-90deg, transparent 40%, #fff 40%), linear-gradient(transparent 40%, #fff 40%);
		background-size: 3px 3px;
		bottom: -270px;
		left: -160px;
	}
	.newsBlock .inBlock::after {
		width: 228px;
		height: 228px;
		bottom: -226px;
		left: -116px;
	}
	.newsBlock .newsList {
		margin-bottom: 20px;
	}
	.newsBlock .btn {
	    margin-left: auto;
	}
}

/* ------------------------------
 職種紹介（PC）
------------------------------ */
.jobBlock {
	position: relative;
	z-index: 1;
	padding-top: 100px;
	margin-top: 585px;
	margin-bottom: 210px;
}
.jobBlock::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 570px;
	background-color: #fff;
	border-top-left-radius: 70px;
	top: 0;
	z-index: -1;
}
.jobBlock figure {
	position: absolute;
	height: 825px;
	top: -465px;
	z-index: -2;
}
.jobBlock figure,
.jobBlock figure img {
	border-top-right-radius: 70px;
}
section figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
ul.lowerLink > li > a img + p {
	padding: 20px 25px 0 28px;
}
ul.lowerLink > li > a img + p::before {
	top: 26px;
}
ul.lowerLink > li > a img + p::after {
	top: 32px;
}
.jobBlock ul.lowerLink > li > a,
.jobBlock ul.lowerLink > li > a img + p::before {
	background: rgba(150, 232, 255, 1);
}
.jobBlock ul.lowerLink > li.doctor > div {
	position: relative;
	border-radius: 30px;
}
.jobBlock ul.lowerLink > li.doctor > ul > li {
	border-bottom: dotted 1px #b2bfc6;
}
.jobBlock ul.lowerLink > li.doctor > ul > li > a {
	display: block;
}
.jobBlock ul.lowerLink > li.doctor > ul > li > a > p {
	position: relative;
	font-size: 2.1rem;
    font-weight: bold;
    color: #002940;
    text-decoration: none;
	padding: 17px 0 13px 28px;
}
.jobBlock ul.lowerLink > li.doctor > ul > li > a > p::before {
	content: "";
    position: absolute;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    overflow: hidden;
    left: 0;
    top: 23px;
}
.jobBlock ul.lowerLink > li.doctor > ul > li > a > p::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 10px;
    background-color: #fff;
    border-radius: 50%;
    left: 6px;
    top: 29px;
}
.jobBlock ul.lowerLink > li.doctor > div,
.jobBlock ul.lowerLink > li.doctor > ul > li > a > p::before {
	background: linear-gradient(45deg, rgba(150, 232, 255, 1) 0%, rgba(122, 166, 255, 1) 100%);
}
.jobBlock ul.lowerLink > li.nurse a,
.jobBlock ul.lowerLink > li.nurse a img + p::before {
	background: linear-gradient(45deg, rgba(150, 232, 255, 1) 0%, rgba(255, 181, 243, 1) 100%);
}
.jobBlock ul.lowerLink > li.support a,
.jobBlock ul.lowerLink > li.support a img + p::before {
	background: linear-gradient(45deg, rgba(150, 232, 255, 1) 0%, rgba(101, 235, 193, 1) 100%);
}
.jobBlock ul.lowerLink > li.care a,
.jobBlock ul.lowerLink > li.care a img + p::before {
	background: linear-gradient(45deg, rgba(150, 232, 255, 1) 0%, rgba(242, 245, 86, 1) 100%);
}
.jobBlock ul.lowerLink > li.gs a,
.jobBlock ul.lowerLink > li.gs a img + p::before {
	background: linear-gradient(45deg, rgba(150, 232, 255, 1) 0%, rgba(186, 245, 103, 1) 100%);
}
@media print, screen and (min-width: 768px) {
	.jobBlock {
		padding-left: 20px;
	}
	.jobBlock::before {
		left: 2%;
	}
	.jobBlock figure {
		width: 98%;
		right: 2%;
	}
	ul.lowerLink {
		display: grid;
		grid-template-columns: 39.650% 27.193% 27.193%;
		grid-template-rows: 1fr 1fr;
		gap: 37px 2.982%;
	}
	ul.lowerLink > li {
		width: 100%;
	}
	ul.lowerLink > li.doctor {
		grid-column: 1 / 2;
        grid-row: 1 / 3;
	}
}
@media print, screen and (min-width: 1330px) {
	.jobBlock {
		padding-left: 0;
	}
	.jobBlock .inBlock {
    	width: 1140px;
	}
}
@media print, screen and (min-width: 1450px) {
	.jobBlock::before {
		min-width: 1650px;
		left: calc(50% - 1140px / 2 - 120px);
	}
}
@media print, screen and (min-width: 1850px) {
	.jobBlock figure {
		width: 1800px;
		right: calc(50% - 1140px / 2 - 270px);
	}
}
@media print, screen and (min-width: 1921px) {
	.jobBlock figure {
		width: 1870px;
	}
	.jobBlock figure,
	.jobBlock figure img {
		border-radius: 70px;
	}
}
/* ------------------------------
 職種紹介（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.jobBlock {
		padding-top: 50px;
		margin-top: 220px;
		margin-bottom: 128px;
	}
	.jobBlock::before {
		height: 200px;
		border-top-left-radius: 30px;
		left: 5%;
	}
	.jobBlock .inBlock {
		padding-left: 5%;
	}
	.jobBlock figure {
		width: 100%;
		height: 266px;
		top: -156px;
	}
	.jobBlock figure,
	.jobBlock figure img {
		border-top-right-radius: 30px;
	}
	.jobBlock figure img {
		width: 95%;
	}
	.jobBlock figure img,
	.block.right figure img {
		object-position: top left;
	}
	ul.lowerLink > li > a img,
	.jobBlock ul.lowerLink > li.doctor > div img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	ul.lowerLink > li > a img + p {
		padding: 12px 20px 0 23px;
	}
	ul.lowerLink > li > a img + p::before {
		top: 18px;
	}
	ul.lowerLink > li > a img + p::after {
		top: 23px;
	}
	.jobBlock ul.lowerLink > li.doctor > div {
		border-radius: 20px;
	}
	.jobBlock ul.lowerLink > li.doctor > ul > li > a > p {
		font-size: 1.8rem;
		padding: 15px 0 13px 23px;
	}
	.jobBlock ul.lowerLink > li.doctor > ul > li > a > p::before {
		width: 18px;
		height: 18px;
		top: 21px;
	}
	.jobBlock ul.lowerLink > li.doctor > ul > li > a > p::after {
		width: 8px;
		height: 8px;
		left: 5px;
		top: 26px;
	}
}

/* ------------------------------
 魅力・求める人材像（PC）
------------------------------ */
.contentsHome .block h2 {
	letter-spacing: 0;
}
.block {
	position: relative;
	display: flex;
	align-items: flex-end;
	width: 100%;
	height: 706px;
	margin-bottom: 145px;
	z-index: 1;
}
.block.right {
	margin-bottom: 200px;
}
.block::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 644px;
	background-color: #d9dfe2;
    background-image: linear-gradient(-90deg, transparent 30%, #fff 30%), linear-gradient(transparent 30%, #fff 30%);
    background-size: 6px 6px;
    mix-blend-mode: multiply;
	border-radius: 0 70px 70px 0;
	top: -100px;
	right: calc(50% - 1140px / 2 + 120px);
	z-index: -3;
}
.block.right::before {
	height: 814px;
	border-radius: 0;
	left: 0;
	right: 0;
	top: 610px;
	z-index: -3;
}
.block::after {
	content: "";
	position: absolute;
	width: 100%;
	height: 540px;
	background-color: #fff;
	border-radius: 0 70px 70px 0;
	bottom: -100px;
	right: calc(50% + 24px);
	z-index: -1;
}
.block.right::after {
	border-radius: 70px 0 0 70px;
	right: 0;
	left: calc(50% + 24px);
}
.block .inBlock {
    display: flex;
}
.block.right .inBlock {
	justify-content: flex-end;
}
.block figure {
    position: absolute;
	width: 1410px;
	height: 706px;
    top: 0;
    left: calc(50% - 1140px / 2 + 120px);
	z-index: -2;
}
.block figure,
.block figure img {
	border-radius: 70px 0 0 70px;
}
.block.right figure {
    right: calc(50% - 1140px / 2 + 120px);
	left: auto;
}
.block.right figure,
.block.right figure img {
	border-radius: 0 70px 70px 0;
}
.block figure::before {
	content: "";
	position: absolute;
	width: 815px;
	height: 815px;
	background: rgba(122, 167, 255, 1);
	background: linear-gradient(190deg, rgba(122, 167, 255, 1) 0%, rgba(150, 232, 255, 1) 100%);
	border-radius: 50%;
	top: -325px;
	right: -440px;
	z-index: -2;
}
.block figure::after {
	content: "";
	position: absolute;
	width: 635px;
	height: 635px;
	background-color: #fff;
	border-radius: 50%;
	top: -235px;
	right: -350px;
	z-index: -1;
}
.block.right figure::before {
	content: "";
	position: absolute;
	width: 757px;
	height: 757px;
	background: rgba(255, 181, 243, 1);
	background: linear-gradient(-200deg, rgba(255, 181, 243, 1) 0%, rgba(150, 232, 255, 1) 100%);
	border-radius: 50%;
	top: -290px;
	left: -340px;
	z-index: -2;
}
.block.right figure::after {
	content: "";
	position: absolute;
	width: 577px;
	height: 577px;
	background-color: #fff;
	border-radius: 50%;
	top: -200px;
	left: -250px;
	z-index: -1;
}
@media print, screen and (min-width: 768px) {
	.block::before {
		min-width: 1410px;
	}
	.block::after {
		min-width: 936px;
	}
	.block .inBox {
		width: 446px;
	}
	/* 求める人材像　3行に収まるなら削除 */
	.block.right::after {
		height: 600px;
	}
}
@media print, screen and (min-width: 1921px) {
	.block figure,
	.block.right figure {
		width: 1480px;
	}
	.block figure,
	.block figure img,
	.block.right figure,
	.block.right figure img {
		border-radius: 70px !important;
	}
}
/* ------------------------------
 魅力・求める人材像（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.block {
		height: auto;
		padding: 50px 0 0;
		margin-top: 325px;
		margin-bottom: 0;
		z-index: 2;
	}
	.block.right {
		padding: 50px 0;
		margin-top: 275px;
		margin-bottom: 50px;
		z-index: 0;
	}
	.block::before {
		width: 100%;
		height: 216px;
		background-image: linear-gradient(-90deg, transparent 40%, #fff 40%), linear-gradient(transparent 40%, #fff 40%);
		background-size: 3px 3px;
		border-radius: 0 30px 30px 0;
		top: -260px;
		right: 50%;
	}
	.block.right::before {
		height: 476px;
		top: 66px;
	}
	.block::after {
		height: 80%;
		border-radius: 0 30px 30px 0;
		right: 5%;
		top: 0;
		bottom: 0;
	}
	.block.right::after {
		height: 100%;
		border-radius: 30px 0 0 30px;
		left: 5%
	}
	.block .inBlock {
		position: relative;
		padding-right: 5%;
	}
	.block.right .inBlock {
		padding-right: 0;
		padding-left: 5%;
	}
	.block figure {
		width: 100%;
		height: 315px;
		top: -196px;
		left: 5%;
	}
	.block.right figure {
		left: auto;
		right: 5%;
	}
	.block figure,
	.block figure img {
		border-radius: 30px 0 0 30px;
	}
	.block.right figure,
	.block.right figure img {
		border-radius: 0 30px 30px 0;
	}
	.block figure::before {
		width: 278px;
		height: 278px;
		top: -110px;
		right: -130px;
	}
	.block figure::after {
		width: 190px;
		height: 190px;
		top: -66px;
		right: -86px;
	}
	.block.right figure::before {
		width: 288px;
		height: 288px;
		top: -96px;
		left: -110px;
	}
	.block.right figure::after {
		width: 200px;
		height: 200px;
		top: -52px;
		left: -66px;
	}
}

/* ------------------------------
 福利厚生（PC）
------------------------------ */
.welfBlock {
	position: relative;
	z-index: 1;
	padding-top: 100px;
}
.welfBlock::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 677px;
	background-color: #fff;
	border-radius: 0 70px 70px 0;
	top: 0;
	z-index: -1;
}
.welfBlock .inBox {
	margin-bottom: 40px;
}
.welfBlock figure {
	border-radius: 70px;
	overflow: hidden;
}
@media print, screen and (min-width: 768px) {
	.welfBlock {
		padding-right: 20px;
	}
	.welfBlock::before {
		right: 2%;
	}
	.welfBlock .inBox {
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
	}
	.welfBlock h2 {
		margin-bottom: 0;
	}
}
@media print, screen and (min-width: 1330px) {
	.welfBlock {
		padding-right: 0;
	}
	.welfBlock .inBlock {
		width: 1140px;
	}
}
@media print, screen and (min-width: 1450px) {
	.welfBlock::before {
		min-width: 1650px;
		right: calc(50% - 1140px / 2 - 120px);
	}
}
/* ------------------------------
 魅力・求める人材像（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.welfBlock {
		padding-top: 50px;
		z-index: 1 !important;
	}
	.welfBlock::before {
		height: 300px;
		border-radius: 0 30px 0 0;
		right: 5%;
	}
	.welfBlock .inBlock {
		padding-right: 5%;
	}
	.welfBlock figure {
		border-radius: 20px;
	}
}

/* ------------------------------
 フッター装飾（PC）
------------------------------ */
.contentsHome::before {
	content: "";
	position: absolute;
	width: 760px;
	height: 760px;
	background: rgba(101, 235, 192, 1);
	background: linear-gradient(-150deg, rgba(101, 235, 192, 1) 0%, rgba(150, 232, 255, 1) 100%);
	border-radius: 50%;
	bottom: -634px;
	right: -330px;
	z-index: -2;
}
.contentsHome::after {
	content: "";
	position: absolute;
	width: 580px;
	height: 580px;
	background-color: #fff;
	border-radius: 50%;
	bottom: -544px;
	right: -240px;
	z-index: -1;
}
/* ------------------------------
 フッター装飾（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.contentsHome::before {
		width: 274px;
		height: 274px;
		bottom: -225px;
		right: -125px;
	}
	.contentsHome::after {
		width: 186px;
		height: 186px;
		bottom: -181px;
		right: -81px;
	}
}

/* ------------------------------
 フェードイン（PC）
------------------------------ */
.fadein {
	visibility: hidden;
	opacity: 0;
	transform: translate(0, 50px);
	transition: opacity 1s ease .5s, transform 1s ease .5s;
}
.fadein.active {
	visibility: visible;
	opacity: 1;
    transform: translate(0, 0);
    transition-delay: 0s;
}