@charset "UTF-8";
/* common
=================================================================== */
html {
  overflow-y: scroll;
  overscroll-behavior-y: none;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-size: 62.5%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
body {
  width: 100%;
  background-color: #fff;
  color: #777;
  font-weight: 400;
  font-size: 1.6rem;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "Helvetica Neue", Arial, "メイリオ", meiryo, sans-serif;
  font-feature-settings: "palt";
}
@media screen and (min-width: 768px),
print {
  body {
    font-size: 1.8rem;
  }
}
a {
  color: #777;
  transition: all .2s;
}
@media screen and (max-width: 767px),
print {
  a {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  }
}
@media screen and (min-width: 768px),
print {
  a:hover {
    color: #02a438;
  }
}
@media screen and (min-width: 1280px),
print {
  a[href^="tel:"] {
    pointer-events: none;
  }
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
main {
  line-height: 2;
  opacity: 0;
  transition: opacity .6s;
}
.is-loading main {
  opacity: 1;
  transition: opacity .6s;
}
/* header
=================================================================== */
.header {
  position: fixed;
  top: 0;
  z-index: 100;
  display: flex;
  width: 100%;
  height: 70px;
  padding-left: 1%;
  border-top: 10px solid #c0dd98;
  background-color: #fff;
  transition: transform .4s;
}
@media screen and (min-width: 768px),
print {
  .header {
    height: 100px;
  }
}
@media screen and (min-width: 920px),
print {
  .header {
    height: 166px;
  }
}
@media screen and (min-width: 768px),
print {
  .header.is-header {
    transform: translateY(-166px);
  }
}
.header__logo {
  display: flex;
  align-items: center;
  width: 182px;
}
@media screen and (min-width: 768px),
print {
  .header__logo {
    width: 280px;
  }
}
@media screen and (min-width: 920px),
print {
  .header__logo {
    max-width: 482px;
    width: 40%;
  }
}
.header__logo > a {
  display: block;
  color: #fff !important;
  text-decoration: none;
}
.header__logo > a:hover {
  opacity: .6;
}
.header__menu {
  flex: 1 0 10%;
}
.header__menuTop {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 1em;
  height: 60px;
  padding-right: 70px;
}
@media screen and (min-width: 768px),
print {
  .header__menuTop {
    align-items: flex-end;
    height: 90px;
    padding-right: 116px;
  }
}
.header__line {
  width: 43px;
}
@media screen and (min-width: 768px),
print {
  .header__line {
    width: auto;
  }
}
.header__line > a:hover {
  opacity: .7;
}
.header__contact {
  display: none;
  margin-top: .2em;
}
@media screen and (min-width: 768px),
print {
  .header__contact {
    display: block;
  }
}
.header__tel {
  display: flex;
  align-items: center;
  margin-bottom: .2em;
  color: #404040;
  color: #404040;
  text-decoration: none;
  font-weight: 700;
  font-size: 2.6rem;
  font-family: "Inter", sans-serif;
}
.header__telIcon {
  display: inline-block;
  width: 38px;
  height: 38px;
  margin-right: .3em;
  border: 1px solid #000;
  border-radius: 50%;
  background-image: url("../img/common/icon-phone.svg");
  background-position: center;
  background-size: 75%;
  background-repeat: no-repeat;
  vertical-align: text-bottom;
}
.header__reserve {
  display: block;
  padding: .1em .5em .2em .5em;
  border-radius: 30px;
  background-color: #6cbb00;
  color: #fff;
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  transition: all .3s;
}
.header__reserve:hover {
  background-color: #777;
  color: #fff;
}
/* drower nav
=================================================================== */
.drowerNav__toggle {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1000;
  display: inline-block;
  width: 60px;
  height: 60px;
  outline: none;
  border: none;
  background-color: #02a438;
  cursor: pointer;
}
@media screen and (min-width: 768px),
print {
  .drowerNav__toggle {
    width: 100px;
    height: 90px;
  }
}
.drowerNav__toggle span {
  position: absolute;
  left: 25%;
  display: inline-block;
  width: 50%;
  height: 3px;
  background-color: #fff;
  transition: all .5s;
}
.drowerNav__toggle span:nth-of-type(1) {
  top: 18px;
}
@media screen and (min-width: 768px),
print {
  .drowerNav__toggle span:nth-of-type(1) {
    top: 24px;
  }
}
.drowerNav__toggle span:nth-of-type(2) {
  top: 28px;
}
@media screen and (min-width: 768px),
print {
  .drowerNav__toggle span:nth-of-type(2) {
    top: 34px;
  }
}
.drowerNav__toggle span:nth-of-type(3) {
  top: 38px;
}
@media screen and (min-width: 768px),
print {
  .drowerNav__toggle span:nth-of-type(3) {
    top: 44px;
  }
}
.is-nav__open .drowerNav__toggle span:nth-of-type(1) {
  transform: translateY(10px) rotate(30deg);
}
@media screen and (min-width: 768px),
print {
  .is-nav__open .drowerNav__toggle span:nth-of-type(1) {
    transform: translateY(10px) rotate(25deg);
  }
}
.is-nav__open .drowerNav__toggle span:nth-of-type(2) {
  opacity: 0;
}
.is-nav__open .drowerNav__toggle span:nth-of-type(3) {
  transform: translateY(-10px) rotate(-30deg);
}
@media screen and (min-width: 768px),
print {
  .is-nav__open .drowerNav__toggle span:nth-of-type(3) {
    transform: translateY(-10px) rotate(-25deg);
  }
}
@media screen and (min-width: 768px),
print {
  .drowerNav__toggle:hover span:nth-of-type(2) {
    width: 30px;
  }
}
.drowerNav__toggle em {
  position: absolute;
  bottom: 18px;
  left: 50%;
  display: none;
  color: #fff;
  letter-spacing: .1em;
  font-style: normal;
  font-size: 1.2rem;
  transform: translateX(-50%);
}
@media screen and (min-width: 768px),
print {
  .drowerNav__toggle em {
    display: block;
  }
}
.drowerNav {
  position: fixed;
  top: 70px;
  right: -100%;
  z-index: 100;
  display: flex;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  gap: 2em;
  width: 100%;
  height: 100%;
  padding: 2em 4em 0 4em;
  border-bottom: 10px solid #6cbb00;
  background-color: #02a438;
  color: #fff;
  transform: rotate(.01deg);
}
@media screen and (min-width: 768px),
print {
  .drowerNav {
    top: 10px;
    justify-content: flex-end;
    gap: 5em;
    width: max(33%, 400px);
    padding: 5em 4em;
    transition: all .5s;
  }
}
.is-nav__open .drowerNav {
  right: 0;
  transition: all .5s;
}
.drowerNav__list {
  position: relative;
  width: 100%;
  list-style: none;
}
.drowerNav__item {
  position: relative;
  overflow: hidden;
}
.drowerNav__item::before {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: #fff;
  content: "";
  transition: transform .5s;
  transform: scale(1, 1);
  transform-origin: left top;
}
.drowerNav__item a {
  position: relative;
  display: block;
  padding: 1em .5em;
  color: #fff;
  text-decoration: none;
  font-weight: 500;
  font-size: 1.8rem;
  opacity: 0;
  transition: all .7s cubic-bezier(.22, 1, .36, 1) .3s;
  transform: matrix(1, 0, 0, 1, 0, 100);
}
@media screen and (min-width: 768px),
print {
  .drowerNav__item a {
    padding: 1.5em .5em;
    font-size: 2.6rem;
    transition: all 1s cubic-bezier(.22, 1, .36, 1) .5s;
  }
}
.is-nav__open .drowerNav__item a {
  opacity: 1;
  transform: matrix(1, 0, 0, 1, 0, 0);
}
@media screen and (min-width: 768px),
print {
  .drowerNav__item:hover::before {
    transform: scale(.9, 1);
  }
}
/* global nav
=================================================================== */
.globalNav {
  display: none;
  margin-top: 1.3em;
  padding-right: 2%;
}
@media screen and (min-width: 920px),
print {
  .globalNav {
    display: block;
  }
}
.globalNav__list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 2.8em;
  list-style: none;
  font-weight: 600;
  font-size: 1.8rem;
}
@media screen and (min-width: 920px),
print {
  .globalNav__list {
    font-size: 16px;
    font-size: 1.4545454545vw;
  }
}
@media screen and (min-width: 1280px),
print {
  .globalNav__list {
    font-size: 1.8rem;
  }
}
.globalNav__item {
  position: relative;
}
.globalNav__item::after {
  position: absolute;
  top: 50%;
  left: -2em;
  content: "／";
  transform: translateY(-50%);
}
.globalNav__item:first-child::after {
  content: "";
}
.globalNav__item::before {
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 0;
  height: 2px;
  background: #02a438;
  content: "";
  transition: width .3s;
}
@media screen and (min-width: 768px),
print {
  .globalNav__item:hover::before {
    width: 30px;
  }
}
.globalNav__item > a {
  color: #404040;
  text-decoration: none;
}
/* top page
=================================================================== */
.mv {
  position: relative;
  margin-top: 70px;
}
@media screen and (min-width: 768px),
print {
  .mv {
    margin-top: 100px;
  }
}
@media screen and (min-width: 920px),
print {
  .mv {
    margin-top: 166px;
  }
}
.mv__slide {
  position: relative;
  overflow: hidden;
  opacity: 1;
  transition: opacity 2s ease-out;
}
.mv__slide.js-loading {
  opacity: 0;
}
.mv__slide .slide-img img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
.mv__slide .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  margin: 0 5px !important;
  background: #fff !important;
  opacity: 1 !important;
}
@media screen and (min-width: 768px),
print {
  .mv__slide .swiper-pagination-bullet {
    width: 15px;
    height: 15px;
    margin: 0 8px !important;
  }
}
.mv__slide .swiper-pagination-bullet-active {
  background: #02a438 !important;
}
.mv__slide .swiper-pagination {
  bottom: 1em !important;
  z-index: 10;
}
.mv__time {
  z-index: 10;
  padding-top: 3em;
  padding-right: 1em;
  padding-left: 1em;
  background-color: #fdfaf8;
  opacity: 0;
  transition: opacity .6s;
}
@media screen and (min-width: 920px),
print {
  .mv__time {
    position: absolute;
    right: 2em;
    bottom: 2em;
    padding: 0;
    background-color: transparent;
  }
}
.is-loading .mv__time {
  opacity: 1;
  transition: opacity .6s;
}
.timetable {
  overflow: hidden;
  width: 100%;
  border-radius: 10px;
  background-color: rgba(255, 255, 255, .83);
  font-weight: 600;
  font-size: 1.6rem;
}
@media screen and (min-width: 768px),
print {
  .timetable {
    width: 590px;
    margin-inline: auto;
    font-size: 1.8rem;
  }
}
@media screen and (min-width: 768px),
print {
  .timetable.-top {
    width: 420px;
  }
}
.timetable.-top .note {
  text-align: center;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.6;
}
@media screen and (min-width: 768px),
print {
  .timetable.-top .note {
    margin-bottom: 1em;
    font-size: 16px;
  }
}
.timetable.-top > table {
  margin: .5em .8em;
}
@media screen and (min-width: 768px),
print {
  .timetable.-top > table {
    margin: .5em 2em;
  }
}
.timetable.-top tr:last-child {
  border-bottom: 1px solid #02a438;
}
.timetable__unit .timetable {
  margin-inline: auto;
  border-radius: 10px;
  box-shadow: 0 0 30px rgba(171, 171, 171, .3);
}
.timetable__unit .note {
  margin-top: 1.2em;
  text-align: center;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.8;
}
@media screen and (min-width: 768px),
print {
  .timetable__unit .note {
    font-size: 18px;
  }
}
.timetable__ttl {
  padding: .5em;
  background-color: #02a438;
  color: #fff;
  text-align: center;
}
@media screen and (min-width: 768px),
print {
  .timetable__ttl {
    padding: .8em;
  }
}
.timetable > table {
  width: calc(100% - 1.6em);
  margin: .4em .8em;
  border-spacing: 0;
  border-collapse: collapse;
}
@media screen and (min-width: 768px),
print {
  .timetable > table {
    width: calc(100% - 4em);
    margin: .5em 2em 1em 2em;
  }
}
.timetable tr {
  border-bottom: 1px solid #02a438;
}
.timetable tr:last-child {
  border-bottom: none;
}
.timetable td {
  text-align: center;
}
.timetable th,
.timetable td {
  padding: .2em;
}
@media screen and (min-width: 768px),
print {
  .timetable th,
  .timetable td {
    padding: .8em;
  }
}
.timetable th:first-child,
.timetable td:first-child {
  min-width: 100px;
  width: 30%;
  text-align: left;
  white-space: nowrap;
}
@media screen and (min-width: 768px),
print {
  .timetable th:first-child,
  .timetable td:first-child {
    min-width: 130px;
  }
}
@media screen and (min-width: 768px),
print {
  .-top.timetable th,
  .-top.timetable td {
    padding: .8em .2em;
  }
}
.top__conteiner {
  padding-top: 3em;
}
@media screen and (min-width: 768px),
print {
  .top__conteiner {
    padding-top: 4em;
  }
}
.top__info {
  padding: 2em 1em;
}
@media screen and (min-width: 768px),
print {
  .top__info {
    padding: 3em 4em;
    text-align: center;
  }
}
.top__infoTab {
  display: flex;
  flex-direction: column;
  gap: .8em;
  margin: 1em 0;
  list-style: none;
}
@media screen and (min-width: 768px),
print {
  .top__infoTab {
    align-items: center;
  }
}
.top__infoTab > li {
  display: block;
  padding: .2em .5em;
  border: 1px solid #d1d1d1;
  border-radius: 5px;
  background-color: #fdfaf8;
  line-height: 1.4;
}
@media screen and (min-width: 768px),
print {
  .top__infoTab > li {
    display: inline-block;
    padding: .2em 1em;
  }
}
.top__news {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: center;
  padding: 1.5em 1em 1em 1em;
}
@media screen and (min-width: 768px),
print {
  .top__news {
    flex-direction: row;
    gap: 3em;
    padding: 3em 4em 2em 4em;
  }
}
@media screen and (min-width: 1280px),
print {
  .top__news {
    gap: 6em;
  }
}
.top__news .ttl__primary {
  margin-bottom: 0;
}
.top__newsLink {
  margin-top: 1em;
  padding-bottom: 2em;
  text-align: center;
}
@media screen and (min-width: 768px),
print {
  .top__newsLink {
    margin-top: 0;
    padding-bottom: 3em;
  }
}
.top__featureTtl {
  color: #02a438;
  text-align: center;
  font-weight: 500;
  font-size: 2.2rem;
}
@media screen and (min-width: 768px),
print {
  .top__featureTtl {
    font-size: 2.3rem;
  }
}
.top__featureUnit {
  margin-bottom: 2em;
  padding-bottom: 2.2em;
  background-image: repeating-linear-gradient(90deg, #02a438, #02a438 6px, transparent 6px, transparent 10px);
  background-position: left bottom;
  background-size: 100% 3px;
  background-repeat: repeat-x;
}
.top__featureUnit:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  background: none;
}
.top__medical {
  margin-top: 2em;
  padding: 1.5em 1em 2em 1em;
  border-radius: 20px;
  box-shadow: 0 0 30px rgba(171, 171, 171, .3);
}
@media screen and (min-width: 768px),
print {
  .top__medical {
    padding: 2em;
  }
}
.top__medicalTtl {
  margin-bottom: 1.2em;
  padding-bottom: .8em;
  border-bottom: 1px solid #02a438;
  text-align: center;
  font-weight: 500;
  font-size: 2rem;
}
@media screen and (min-width: 768px),
print {
  .top__medicalTtl {
    padding-bottom: 1em;
  }
}
.top__medicalLink {
  margin-top: 1.5em;
  text-align: center;
}
.top__about {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1em;
  padding: 1em;
}
@media screen and (min-width: 768px),
print {
  .top__about {
    gap: 1.5em;
    padding: 3em;
  }
}
.top__about > a {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  border-radius: 10px;
  text-decoration: none;
  aspect-ratio: 460/300;
}
@media screen and (min-width: 768px),
print {
  .top__about > a {
    width: calc((100% - 1.5em) / 2);
  }
}
.cmenu {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.cmenu__img {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  aspect-ratio: 460/300;
}
.cmenu__img::after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, .24);
  content: "";
  transition: all .3s;
}
.top__about a:hover .cmenu__img::after {
  background-color: rgba(0, 0, 0, .5);
}
.cmenu__img > img {
  width: 100%;
  height: 100%;
  transition: transform .6s;
  transform: translateZ(0);
  object-fit: cover;
}
.top__about a:hover .cmenu__img > img {
  transform: scale(1.07) translateZ(0);
}
.cmenu__ttl {
  position: relative;
  z-index: 10;
  color: #fff;
  text-align: center;
  font-weight: 500;
  font-size: 1.8rem;
}
@media screen and (min-width: 768px),
print {
  .cmenu__ttl {
    font-size: 2rem;
  }
}
/* page common
=================================================================== */
.page__conteiner {
  padding-top: 4em;
}
@media screen and (min-width: 768px),
print {
  .page__conteiner {
    padding-top: 7em;
  }
}
.page__ttl {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 300px;
  margin-top: 70px;
  line-height: 1.5;
  opacity: 0;
  transition: opacity .6s;
}
@media screen and (min-width: 768px),
print {
  .page__ttl {
    margin-top: 100px;
  }
}
@media screen and (min-width: 920px),
print {
  .page__ttl {
    margin-top: 166px;
  }
}
.is-loading .page__ttl {
  opacity: 1;
  transition: opacity .6s;
}
.page__ttlImg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 380/300;
}
@media screen and (min-width: 768px),
print {
  .page__ttlImg {
    aspect-ratio: 1920/300;
  }
}
.page__ttlImg > img {
  width: 100%;
  height: 300px;
  object-fit: cover;
}
.page__ttlText {
  position: relative;
  z-index: 10;
  color: #fff;
  text-align: center;
  font-weight: 500;
  font-size: 2.2rem;
}
@media screen and (min-width: 768px),
print {
  .page__ttlText {
    font-size: 2.7rem;
  }
}
.page__ttlText::after {
  display: block;
  margin-top: .8em;
  content: attr(data-sub);
  font-weight: 700;
  font-size: 1.4rem;
  font-family: "Inter", sans-serif;
  line-height: 1;
}
@media screen and (min-width: 768px),
print {
  .page__ttlText::after {
    font-size: 1.6rem;
  }
}
/* about page
=================================================================== */
.about__wrap {
  margin-bottom: 2.2em;
  padding-right: .5em;
  padding-bottom: 2.2em;
  padding-left: .5em;
  background-image: repeating-linear-gradient(90deg, #02a438, #02a438 6px, transparent 6px, transparent 10px);
  background-position: left bottom;
  background-size: 100% 3px;
  background-repeat: repeat-x;
}
@media screen and (min-width: 768px),
print {
  .about__wrap {
    margin-bottom: 2.8em;
    padding-right: 2em;
    padding-bottom: 2.8em;
    padding-left: 2em;
  }
}
.about__list {
  display: inline-block;
  padding: 1.5em;
  border: 1px solid #02a438;
  border-radius: 10px;
  text-align: left;
}
@media screen and (min-width: 768px),
print {
  .about__list {
    min-width: 560px;
    padding: 2.5em 3em;
  }
}
.about__col {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 1em;
  margin-bottom: 3em;
}
@media screen and (min-width: 768px),
print {
  .about__col {
    flex-direction: row;
    gap: 2em;
    margin-bottom: 3em;
  }
}
.about__col:last-child {
  margin-bottom: 0;
}
.about__colUnit {
  flex: 1 0 10%;
}
.about__colTtl {
  position: relative;
  margin-bottom: .5em;
  padding-bottom: .7em;
  border-bottom: 1px solid #cfcfcf;
  color: #02a438;
  font-weight: 500;
  font-size: 2rem;
  line-height: 1.6;
}
@media screen and (min-width: 768px),
print {
  .about__colTtl {
    font-size: 2.4rem;
  }
}
.about__colTtl::after {
  display: block;
  margin-top: .3em;
  color: #aea8a8;
  content: attr(data-sub);
  font-weight: 700;
  font-size: 1.2rem;
  font-family: "Inter", sans-serif;
  line-height: 1;
}
@media screen and (min-width: 768px),
print {
  .about__colTtl::after {
    font-size: 1.4rem;
  }
}
.about__colImg {
  aspect-ratio: 408/275;
}
@media screen and (min-width: 768px),
print {
  .about__colImg {
    width: min(40%, 408px);
  }
}
.about__colImg > img {
  width: 408px;
  object-fit: cover;
}
.about__colText {
  font-size: 1.4rem;
  line-height: 1.8;
}
@media screen and (min-width: 768px),
print {
  .about__colText {
    font-size: 1.6rem;
  }
}
.about__colText > strong {
  display: block;
  margin-bottom: .3em;
  font-weight: 400;
  font-size: 1.6rem;
}
@media screen and (min-width: 768px),
print {
  .about__colText > strong {
    font-size: 1.8rem;
  }
}
/* doctor page
=================================================================== */
.doctor__wrap {
  margin-bottom: 2.2em;
  padding-right: .5em;
  padding-bottom: 2.2em;
  padding-left: .5em;
  border-bottom: 1px solid #cfcfcf;
}
@media screen and (min-width: 768px),
print {
  .doctor__wrap {
    margin-bottom: 2.8em;
    padding-right: 2em;
    padding-bottom: 2.8em;
    padding-left: 2em;
  }
}
.doctor__wrap:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.greeting {
  line-height: 2.2;
}
.greeting::after {
  display: block;
  clear: both;
  content: "";
}
.greeting > p {
  text-indent: 1em;
}
.greeting__img {
  float: right;
  width: 116px;
  margin-left: 1em;
  aspect-ratio: 402/486;
}
@media screen and (min-width: 768px),
print {
  .greeting__img {
    width: 200px;
    margin-bottom: 1em;
    margin-left: 2.5em;
  }
}
.greeting__name {
  margin-top: 1em;
  text-align: right;
}
@media screen and (min-width: 768px),
print {
  .greeting__name {
    margin-top: 3em;
  }
}
.profile {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 3em;
}
@media screen and (min-width: 768px),
print {
  .profile {
    flex-direction: row;
  }
}
.profile__ttl {
  margin-bottom: 1em;
  font-weight: 400;
  font-size: 2rem;
}
@media screen and (min-width: 768px),
print {
  .profile__ttl {
    font-size: 2.1rem;
  }
}
.profile__list {
  list-style: none;
}
.profile__list > li {
  display: flex;
  margin-top: .5em;
  line-height: 1.6;
}
.profile__list > li > span {
  display: block;
  min-width: 90px;
}
@media screen and (min-width: 768px),
print {
  .profile__list > li > span {
    min-width: 100px;
  }
}
/* menu page
=================================================================== */
@media screen and (min-width: 768px),
print {
  .beginner:first-child {
    width: 38%;
  }
}
@media screen and (min-width: 768px),
print {
  .beginner:last-child {
    width: calc(62% - 3em);
  }
}
.beginner__cont {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 2em;
}
@media screen and (min-width: 768px),
print {
  .beginner__cont {
    flex-direction: row;
    gap: 3em;
  }
}
.beginnerTtl {
  position: relative;
  margin-bottom: 1em;
  padding-bottom: .5em;
  border-bottom: 1px solid #cfcfcf;
  color: #02a438;
  font-weight: 400;
  font-size: 2rem;
  line-height: 1.6;
}
@media screen and (min-width: 768px),
print {
  .beginnerTtl {
    font-size: 2.4rem;
  }
}
.beginnerTtl::before {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 75px;
  height: 1px;
  background-color: #02a438;
  content: "";
}
.beginnerList {
  margin: 0 .5em;
  list-style: none;
  font-size: 1.4rem;
  line-height: 1.6;
}
@media screen and (min-width: 768px),
print {
  .beginnerList {
    margin: 0 .3em;
    font-size: 1.6rem;
  }
}
.beginnerList > li {
  position: relative;
  margin-bottom: .6em;
  padding-left: 1em;
}
.beginnerList > li::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "・";
}
.beginnerList > li > p {
  margin-top: .3em;
}
.menu__wrap {
  margin-bottom: 2em;
  padding-right: .5em;
  padding-bottom: 3em;
  padding-left: .5em;
  background-image: repeating-linear-gradient(90deg, #02a438, #02a438 6px, transparent 6px, transparent 10px);
  background-position: left bottom;
  background-size: 100% 3px;
  background-repeat: repeat-x;
}
@media screen and (min-width: 768px),
print {
  .menu__wrap {
    margin-bottom: 3em;
    padding-right: 2em;
    padding-bottom: 5em;
    padding-left: 2em;
  }
}
.menu__wrap:last-child {
  margin-bottom: 1em;
  padding-bottom: 0;
  background: none;
}
.menu__list {
  display: block;
  margin-right: .5em;
  margin-left: .5em;
  padding: 1.5em 1.5em .5em 1.5em;
  border: 1px solid #02a438;
  border-radius: 10px;
  text-align: left;
}
@media screen and (min-width: 768px),
print {
  .menu__list {
    display: inline-block;
    min-width: 560px;
    padding: 2.5em 3em;
  }
}
.menu__listCol {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
}
@media screen and (min-width: 768px),
print {
  .menu__listCol {
    flex-direction: row;
    justify-content: center;
    gap: 4em;
  }
}
.menu__list ul.list__dotto {
  margin-bottom: 1em;
}
@media screen and (min-width: 768px),
print {
  .menu__list ul.list__dotto {
    margin-bottom: 0;
  }
}
/* facility page
=================================================================== */
.facility__wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
  padding: 2em;
}
@media screen and (min-width: 768px),
print {
  .facility__wrap {
    gap: 2em 4em;
    padding: 4em;
  }
}
.facility__photo {
  width: 100%;
  text-align: center;
}
@media screen and (min-width: 768px),
print {
  .facility__photo {
    width: calc((100% - 4em) / 2);
  }
}
.facility__photo > img {
  border-radius: 10px;
  aspect-ratio: 430/300;
  object-fit: cover;
}
.facility__cap {
  margin-top: .5em;
  line-height: 1.4;
}
@media screen and (min-width: 768px),
print {
  .facility__cap {
    margin-top: 1em;
  }
}
/* access page
=================================================================== */
.access__wrap {
  padding-right: .5em;
  padding-left: .5em;
}
@media screen and (min-width: 768px),
print {
  .access__wrap {
    padding-right: 2em;
    padding-left: 2em;
  }
}
.access__add {
  margin-bottom: 2.2em;
  padding-bottom: 2.2em;
  border-bottom: 1px solid #cfcfcf;
  text-align: center;
}
@media screen and (min-width: 768px),
print {
  .access__add {
    margin-bottom: 2.8em;
    padding-bottom: 2.8em;
  }
}
.access__add > img {
  border-radius: 10px;
  aspect-ratio: 1850/824;
}
.access__add > figcaption {
  margin-top: 1em;
  font-size: 1.6rem;
  line-height: 1.6;
}
@media screen and (min-width: 768px),
print {
  .access__add > figcaption {
    margin-top: 2em;
    font-size: 2rem;
  }
}
.access__detail {
  margin: 0 0 0 1.5em;
  font-size: 1.4rem;
  line-height: 1.6;
}
@media screen and (min-width: 768px),
print {
  .access__detail {
    font-size: 1.6rem;
  }
}
.access__detail > p {
  margin-bottom: .5em;
}
.access__detail > ol {
  margin-bottom: .5em;
}
.access__unit {
  margin-top: 2em;
  font-size: 1.4rem;
}
@media screen and (min-width: 768px),
print {
  .access__unit {
    font-size: 1.6rem;
  }
}
.access__unit > dt {
  font-size: 1.6rem;
}
@media screen and (min-width: 768px),
print {
  .access__unit > dt {
    font-size: 1.8rem;
  }
}
.access__unit > dd {
  margin-top: .6em;
}
.access__map {
  margin-top: 2em;
  text-align: center;
}
@media screen and (min-width: 768px),
print {
  .access__map {
    margin-top: 3em;
  }
}
/* news page
=================================================================== */
.news__cont {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3em;
  padding: 1.5em 1em 3em 1em;
}
@media screen and (min-width: 768px),
print {
  .news__cont {
    padding: 3em 4em;
  }
}
.news__cont .ttl__primary {
  margin-bottom: 1em;
}
.news__list {
  flex: 1 0 10%;
  list-style: none;
}
.news__item {
  border-bottom: 1px solid #cfcfcf;
  transition: all .3s;
}
.news__itemTtl {
  font-weight: 500;
  font-size: 1.6rem;
}
@media screen and (min-width: 768px),
print {
  .news__itemTtl {
    font-size: 1.8rem;
  }
}
.news__item > a {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  padding: .8em 0;
  text-decoration: none;
  line-height: 1.6;
  transition: all .3s;
}
@media screen and (min-width: 768px),
print {
  .news__item > a {
    flex-direction: row;
    padding: 1em 0;
  }
}
.news__item > a > time {
  display: block;
  margin-right: 2em;
  margin-bottom: .2em;
  color: #aea8a8 !important;
  font-size: 1.4rem;
}
@media screen and (min-width: 768px),
print {
  .news__item > a > time {
    margin-bottom: 0;
    font-size: 1.6rem;
  }
}
.news__item > a:hover {
  color: #777 !important;
  opacity: .7;
}
@media screen and (min-width: 768px),
print {
  .news__item:hover {
    border-bottom: 1px solid #02a438;
  }
}
.post__cont {
  padding: 1.5em 1em 3em 1em;
}
@media screen and (min-width: 768px),
print {
  .post__cont {
    padding: 3em 4em;
  }
}
.post__ttl {
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 1.6;
}
@media screen and (min-width: 768px),
print {
  .post__ttl {
    font-size: 2rem;
  }
}
.post__date {
  display: block;
  margin-bottom: 1.5em;
  font-weight: 400;
  font-size: 1.2rem;
}
@media screen and (min-width: 768px),
print {
  .post__date {
    font-size: 1.6rem;
  }
}
.post__detail {
  position: relative;
  padding-top: 1.5em;
  border-top: 1px solid #cfcfcf;
  font-size: 1.4rem;
}
@media screen and (min-width: 768px),
print {
  .post__detail {
    font-size: 1.6rem;
  }
}
.post__detail::before {
  position: absolute;
  top: -1px;
  left: 0;
  width: 110px;
  height: 1px;
  background-color: #02a438;
  content: "";
}
.post__detail p {
  margin-bottom: 1em;
}
.post__link {
  margin-top: 2em;
  text-align: center;
}
@media screen and (min-width: 768px),
print {
  .post__link {
    margin-top: 3em;
  }
}
/* pagenation 01
=================================================================== */
.page-numbers {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: .6em;
  list-style: none;
  font-weight: 400;
  font-size: 1.4rem;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "Helvetica Neue", Arial, "メイリオ", meiryo, sans-serif;
  line-height: 1;
}
@media screen and (min-width: 768px),
print {
  .page-numbers {
    gap: 1em;
    font-size: 1.8rem;
  }
}
.page-numbers a.page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid #777;
  border-radius: 50%;
  color: #777;
  text-decoration: none;
  line-height: 1;
  line-height: 1;
}
@media screen and (min-width: 768px),
print {
  .page-numbers a.page-numbers {
    width: 40px;
    height: 40px;
  }
}
.page-numbers a.page-numbers:hover {
  background-color: #777;
  color: #fff;
}
.page-numbers .current {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #777;
  color: #fff;
}
@media screen and (min-width: 768px),
print {
  .page-numbers .current {
    width: 40px;
    height: 40px;
  }
}
.page-numbers .dots {
  display: inline-block;
  padding: 0 !important;
}
.page-numbers .prev,
.page-numbers .next {
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
}
.page-numbers .prev:hover,
.page-numbers .next:hover {
  background-color: transparent !important;
  color: #777 !important;
  opacity: .6;
}
.page-numbers .prev {
  transform: rotate(180deg);
}
/* pagenation 02
=================================================================== */
.pageNave {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5em;
  list-style: none;
  font-size: 1.4rem;
}
.pageNave a {
  text-decoration: none;
}
/* footer
=================================================================== */
.footer {
  padding: 2em 1em 3em 1em;
  text-align: center;
}
@media screen and (min-width: 768px),
print {
  .footer {
    padding: 3em 0 5em 0;
  }
}
.footer__map {
  text-align: center;
}
.footer__map > iframe {
  width: 100%;
  height: 500px;
  margin-top: 1em;
  border: 0;
  vertical-align: bottom;
}
.footer__add {
  font-size: 1.8rem;
  line-height: 1.5;
}
@media screen and (min-width: 768px),
print {
  .footer__add {
    font-size: 2rem;
  }
}
.footer__logo {
  max-width: 320px;
  margin-bottom: 1.5em;
  margin-inline: auto;
}
@media screen and (min-width: 768px),
print {
  .footer__logo {
    max-width: 350px;
  }
}
.footer__copy {
  margin-top: 4em;
  font-size: 1.2rem;
}
@media screen and (min-width: 768px),
print {
  .footer__copy {
    margin-top: 5em;
    font-size: 1.8rem;
  }
}
.fixBanner {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 10000;
  display: flex;
  width: 100%;
  height: 60px;
  background-color: #fff;
  transition: transform .3s ease;
}
@media screen and (min-width: 768px),
print {
  .fixBanner {
    display: none;
  }
}
.fixBanner.is-hidden {
  transform: translateY(100%);
}
.fixBanner > a {
  padding: .2em;
  text-decoration: none;
}
.fixBanner__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45%;
  font-weight: 500;
  font-size: 1rem;
}
.fixBanner__telUnit {
  text-align: center;
}
.fixBanner__telNo {
  color: #6cbb00;
  font-size: 1.5rem;
  font-family: "Inter", sans-serif;
}
.fixBanner__telIcon {
  display: inline-block;
  width: 28px;
  height: 28px;
  margin-right: .5em;
  background-image: url("../img/common/icon-phone-square.svg");
  background-position: center;
  background-size: 100%;
  background-repeat: no-repeat;
}
.fixBanner__reserve {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 55%;
  background-color: #6cbb00;
  color: #fff;
  font-weight: 500;
  font-size: 1.5rem;
}
.fixBanner__reserveIcon {
  display: inline-block;
  width: 20px;
  height: 23px;
  margin-right: .5em;
  background-image: url("../img/common/icon-reserve.svg");
  background-position: center;
  background-size: 100%;
  background-repeat: no-repeat;
}
/* parts
=================================================================== */
/* wrap */
.wrap {
  margin-right: .5em;
  margin-bottom: 3em;
  margin-left: .5em;
  padding-right: env(safe-area-inset-right);
  padding-left: env(safe-area-inset-right);
  overflow-wrap: anywhere;
}
@media screen and (min-width: 1056px),
print {
  .wrap {
    margin-right: .5em;
    margin-bottom: 5em;
    margin-left: .5em;
  }
}
@media screen and (min-width: 1280px),
print {
  .wrap {
    max-width: 1056px;
    margin-inline: auto;
  }
}
.wrap__inner {
  padding: 2.5em 1em;
}
@media screen and (min-width: 768px),
print {
  .wrap__inner {
    max-width: 850px;
    margin-inline: auto;
    padding: 4em 1em;
  }
}
@media screen and (min-width: 1280px),
print {
  .wrap__inner {
    padding: 4em 0;
  }
}
.wrap__inner.-w925 {
  max-width: 925px;
}
/* bg */
.bg {
  background-color: #fdfaf8;
}
.bg__white {
  background-color: #fff;
}
/* text */
.text--key {
  color: #02a438;
}
/* ttl */
.ttl__primary {
  margin-bottom: 1.5em;
  color: #02a438;
  text-align: center;
  font-weight: 500;
  font-size: 2.4rem;
  line-height: 1.8;
}
@media screen and (min-width: 768px),
print {
  .ttl__primary {
    margin-bottom: 2em;
    font-size: 2.7rem;
  }
}
.ttl__primary::after {
  display: block;
  color: #aea8a8;
  content: attr(data-sub);
  font-weight: 700;
  font-size: 1.4rem;
  font-family: "Inter", sans-serif;
  line-height: 1;
}
@media screen and (min-width: 768px),
print {
  .ttl__primary::after {
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 768px),
print {
  .ttl__primary.-left {
    text-align: left;
  }
}
.ttl__secondary {
  margin-bottom: 1em;
  color: #02a438;
  text-align: center;
  font-weight: 500;
  font-size: 2rem;
  line-height: 1.6;
}
@media screen and (min-width: 768px),
print {
  .ttl__secondary {
    margin-bottom: 1.5em;
    font-size: 2.7rem;
  }
}
.ttl__secondary.-gray {
  color: #777;
}
.ttl__secondary.-line {
  padding-bottom: 1em;
  border-bottom: 1px solid #02a438;
}
.ttl__line {
  margin-bottom: 1.5em;
  padding-left: .8em;
  border-left: 8px solid #02a438;
  font-weight: 400;
  font-size: 1.8rem;
  line-height: 1.6;
}
@media screen and (min-width: 768px),
print {
  .ttl__line {
    font-size: 2rem;
  }
}
/* tel */
.tel {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  color: #404040;
  text-decoration: none;
  font-weight: 700;
  font-size: 2.6rem;
  font-family: "Inter", sans-serif;
  line-height: 1;
}
@media screen and (min-width: 768px),
print {
  .tel {
    font-size: 3.5rem;
  }
}
.tel__icon {
  display: inline-block;
  width: 32px;
  height: 32px;
  margin-right: .3em;
  border-radius: 50%;
  background-color: #02a438;
  background-image: url("../img/common/icon-phone-w.svg");
  background-position: center;
  background-size: 65%;
  background-repeat: no-repeat;
}
@media screen and (min-width: 768px),
print {
  .tel__icon {
    width: 52px;
    height: 52px;
  }
}
.reserve {
  text-align: center;
  font-weight: 500;
}
.reserve__time {
  margin-bottom: 1em;
  font-size: 1.3rem;
}
@media screen and (min-width: 768px),
print {
  .reserve__time {
    margin-top: -.5em;
    font-size: 1.5rem;
  }
}
/* list */
.list__dotto {
  list-style: none;
}
.list__dotto > li {
  position: relative;
  margin-bottom: 1em;
  padding-left: 1.2em;
  line-height: 1.6;
}
.list__dotto > li:last-child {
  margin-bottom: 0;
}
.list__dotto > li::before {
  position: absolute;
  top: 7px;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background-color: #02a438;
  content: "";
}
@media screen and (min-width: 768px),
print {
  .list__dotto > li::before {
    top: 8px;
  }
}
.list__ol {
  margin: 0 1.2em;
  line-height: 1.6;
}
.list__kome {
  list-style: none;
  line-height: 1.6;
}
.list__kome > li {
  position: relative;
  padding-left: 1.2em;
}
.list__kome > li::before {
  position: absolute;
  top: 1px;
  left: 0;
  content: "※";
}
/* link */
.link__unit {
  margin-top: 2em;
  text-align: center;
}
.link__btn {
  display: inline-block;
  min-width: 220px;
  padding: .5em 1em;
  border-radius: 10px;
  background-color: #02a438;
  color: #fff;
  text-align: center;
  text-decoration: none;
  letter-spacing: .1em;
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1.8;
  cursor: pointer;
  transition: all .3s;
}
@media screen and (min-width: 768px),
print {
  .link__btn:hover {
    background-color: #777;
    color: #fff;
  }
}
.link__round {
  display: inline-block;
  min-width: 220px;
  padding: .5em 1em;
  border-radius: 30px;
  background-color: #02a438;
  color: #fff;
  text-align: center;
  text-decoration: none;
  letter-spacing: .1em;
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1.8;
  cursor: pointer;
  transition: all .3s;
}
@media screen and (min-width: 768px),
print {
  .link__round:hover {
    background-color: #777;
    color: #fff;
  }
}
.link__reserve {
  display: inline-block;
  min-width: 280px;
  padding: .5em 1em;
  border-radius: 30px;
  background-color: #02a438;
  color: #fff;
  text-align: center;
  text-decoration: none;
  font-weight: 600;
  font-size: 1.7rem;
  line-height: 1.8;
  cursor: pointer;
  transition: all .3s;
}
@media screen and (min-width: 768px),
print {
  .link__reserve {
    min-width: 360px;
    font-size: 2.2rem;
  }
}
@media screen and (min-width: 768px),
print {
  .link__reserve:hover {
    background-color: #777;
    color: #fff;
  }
}
/* utility
=================================================================== */
/* align */
.align--left {
  text-align: left;
}
.align--center {
  text-align: center;
}
.align--right {
  text-align: right;
}
/* margin */
.mt--xl {
  margin-top: 5rem;
}
@media screen and (min-width: 1280px),
print {
  .mt--xl {
    margin-top: 7rem;
  }
}
.mt--lg {
  margin-top: 3rem;
}
@media screen and (min-width: 1280px),
print {
  .mt--lg {
    margin-top: 5rem;
  }
}
.mt--md {
  margin-top: 2rem;
}
@media screen and (min-width: 1280px),
print {
  .mt--md {
    margin-top: 3rem;
  }
}
.mt--sm {
  margin-top: 1rem;
}
@media screen and (min-width: 1280px),
print {
  .mt--sm {
    margin-top: 2rem;
  }
}
.mt--xs {
  margin-top: .5rem;
}
@media screen and (min-width: 1280px),
print {
  .mt--xs {
    margin-top: 1rem;
  }
}
/* display */
@media screen and (min-width: 768px) {
  .display--sp {
    display: none !important;
  }
}
@media screen and (min-width: 1280px) {
  .display--tab {
    display: none !important;
  }
}
@media screen and (max-width: 1279px) {
  .display--pc {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .none--sp {
    display: none !important;
  }
}