@font-face {
  font-family: 'LINESeed';
  font-weight: 400;
  src: url('../fonts/LINESeedJP_OTF_Rg.woff2') format('woff2'),
       url('../fonts/LINESeedJP_OTF_Rg.woff') format('woff');
}
@font-face {
  font-family: 'LINESeed';
  font-weight: 700;
  src: url('../fonts/LINESeedJP_OTF_Bd.woff2') format('woff2'),
       url('../fonts/LINESeedJP_OTF_Bd.woff') format('woff');
}

html,body{
  font-family: 'LINESeed';
  font-weight: 400;
  text-justify: inter-ideograph;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #142640;
  line-height: 1.7;
}
a{
  color: #142640;
  transition: opacity 0.3s, color 0.3s;
}
a:hover{ opacity: 0.7; }
a svg path{
  transition: fill 0.3s, stroke 0.3s;
}
img,picture{
	max-width: 100%;
	display: block;
}
.overflow{ overflow: hidden; }

.gr{ color: #1AB27E; }
.bl{ color: #2B58C7; }
.pi{ color: #E6597A; }
.or{ color: #F58B32; }
.pu{ color: #4A53BF; }

.bg-gr{
  background-color: #1AB27E;
  color: #fff;
}
.bg-bl{
  background-color: #2B58C7;
  color: #fff;
}
.bg-pi{
  background-color: #E6597A;
  color: #fff;
}
.bg-or{
  background-color: #F58B31;
  color: #fff;
}
.bg-pu{
  background-color: #4A53BF;
  color: #fff;
}
.bg-bk{
  background-color: #142640;
  color: #fff;
}
.bg-pa{
  background-color: #F0F3F9;
}




body{
  padding-top: min(5.8vw,8rem);
}
.anchor{
  position: relative;
}
.anchor span{
  position: absolute;
  top: max(-5.8vw,-8rem);
}

.nav{
  width: 100%;
  height: min(5.8vw,8rem);
  background-color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;

  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.nav::before{
  content: "";
  display: block;
  width: 100%;
  height: 0;
  border-bottom: 1px solid #C9C9C9;
  position: absolute;
  left: 0;
  bottom: 0;
}
.nav a.logo{
  display: flex;
  align-items: center;
  margin: 0 auto 0 min(1.43vw,2rem);
}
.nav a.logo img{
  width: min(14.29vw,20rem);
}
.nav a.logo span{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 7.25em;
  line-height: 2.5em;
  border-radius: 0.8rem;
  border: 1px solid;
  font-size: min(1.14vw,1.6rem);
  font-weight: 700;
  margin-left: min(1.43vw,2rem);
}
.nav ul.nav-li{
  display: flex;
  height: 100%;
  font-size: min(1.14vw,1.6rem);
  margin-right: min(2.7vw,4rem);
  gap: min(1.43vw,2rem);
}
.nav ul.nav-li > li{
  display: flex;
  align-items: center;
  height: 100%;
  position: relative;
}
.nav ul.nav-li > li::before{
  content: "";
  display: block;
  width: 0;
  height: 0.3rem;
  background-color: #1AB27E;
  position: absolute;
  left: 0;
  bottom: 1px;
  transition: width 0.3s;
}
.nav ul.nav-li > li > a{
  opacity: 1;
}
.nav ul.nav-li > li:has(> a:hover)::before,
.nav ul.nav-li > li.has-sub:hover::before,
.nav ul.nav-li > li.active::before{
  width: 100%;
}
.nav ul.nav-li > li.has-sub > span{
  display: flex;
  align-items: center;
  height: 100%;
  cursor: pointer;
}
.nav ul.nav-li > li.has-sub > span::after{
  content: "";
  display: block;
  width: 1rem;
  height: 0.6rem;
  background: url(../images/common/arrow-btm.svg) center center no-repeat;
  background-size: contain;
  margin-left: 0.3em;
}
.nav ul.nav-li > li.has-sub ul.sub{
  width: 24rem;
  background: #fff;
  opacity: 0;
  pointer-events: none;
  padding: 0 2rem;
  position: absolute;
  left: 0;
  top: 100%;
  transition: opacity 0.3s, padding 0.3s;
}
.nav ul.nav-li > li.has-sub:hover ul.sub{
  opacity: 1;
  pointer-events: unset;
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.nav a.entry-btn{
  display: flex;
  justify-content: center;
  align-items: center;
  width: fit-content;
  height: 100%;
  padding: 0 1.25em;
  border-left: 1px solid #1AB27E;
  box-sizing: border-box;
  font-size: min(1.14vw,1.6rem);
  font-weight: 700;
  transition: background-color 0.3s, color 0.3s;
}
.nav a.entry-btn svg{
  display: block;
  width: 0.6rem;
  margin-left: 1.2rem;
}
.nav a.entry-btn:hover{
  opacity: 1;
  background: #fff;
  color: #1AB27E;
  border-color: #C9C9C9;
}
.nav a.entry-btn:hover svg path{
  fill: #1AB27E;
}


ul.pankuzu{
  margin-bottom: 4rem;
  text-align: left;
}
ul.pankuzu li{
  display: inline;
  font-size: 1.2rem;
}
ul.pankuzu li a{
  font-weight: 700;
}
ul.pankuzu li + li::before{
  content: "- ";
}
ul.pankuzu li:first-child::before{
  content: "● ";
  color: #2B58C7;
}
.low-header.c-pi ul.pankuzu li:first-child::before{
  color: #E6597A;
}
.low-header.c-or ul.pankuzu li:first-child::before{
  color: #F58B32;
}
ul.pankuzu li br{
  display: none;
}


.low-header{
  padding-top: 2rem;
  position: relative;
}
.low-header::before{
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 1440 / 600;
  background: url(../images/common/header-bg.jpg) center top no-repeat;
  background-size: 100% auto;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
}
.low-header.c-pi::before{
  background: url(../images/common/header-bg_p.jpg) center top no-repeat;
  background-size: 100% auto;
}
.low-header.no-bg::before{
  content: none;
}
.low-header .h1-en{
  font-size: 1.4rem;
  font-weight: 700;
}
.low-header h1{
  font-size: 4rem;
}
.low-header h1:has(+ big),
.low-header h1:has(+ p){
  margin-bottom: 3rem;
}
.low-header big{
  display: block;
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 0.4em;
}


.box-header .box{
  padding: 2rem 2.4rem 4.8rem;
  text-align: center;
  background-color: rgba(255,255,255,0.6);
  backdrop-filter: blur(2rem);
  -webkit-backdrop-filter: blur(2rem);
}
.box-header ul.pankuzu{
  margin-bottom: 1rem;
}
.box-header h1{
  margin-bottom: 2rem;
}
.nurse .box-header::before{
  background: url(../images/nurse/header-bg.jpg) center top no-repeat;
  background-size: 100% auto;
}
.rehabilitation .box-header::before{
  background: url(../images/rehabilitation/header-bg.jpg) center top no-repeat;
  background-size: 100% auto;
}


section{
  padding: 8rem 0;
  position: relative;
}
section.pt0{
  padding-top: 0;
}
.content{
  position: relative;
  z-index: 1;
}


.ro20{
  border-radius: 2rem;
}
.ro12{
  border-radius: 1.2rem;
}
.ro8{
  border-radius: 0.8rem;
}


.ttl-1-en{
  font-weight: 700;
  margin-bottom: 0.1em;
}
.ttl-1{
  font-size: 3.2rem;
  line-height: 1.4;
  margin-bottom: 3rem;
}
.ttl-1:has(+ .ttl-1-p){
  margin-bottom: 1.2rem;
}
.ttl-1-p{
  margin-bottom: 3rem;
}


.ttl-2{
  font-size: 2.4rem;
  padding: 0.5em 0;
  border-top: 1px solid #C9C9C9;
  border-bottom: 1px solid #C9C9C9;
  margin-bottom: 2rem;
}
.ttl-2.no-bd{
  border: none;
  padding: 0;
  margin-bottom: 1.2rem;
}


.ttl-3{
  font-size: 3.2rem;
  text-align: center;
  margin-bottom: 4rem;
}
.ttl-3:has(+ .ttl-3-p){
  margin-bottom: 1.6rem;
}
.ttl-3-p{
  text-align: center;
  margin-bottom: 4rem;
}


.detail-btn{
  display: flex;
  justify-content: center;
  align-items: center;
  width: fit-content;
  height: 5.2rem;
  border-radius: 2.6rem;
  padding: 0 2rem;
  border: 1px solid #C9C9C9;
  text-align: center;
  font-weight: 700;
  transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}
.detail-btn svg{
  display: block;
  width: 0.6rem;
  margin-left: 1rem;
}
.detail-btn:hover{
  opacity: 1;
  background-color: #142640;
  border-color: #142640;
  color: #fff;
}
.detail-btn:hover svg path{
  fill: #fff;
}


.arrow-btn{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 28rem;
  max-width: 100%;
  height: 6rem;
  border-radius: 3rem;
  background: #1AB27E;
  border: 1px solid #1AB27E;
  color: #fff;
  font-size: 1.8rem;
  text-align: center;
  font-weight: 700;
  position: relative;
  transition: background-color 0.3s, color 0.3s;
}
.arrow-btn svg{
  display: block;
  width: 0.6rem;
  position: absolute;
  right: 1.6rem;
  top: 50%;
  transform: translateY(-50%);
}
.arrow-btn:hover{
  opacity: 1;
  background: #fff;
  color: #1AB27E;
}
.arrow-btn:hover svg path{
  fill: #1AB27E;
}
.arrow-btn.bg-wh{
  background: #fff;
  color: #142640;
  border: none;
}
.arrow-btn.bg-wh svg path{
  fill: #142640;
}
.arrow-btn.bg-wh:hover{
  background: #142640;
  color: #fff;
}
.arrow-btn.bg-wh:hover svg path{
  fill: #fff;
}
.arrow-btn.bg-wh.gr{
  color: #1AB27E;
}
.arrow-btn.bg-wh.gr svg path{
  fill: #1AB27E;
}
.arrow-btn.bg-wh.gr:hover{
  background: #1AB27E;
  color: #fff;
}
.arrow-btn.bg-wh.gr:hover svg path{
  fill: #fff;
}


.swiper-obi .swiper-wrapper{
  transition-timing-function: linear;
}
.swiper-obi .swiper-slide,
.swiper-obi img{
  width: 100%;
  max-width: unset;
}


.zoom{
  display: block;
  overflow: hidden;
  will-change: transform;
}
.zoom img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.4s;
}
a.zoom:hover img,
a:hover .zoom img{
  transform: scale3d(1.1,1.1,1.1);
}


ul.interview-li{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.4rem;
}
ul.interview-li li{
  display: block;
}
.interview-li a{
  display: block;
  height: 100%;
  overflow: hidden;
  background: #F0F3F9;
}
.bg-pa .interview-li a{
  background: #fff;
}
.interview-li a .zoom{
  aspect-ratio: 324 / 220;
}
.interview-li a .zoom .blank-thumb{
  display: block;
  width: 100%;
  height: 100%;
  background: #ddd;
}
.interview-li a .inner{
  display: block;
  padding: 2rem;
}
.interview-li a .ttl{
  font-size: 1.8rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.interview-li a .ttl br{
  display: none;
}
.interview-li a .position{
  display: block;
  font-size: 1.4rem;
  margin-top: 0.5em;
}
.interview-li a .join{
  display: block;
  font-size: 1.2rem;
  color: #747B86;
}

@media screen and (min-width: 769px){
.swiper-interview .swiper-wrapper{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.4rem;
  transform: none !important;
}
}


.cta{
  background: url(../images/common/cta-bg.jpg) center center no-repeat;
  background-size: cover;
  color: #fff;
  text-align: center;
}
.cta .btn-catch{
  font-size: 1.4rem;
  font-weight: 700;
  margin: 2rem 0 0.6em;
}
.cta a.arrow-btn{
  margin: 0 auto;
}


footer {
  padding: 5rem 0;
}
footer .content{
  display: flex;
  justify-content: space-between;
  align-items: center;
}
footer .left a.logo{
  display: flex;
  align-items: center;
  margin: 0 auto 0 2rem;
}
footer .left a.logo img{
  width: 20rem;
}
footer .left a.logo span{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 7.25em;
  line-height: 2.5em;
  border-radius: 0.8rem;
  border: 1px solid;
  font-size: 1.6rem;
  font-weight: 700;
  margin-left: 2rem;
}
footer .right{
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 2rem;
  row-gap: 1rem;
}
ul.sns{
  display: flex;
  align-items: center;
  gap: 1.6rem;
}
ul.sns li{
  display: block;
  width: 2.8rem;
}
a.company-site-btn{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 13.2rem;
  height: 2.8rem;
  border-radius: 1.4rem;
  font-size: 1.4rem;
  font-weight: 700;
}
a.company-site-btn::before{
  content: "";
  display: block;
  width: 1.4rem;
  height: 1.4rem;
  background: url(../images/common/ico-ext_w.svg) center center no-repeat;
  background-size: contain;
  margin-right: 1rem;
}
footer .right .copy{
  width: 100%;
  font-size: 1.2rem;
  opacity: 0.5;
  text-align: right;
}




/* ページトップ */
#pagetop {
  display: none;
  position: fixed;
  bottom: 1.6rem;
  right: 1.6rem;
  z-index: 997;
}
#pagetop a {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 100%;
  width: 4rem;
  height: 4rem;
  background-color: #1AB27E;
}
#pagetop a img {
  width: 1.6rem;
  margin-top: -0.2rem;
}




/*　PC
------------------------------------------------------------------------------------------------*/
@media screen and (min-width: 769px){
.sp{ display: none !important; }

html{ font-size: 10px; }
body{ font-size: 1.6rem; }

.content{
  width: 100%;
	max-width: 114rem;
  padding: 0 5rem;
	margin: 0 auto;
}
.content.w80{
  max-width: 90rem;
}




/*　タブレット
------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 1140px){

html{ font-size: 0.877vw; }




}/*　タブレットここまで */
}/*　PCここまで */




/*　スマホ
------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 768px){
.pc{ display: none !important; }

html{ font-size: 2.55vw; }
body{ font-size: 1.4rem; }

.content{
	width: 100%;
	padding: 0 1.6rem;
}




body{
  padding-top: 6.4rem;
}
.anchor span{
  top: -6.4rem;
}

.nav{
  height: 6.4rem;
}
.nav a.logo{
  margin: 0 auto 0 1.2rem;
}
.nav a.logo img{
  width: 16rem;
}
.nav a.logo span{
  width: 8.8rem;
  line-height: 3.2rem;
  font-size: 1.4rem;
  margin-left: 1rem;
}


#nav-open{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 6.4rem;
  height: 6.4rem;
  background-color: #1AB27E;
  padding-bottom: 1.3rem;
  cursor: pointer;
  margin-left: auto;
  position: relative;
  z-index: 3;
}
#nav-open .txt{
  margin-top: 4rem;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
}
#nav-open .txt::before{
  content: 'メニュー';
}
#nav-open.active .txt::before{
  content: '閉じる';
}
#nav-open span,#nav-open span:before,#nav-open span:after {
  content: "";
  display: block;
  background: #fff;
  height: 3px;
  border-radius: 1.5px;
  width: 2.3rem;
  position: absolute;
  transition: .3s ease-in-out;
}
#nav-open span{
  transition: background 0s .15s;
}
#nav-open span:before {
  bottom: 0.7rem;
  transform: rotate(0);
  transition: bottom .15s .15s, transform .15s;
}
#nav-open span:after {
  bottom: -0.7rem;
  transform: rotate(0);
  transition: bottom .15s .15s, transform .15s;
}

#nav-content {
  display: block;
  width: 100%;
  height: calc(100% - 6.4rem);
  background: #fff;
  padding: 0 0 4rem;
  position: fixed;
  top: 6.4rem;
  right: 0;
  z-index: 2;

  overflow-y: scroll;
  overscroll-behavior: contain;
  -ms-overflow-style: none; /* バー非表示 IE・Edge用 */
  scrollbar-width: none; /* バー非表示 Firefox用 */

  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
}
#nav-content::before{
  content: "";
  display: block;
  width: 1px;
  height: calc(100% + 1px);
  position: absolute;
  left: 0;
  top: 0;
}
/* バー非表示 Chrome・Safari用 */
#nav-content::-webkit-scrollbar{
  display: none;
}
#nav-content.active {
  opacity: 1;
  pointer-events: unset;
}
#nav-open.active span {
  background: transparent;
}
#nav-open.active span:before {
  bottom: 0;
  transform: rotate(-40deg);
  transition: bottom .15s, transform .15s .15s;
}
#nav-open.active span:after {
  bottom: 0;
  transform: rotate(40deg);
  transition: bottom .15s, transform .15s .15s;
}


