@charset "UTF-8";
/*----------------------------------------
	variables
----------------------------------------*/
:root {
  --c_blue: #3785E6;
  --c_pink: #EC6D81;
  --c_green: #5ABC2B;
  --c_bage: #F7F5F2;
  --c_txt: #000000;
  --c_white: #FFFFFF;
  --f_kaku: "Zen Kaku Gothic New", sans-serif;
}

/*----------------------------------------
	base
----------------------------------------*/
html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  font-family: var(--f_kaku);
  font-weight: 500;
  font-size: 16px;
  font-style: normal;
  color: var(--c_txt);
  line-height: 1;
  overflow-x: hidden;
}

a,
button {
  text-decoration: none;
  color: var(--c_txt);
  transition: all 0.3s;
  cursor: pointer;
}

a:hover {
  opacity: 0.8;
}

li {
  list-style: none;
}

img,
iframe {
  max-width: 100%;
  height: auto;
  object-fit: cover;
}

/*----------------------------------------
	header
----------------------------------------*/
.header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  height: 80px;
  background-color: var(--c_bage);
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1140px;
  height: 100%;
  margin: 0 auto;
  padding: 0 10px;
}

.header__logo {
  flex-shrink: 0;
}

.header__logo-link {
  display: block;
}

.header__logo-img {
  display: block;
  width: 167px;
}

.header__body {
  display: flex;
  align-items: center;
  gap: 40px;
}

.header__entry {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 20px;
  border-radius: 10px;
  background-color: var(--c_blue);
}

.header__entry span {
  color: var(--c_white);
  font-size: 14px;
  font-weight: 700;
}

/*----------------------------------------
	gnav
----------------------------------------*/
.hamburger,
.gnav__toggle,
.gnav__overlay,
.gnav__item--entry,
.sp_only {
  display: none;
}

.gnav__list {
  display: flex;
  align-items: center;
  gap: 40px;
}

.gnav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-left: 18px;
}

.gnav__link::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  transform: translateY(-50%);
}

.gnav__link--green::before {
  background-color: var(--c_green);
}

.gnav__link--pink::before {
  background-color: var(--c_pink);
}

.gnav__link--blue::before {
  background-color: var(--c_blue);
}

/*----------------------------------------
	main
----------------------------------------*/
.main {
  margin-top: 80px;
}

/*----------------------------------------
	footer
----------------------------------------*/
.footer {
  position: relative;
  padding: 150px 0 0;
  background-color: var(--c_bage);
  overflow: hidden;
}

.footer__wave {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  line-height: 0;
  pointer-events: none;
}

.footer__wave-img {
  display: block;
  width: 100%;
  height: 260px;
  object-fit: cover;
  object-position: center top;
}

.footer__inner {
  position: relative;
  z-index: 1;
  background-color: #FCFBFA;
  padding: 0 20px 75px;
}
.footer__inner .footer__box {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}

.footer__bnrs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
}

.footer__bnr-link {
  display: block;
}

.footer__bnr-img {
  display: block;
  width: 100%;
  height: 60px;
  object-fit: contain;
}

.footer__body {
  display: grid;
  grid-template-columns: 235px minmax(0, 1fr);
  gap: 70px;
  margin-top: 60px;
}

.footer__logo {
  display: block;
  width: 167px;
}

.footer__logo-img {
  display: block;
  width: 100%;
}

.footer__address {
  margin-top: 20px;
}

.footer-nav__list {
  display: grid;
  grid-template-columns: repeat(5, max-content);
  gap: 30px 50px;
}

.footer-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-left: 18px;
}

.footer-nav__link::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--c_txt);
  transform: translateY(-50%);
}

.copyright {
  margin-top: 40px;
  color: #707070;
  font-size: 11px;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 1199px) {
  .footer-nav__list {
    grid-template-columns: repeat(4, max-content);
  }
}
/*----------------------------------------
	wrap
----------------------------------------*/
.wrap {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}

/*----------------------------------------
    section
----------------------------------------*/
.section {
  padding: 100px 0;
}

.section + .section {
  padding-top: 0;
}

/*----------------------------------------
    heading
----------------------------------------*/
.heading-lv2 {
  display: grid;
  gap: 10px;
}

.heading-lv2--sub {
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.1em;
}

.heading-lv2--main {
  font-size: 34px;
}

.recruit .heading-lv2 {
  text-align: center;
}