#nav-content ul.h-nav > li{
  border-bottom: 1px solid #E8E8E8;
}
#nav-content ul.h-nav > li > a{
  display: block;
  padding: 1.2rem 2rem;
  font-size: 1.6rem;
  font-weight: 700;
  position: relative;
}
#nav-content ul.h-nav > li > a::before{
  content: "";
  display: block;
  width: 0.6rem;
  height: 1rem;
  background: url(../images/common/arrow-right.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
}
#nav-content ul.h-nav > li.has-sub{
  padding: 1.2rem 2rem;
}
#nav-content ul.h-nav li small{
  display: block;
  font-size: 1.2rem;
  color: #747B86;
  margin-bottom: 0.6em;
}
#nav-content ul.h-nav li ul.sub li + li{
  margin-top: 0.7rem;
}
#nav-content ul.h-nav li ul.sub li a{
  display: flex;
  align-items: center;
  font-size: 1.6rem;
  line-height: 1.5;
  font-weight: 700;
  position: relative;
}
#nav-content ul.h-nav li ul.sub li a::before{
  content: "";
  display: block;
  width: 0.8em;
  height: 0;
  border-top: 2px solid;
  margin-right: 0.5em;
}
#nav-content .btn-catch{
  text-align: center;
  font-weight: 700;
  margin: 2rem 0 0.5em;
}
#nav-content a.arrow-btn{
  margin: 0 auto;
}
#nav-content .ext-wrap{
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-top: 4rem;
}


ul.pankuzu{
  margin-bottom: 2.4rem;
}
ul.pankuzu li{
  font-size: 1rem;
}


.low-header{
  padding-top: 1.6rem;
}
.low-header::before{
  aspect-ratio: 390 / 480;
  background: url(../images/common/header-bg_sp.jpg) center top no-repeat;
  background-size: 100% auto;
}
.low-header.c-pi::before{
  background: url(../images/common/header-bg_p_sp.jpg) center top no-repeat;
  background-size: 100% auto;
}
.low-header .h1-en{
  font-size: 1.2rem;
}
.low-header h1{
  font-size: 2.4rem;
}
.low-header h1:has(+ big),
.low-header h1:has(+ p){
  margin-bottom: 2rem;
}
.low-header big{
  font-size: 1.8rem;
  line-height: 1.5;
  margin-bottom: 0.5em;
}


.box-header .box{
  padding: 1.2rem 1.2rem 2rem;
}
.box-header ul.pankuzu{
  margin-bottom: 2.4rem;
}
.box-header h1{
  margin-bottom: 2rem;
}
.box-header p{
  text-align: left;
  padding: 0 0.8rem;
}
.nurse .box-header::before{
  background: url(../images/nurse/header-bg_sp.jpg) center top no-repeat;
  background-size: 100% auto;
}
.rehabilitation .box-header::before{
  background: url(../images/rehabilitation/header-bg_sp.jpg) center top no-repeat;
  background-size: 100% auto;
}