.recruit .heading-lv2--sub,
.cta .heading-lv2--sub,
.contact .heading-lv2--sub {
  color: var(--c_blue);
}

.news .heading-lv2--sub,
.facillity .heading-lv2--sub {
  color: var(--c_pink);
}

.heading-lv2-dot {
  position: relative;
  padding-left: 20px;
  font-size: 22px;
  flex-shrink: 0;
}

.heading-lv2-dot::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  transform: translateY(-50%);
}

.about .heading-lv2-dot {
  height: 22px;
}

.greet .heading-lv2-dot::before,
.about .heading-lv2-dot::before {
  background-color: var(--c_green);
}

.office .heading-lv2-dot::before,
.service .heading-lv2-dot::before,
.facility-about .heading-lv2-dot::before {
  background-color: var(--c_pink);
}

.contact-info .heading-lv2-dot::before {
  background-color: var(--c_blue);
}

.facility-news .news__btn {
  margin-top: 40px;
  text-align: center;
}

/*----------------------------------------
    txt
----------------------------------------*/
.txt {
  line-height: 1.6;
}

/*----------------------------------------
    btn
----------------------------------------*/
.btn-more {
  --btn-more-color: var(--c_blue);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 19px;
  padding: 15px 20px;
  border-radius: 10px;
  background-color: var(--btn-more-color);
  color: var(--c_white);
}

.btn-more span {
  font-weight: 700;
  font-size: 14px;
}

.btn-more--blue {
  --btn-more-color: var(--c_blue);
}

.btn-more--pink {
  --btn-more-color: var(--c_pink);
}

.btn-more--green {
  --btn-more-color: var(--c_green);
}

/*----------------------------------------
	pagetop
----------------------------------------*/
.pagetop {
  position: fixed;
  right: 40px;
  bottom: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.pagetop.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/*----------------------------------------
	トップページ専用
----------------------------------------*/
/* FV
------------------------------ */
.fv {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.fv img {
  width: 100%;
  object-fit: contain;
}

/* 採用情報
------------------------------ */
.recruit {
  position: relative;
  z-index: 0;
  background-color: var(--c_bage);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
  padding-bottom: 200px;
  overflow: hidden;
}

.recruit::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: calc(100% - 340px);
  background-color: var(--c_white);
}

.recruit::after {
  content: "";
  position: absolute;
  top: calc(100% - 510px);
  left: 50%;
  z-index: 0;
  width: 110vw;
  height: 400px;
  border-radius: 50%;
  background-color: var(--c_white);
  transform: translateX(-50%);
}

.recruit > * {
  position: relative;
  z-index: 1;
}

.recruit__lead {
  margin-top: 30px;
  color: var(--c_blue);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-align: center;
}

.recruit__txt {
  margin-top: 20px;
  text-align: center;
}

.recruit__cards {
  display: flex;
  justify-content: center;
  gap: 40px;
  margin-top: 49px;
}

.recruit__card {
  position: relative;
  flex: 1;
  min-height: 230px;
  padding: 23px 40px 0 55px;
  background-color: var(--c_bage);
}

.recruit__card-label {
  position: absolute;
  top: 21px;
  left: 0;
}

.recruit__card-ttl {
  font-weight: 700;
  font-size: 22px;
  line-height: 1.4;
}

.recruit__card-txt {
  margin-top: 10px;
  font-size: 14px;
}

.recruit__card-link {
  position: absolute;
  right: 39px;
  bottom: 30px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 10px;
  border-bottom: 2px solid currentColor;
}

.recruit__card-link span {
  font-weight: 700;
  font-size: 14px;
}

.recruit__card--blue .recruit__card-ttl,
.recruit__card--blue .recruit__card-link {
  color: var(--c_blue);
}

.recruit__card--pink .recruit__card-ttl,
.recruit__card--pink .recruit__card-link {
  color: var(--c_pink);
}

.recruit__card--green .recruit__card-ttl,
.recruit__card--green .recruit__card-link {
  color: var(--c_green);
}

.recruit__message {
  margin-top: 59px;
  text-align: center;
}

.recruit__message-ttl {
  color: var(--c_blue);
  font-weight: 700;
  font-size: 26px;
}

.recruit__message-txt {
  margin-top: 20px;
  text-align: center;
}

.recruit__slider {
  margin-top: 40px;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
}

.recruit__slider .swiper-wrapper {
  transition-timing-function: linear;
}

.recruit__slide {
  width: 380px;
  height: 247px;
}

.recruit__slide:nth-of-type(2n) {
  margin-top: 40px;
}

.recruit__slide-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.recruit__btn {
  margin-top: 46px;
  text-align: center;
}

/* お知らせ
------------------------------ */
.section.news {
  padding-top: 100px;
}

.news__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

.news__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  margin-top: 41px;
}

.news__link {
  display: block;
}

.news__thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 245/159;
}

.news__thumb img {
  width: 245px;
  height: 159px;
}

.news__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 14px;
}

.news__cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  border-radius: 10px;
  background-color: var(--c_pink);
  color: var(--c_white);
  font-size: 14px;
}

.news__date {
  font-weight: 700;
  letter-spacing: 0.1em;
}

.news__ttl {
  margin-top: 16px;
}

.news__filter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.news__filter .heading-lv2-dot::before {
  background-color: var(--c_pink);
}

.news__filter-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.news__filter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid var(--c_pink);
  background-color: var(--c_white);
  color: var(--c_pink);
  font-size: 14px;
  line-height: 1.4;
}

.news__filter-btn.is-active,
.news__filter-btn:hover {
  background-color: var(--c_pink);
  color: var(--c_white);
}

.news-archive .news__list {
  margin-top: 41px;
}

.news__empty {
  margin-top: 41px;
  text-align: center;
}

/* 理事長あいさつ
------------------------------ */
.section.greet {
  background-color: var(--c_bage);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
  padding-top: 100px;
  padding-bottom: 100px;
}

.greet__inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
}

.greet__inner + .greet__inner {
  margin-top: 100px;
  padding-top: 100px;
  border-top: 1px solid #E4E4E4;
}

.greet__body {
  width: 590px;
  flex-shrink: 0;
}

.greet__lead {
  margin-top: 67px;
  font-size: 22px;
}

.greet__lead-sub {
  margin-top: 25px;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}

.greet__texts {
  margin-top: 40px;
}

.greet__txt {
  line-height: 2;
}

.greet__txt + .greet__txt {
  margin-top: 30px;
}

.greet__profile {
  width: 435px;
  flex-shrink: 0;
  padding-top: 0;
}

.greet__img {
  display: block;
  width: 100%;
  height: 620px;
  object-position: center top;
}

.greet__profile-txt {
  line-height: 2;
  margin-top: 25px;
}

/* 法人概要
------------------------------ */
.about {
  background-color: var(--c_bage);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
}

.about__inner {
  display: flex;
  justify-content: space-between;
}

.about__inner + .about__inner {
  margin-top: 80px;
  padding-top: 80px;
  border-top: 1px solid #E4E4E4;
}

.about__table {
  border-top: 1px solid #E4E4E4;
  max-width: 815px;
}

.about__row {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 10px;
  padding: 30px 20px;
  border-bottom: 1px solid #E4E4E4;
}

.about__term {
  line-height: 2;
}

.about__desc {
  line-height: 2;
}

.about__desc iframe {
  display: block;
  max-height: 300px;
  aspect-ratio: 595/300;
  border: 0;
  background-color: var(--c_white);
}

.about__lead {
  line-height: 2;
  margin-top: 89px;
}

.about__facility-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  margin-top: 69px;
}

.about__facility-card {
  overflow: hidden;
  border-radius: 20px;
  background-color: var(--c_white);
}

.about__facility-img-wrap {
  height: 240px;
  overflow: hidden;
}

.about__facility-img {
  display: block;
  width: 100%;
  height: 100%;
}

.about__facility-body {
  position: relative;
  min-height: 360px;
  padding: 70px 10px 56px;
  text-align: center;
}

.about__facility-logo-wrap {
  position: absolute;
  top: -70px;
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background-color: var(--c_white);
  transform: translateX(-50%);
}

.about__facility-logo {
  display: block;
  width: 100px;
  height: auto;
  object-fit: contain;
}

.about__facility-logo--wide {
  width: 100px;
}

.about__facility-name {
  margin-top: 6px;
  font-size: 30px;
}

.about__tag-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 30px;
}

.about__tag {
  padding: 6px 10px;
  border-radius: 6px;
  background-color: #FDF1F2;
  font-size: 14px;
}

.about__card-link {
  padding-bottom: 10px;
  border-bottom: 2px solid currentColor;
  margin-top: 30px;
  display: inline-block;
  color: var(--c_pink);
}

.about__card-link span {
  font-weight: 700;
  font-size: 14px;
}