section{
  padding: 4rem 0;
}


.ro20{
  border-radius: 1.2rem;
}
.ro12{
  border-radius: 0.8rem;
}


.ttl-1-en{
  font-size: 1.2rem;
}
.ttl-1{
  font-size: 2rem;
  margin-bottom: 2rem;
}
.ttl-1-p{
  margin-bottom: 2rem;
}


.ttl-2{
  font-size: 2rem;
  padding: 0.7em 0;
  text-align: center;
  margin-bottom: 2rem;
}
.ttl-2.no-bd{
  font-size: 1.8rem;
  text-align: left;
}


.ttl-3{
  font-size: 2rem;
  margin-bottom: 2rem;
}
.ttl-3:has(+ .ttl-3-p){
  margin-bottom: 1.2rem;
}
.ttl-3-p{
  margin-bottom: 2rem;
}


.detail-btn{
  height: 4.2rem;
  padding: 0 1.6rem;
}
.detail-btn.sp-center{
  width: 24rem;
  margin: 2.4rem auto 0;
  position: relative;
}
.detail-btn.sp-center::after{
  position: absolute;
  right: 1.6rem;
  top: 50%;
  transform: translateY(-50%);
}


.arrow-btn{
  width: 31rem;
  height: 5.6rem;
}


.swiper-obi .swiper-slide{
  width: 74rem;
}


ul.interview-li{
  grid-template-columns: 100%;
  gap: 1.6rem;
}
.interview-li a .inner{
  padding: 1.6rem;
}
.interview-li a .ttl{
  font-size: 1.6rem;
}
.swiper-interview a .inner{
  padding: 1.2rem;
}
.swiper-interview a .ttl{
  font-size: 1.4rem;
}
.swiper-interview a .position{
  margin-top: 0.3em;
}

.swiper-interview{
  margin-top: 2rem;
  overflow: unset;
}
.swiper-interview .swiper-slide{
  width: 30.4rem;
  height: auto;
  margin-right: 2rem;
}
.swiper-interview .swiper-slide:last-child{
  margin-right: 0;
}


.cta{
  background: url(../images/common/cta-bg_sp.jpg) center center no-repeat;
  background-size: cover;
}
.cta .content{
  width: 31rem;
  padding: 0;
  margin: 0 auto;
}
.cta p.ttl-1-p{
  text-align: left;
}
.cta .btn-catch{
  font-size: 1.4rem;
  font-weight: 700;
  margin: 2rem 0 0.6em;
}
.cta a.arrow-btn{
  margin: 0 auto;
}


footer .content{
  display: block;
}
footer .left a.logo{
  width: fit-content;
  margin: 0 auto 2.8rem;
}
footer .left a.logo img{
  width: 16rem;
}
footer .left a.logo span{
  width: 8.8rem;
  line-height: 3.2rem;
  font-size: 1.4rem;
  margin-left: 1rem;
}
footer .right{
  justify-content: center;
  row-gap: 2.8rem;
}
footer .right .copy{
  text-align: center;
}




}/*　スマホここまで */