.about__bottom {
  margin-top: 75px;
}

.about__bottom-ttl {
  font-size: 38px;
  font-weight: inherit;
}

.about__bottom-ttl span {
  margin-left: 10px;
}

.about__bottom-links {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  margin-top: 27px;
  padding: 10px 20px;
  background-color: var(--c_white);
}

.about__bottom-link {
  display: flex;
  align-items: center;
  gap: 6px;
}

.about__bottom-link img {
  width: 12px;
  height: 12px;
}

.about__bottom-link span {
  font-size: 14px;
  color: #707070;
}

#about,
#news,
#office,
#service {
  scroll-margin-top: 80px;
}

/* 事業所紹介
------------------------------ */
.office {
  position: relative;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
  background-color: var(--c_bage);
  overflow: hidden;
}

.office__txt {
  margin-top: 30px;
  line-height: 2;
}

.office__slider {
  margin-top: 40px;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  overflow: visible;
  position: relative;
}

.office__slide {
  width: 720px;
  flex-shrink: 0;
}

.office__slide.swiper-slide-active {
  opacity: 1;
}

.office__img {
  display: block;
  width: 100%;
  height: 468px;
  object-fit: cover;
}

.office__caption {
  margin-top: 10px;
  text-align: center;
}

.office__arrow {
  position: absolute;
  top: 214px;
  z-index: 10;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transition: opacity 0.3s, transform 0.3s;
}

.office__arrow-img {
  display: block;
  width: 100%;
}

.office__arrow--prev {
  left: calc(50% - 384px);
}

.office__arrow--prev:hover {
  transform: translateX(-3px);
}

.office__arrow--next {
  right: calc(50% - 384px);
}

.office__arrow--next:hover {
  transform: translateX(3px);
}

/* サービス紹介
------------------------------ */
.service {
  background-color: var(--c_bage);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
}

.service__list {
  display: grid;
  gap: 47px;
  margin-top: 40px;
}

.service__item {
  padding: 40px 50px 24px;
  background-color: var(--c_white);
}

.service__ttl {
  padding-bottom: 20px;
  border-bottom: 1px solid #E4E4E4;
  font-size: 30px;
}

.service__number {
  margin-top: 20px;
}

.service__texts {
  margin-top: 30px;
  display: grid;
  gap: 30px;
}

.service__txt {
  line-height: 2;
}

.service__info {
  margin-top: 40px;
  border-top: 1px solid #E4E4E4;
}

.service__row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 20px;
  padding: 30px 40px;
  border-bottom: 1px solid #E4E4E4;
}

.service__download {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--c_pink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.service__download-icon {
  width: 18px;
  height: 18px;
}

/* CTA
------------------------------ */
.section.cta {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
  text-align: center;
  background-color: var(--c_bage);
}

.cta__inner {
  background-color: var(--c_white);
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding: 50px 0;
}

.cta__lead {
  margin-top: 30px;
  color: var(--c_blue);
  font-weight: 700;
  font-size: 24px;
}

.cta__btn {
  margin-top: 25px;
}

/* お問い合わせ
------------------------------ */
.section.contact {
  background-color: var(--c_bage);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
}

.contact__head {
  margin-top: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.contact__txt {
  line-height: 2;
}

.contact__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  margin-top: 30px;
}

.contact__card {
  min-height: 228px;
  padding: 25px;
  border-radius: 20px;
  background-color: var(--c_white);
  text-align: center;
  display: grid;
  place-content: center;
}

.contact__icon {
  display: block;
  width: 42px;
  height: 42px;
  margin: 0 auto 14px;
  object-fit: contain;
}

.contact__card-ttl {
  font-size: 24px;
}

.contact__note {
  margin-top: 10px;
}

.contact__btn {
  margin-top: 20px;
}

.contact__card-box {
  margin-top: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 15px;
}

.contact__tel {
  color: var(--c_blue);
  font-weight: 900;
  font-size: 42px;
  letter-spacing: 0.05em;
}

/* 施設紹介
------------------------------ */
.facillity {
  background-color: var(--c_bage);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.facillity__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  width: 75%;
}

.facillity__card {
  display: block;
  text-align: center;
}

.facillity__img {
  display: block;
  width: 100%;
  aspect-ratio: 282/178;
  height: auto;
  border-radius: 12px;
  object-fit: cover;
}

.facillity__name {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}

.facillity__name span {
  font-size: 18px;
}/*# sourceMappingURL=style.css.map */