@charset "UTF-8";

/* 初期状態 */
.c-animated__fadeIn,
.c-animated__fadeInDelay {
  opacity: 0;
  -webkit-transform: translateY(30px);
  transform: translateY(30px);
  -webkit-transition:
    opacity 0.8s ease,
    -webkit-transform 0.8s ease;
  transition:
    opacity 0.8s ease,
    -webkit-transform 0.8s ease;
  transition:
    opacity 0.8s ease,
    transform 0.8s ease;
  transition:
    opacity 0.8s ease,
    transform 0.8s ease,
    -webkit-transform 0.8s ease;
}

/* 表示状態 */
.c-animated__fadeIn.js-show,
.c-animated__fadeInDelay.js-show {
  opacity: 1;
  -webkit-transform: translateY(0);
  transform: translateY(0);
}

.u-paragraph p + p {
  margin-top: 1em;
}

.l-main {
  -webkit-padding-before: 120px;
  padding-block-start: 120px;
  min-height: 100vh;
}
@media screen and (max-width: 767px) {
  .l-main {
    -webkit-padding-before: 64px;
    padding-block-start: 64px;
  }
}

/* .inner {
  position: relative;
  width: 100%;
  max-width: 1120px;
  height: inherit;
  padding: 0 2.5rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .inner {
    width: 100%;
    padding: 0 1.25rem;
  }
}

.inner__narrow {
  max-width: 50rem;
}
@media screen and (max-width: 767px) {
  .inner__narrow {
    padding: 0 1.25rem;
    max-width: 600px;
  }
} */

/* セクション背景 */
.l-section {
  padding-block: 80px;
}
@media screen and (max-width: 767px) {
  .l-section {
    padding-block: 64px;
  }
}

.l-section-bg {
  background-color: #f1fbf0;
}

.c-section-title {
  text-align: center;
  margin-bottom: 40px;
}
.c-section-title .c-section-title__main {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 8px;
  color: #333;
}
.c-section-title .c-section-title__sub {
  font-size: 1rem;
  color: #009900;
  font-weight: 700;
}

.c-cta {
  background-color: #fff;
  border-radius: 16px;
  padding: 48px 24px;
  text-align: center;
  max-width: 960px;
  margin-inline: auto;
}
.c-cta .c-cta-lead {
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 24px;
}
.c-cta .c-cta-buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 24px;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.c-cta .c-cta-buttons .c-cta-btn {
  display: inline-block;
  padding: 16px 32px;
  font-size: 1.6rem;
  font-weight: bold;
  border-radius: 8px;
  color: #fff;
  background-color: #007bcd;
  text-decoration: none;
  -webkit-transition: background-color 0.3s;
  transition: background-color 0.3s;
}
.c-cta .c-cta-buttons .c-cta-btn:hover {
  background-color: #005fa3;
}
.c-cta .c-cta-time {
  font-size: 1.4rem;
  color: #555;
}

@media screen and (max-width: 767px) {
  .c-cta {
    padding: 32px 16px;
  }
  .c-cta .c-cta-buttons {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 16px;
  }
  .c-cta .c-cta-buttons .c-cta-btn {
    width: 100%;
  }
}
.to-list {
  text-align: right;
  margin-top: 24px;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media (any-hover: hover) {
  .to-list:hover {
    opacity: 0.7;
  }
}

@media screen and (max-width: 767px) {
  .p-drawer .c-contact-button {
    width: 100%;
    max-width: none;
  }
}

.c-animated__fadeIn {
  translate: 0 20px;
  opacity: 0;
}
.c-animated__fadeIn.js-show {
  translate: 0;
  opacity: 1;
}

/*==============================================================================
# トップページ
==============================================================================*/
/* MV全体 */
.p-mv {
  position: relative;
  width: 100%;
  height: 31.25vw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  background-image:
    -webkit-gradient(linear, left bottom, left top, from(rgba(0, 5, 69, 0.3)), to(rgba(0, 5, 69, 0.3))),
    url("../../../../assets/img/mv.jpg");
  background-image:
    linear-gradient(0deg, rgba(0, 5, 69, 0.3) 0%, rgba(0, 5, 69, 0.3) 100%), url("../../../../assets/img/mv.jpg");
  background-size: auto, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
}
@media screen and (max-width: 767px) {
  .p-mv {
    height: 100vw;
    max-height: 450px;
  }
}

.p-mv__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
}

.p-mv__content {
  text-align: left;
}

.p-mv__catch {
  font-size: clamp(24px, 2.8vw, 40px);
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 16px;
  color: #fff;
  text-align: center;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
}

/* 診療受付 */
.p-waiting {
  padding: 40px 20px;
  background: #f8f8f8;
  text-align: center;
}

.p-waiting__title {
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 16px;
}

.p-waiting__number {
  font-size: 1.4rem;
  margin-bottom: 24px;
}

.p-waiting__count {
  font-weight: bold;
  color: #e84a5f;
}

.p-waiting__app {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 16px;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; /* SP対応で自動改行 */
}
@media screen and (max-width: 767px) {
  .p-waiting__app {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    text-align: center;
  }
}

.p-waiting__app-icon {
  width: 48px;
  height: 48px;
}

.p-waiting__app-text {
  font-size: 1rem;
  max-width: 300px;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .p-waiting__app-text {
    text-align: center;
  }
}

/* 診療予定 */
.p-schedule {
  padding: 60px 20px;
  background: #f9f9f9;
  text-align: center;
}
.p-schedule .p-schedule__calendar {
  max-width: 100%;
  margin-bottom: 24px;
}
.p-schedule .p-schedule__calendar iframe {
  width: 100%;
  max-width: 800px;
  height: 600px;
  margin: 0 auto;
  display: block;
}
.p-schedule .p-schedule__note {
  font-size: 1rem;
  color: #555;
  line-height: 1.7;
}

/* 診療内容 */
.p-service {
  padding: 60px 20px;
  background: #f9f9f9;
}
.p-service .p-service__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}
@media screen and (max-width: 768px) {
  .p-service .p-service__list {
    grid-template-columns: 1fr;
  }
}
.p-service .p-service__card {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 24px;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  height: 100%;
}
.p-service .p-service__card-title {
  font-size: 1.2rem;
  font-weight: bold;
  margin-bottom: 16px;
}
.p-service .p-service__card-info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 32px;
}
.p-service .p-service__card-icon {
  width: 40px;
  height: 40px;
  -ms-flex-negative: 0;
  flex-shrink: 0;
}
.p-service .p-service__card-text {
  font-size: 0.95rem;
  color: #555;
  line-height: 1.6;
}
.p-service .p-service__card-link {
  -ms-flex-item-align: end;
  align-self: flex-end;
  margin-top: auto;
}
.p-service .p-service__card-link img {
  width: 24px;
  height: auto;
}

.p-about__block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 24px;
  margin-bottom: 40px;
}

.p-about__texts {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  min-width: 280px;
}

.p-about__heading {
  font-size: 1.4rem;
  font-weight: bold;
  margin-bottom: 12px;
}

.p-about__text {
  font-size: 1rem;
  color: #555;
  line-height: 1.7;
}

.p-about__img {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  min-width: 280px;
  text-align: center;
}
.p-about__img img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
.p-about__img span {
  font-size: 0.85rem;
  color: #999;
  display: block;
  margin-top: 8px;
}

.p-about__movie iframe {
  width: 100%;
  height: 300px;
  border-radius: 8px;
}

/*----------------------------------
    バナースライダー
-----------------------------------*/
.p-info-slider {
  /* ページネーションの余白 */
  /* ページネーションのサイズと色 */
  /* 画像サイズ調整 */
}
.p-info-slider .swiper-slide img {
  aspect-ratio: 650/243;
  -o-object-fit: cover;
  object-fit: cover;
}
.p-info-slider .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
.p-info-slider .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 6px;
}
.p-info-slider .swiper-pagination-bullet {
  background-color: #009900;
  height: 12px;
  width: 12px;
}
.p-info-slider .swiper-slide img {
  height: auto;
  width: 100%;
}

.p-info-slider {
  overflow: hidden;
  margin-top: 10px;
}

.p-info-slider__inner {
  padding-bottom: 36px;
}

.p-info-slider-pagination {
  bottom: -36px !important;
}

.p-info-slider .swiper-slide img {
  height: auto;
  width: 100%;
}

.p-info-slider .swiper-slide a {
  display: block;
}

/* 連続スクロールを一定速度（線形）に */
.p-info-slider .swiper-wrapper {
  -webkit-transition-timing-function: linear !important;
  transition-timing-function: linear !important;
}

/* 見切れ表示をきれいに */
.p-info-slider .swiper {
  overflow: visible;
}

/* 全スライドに半透明の白カバーをかぶせる */
/* アクティブ（メイン）のスライドだけカバーを消す */
/*----------------------------------
    製品案内
-----------------------------------*/
.p-product {
  padding-block: 60px;
  overflow: hidden;
}

.p-product__title {
  font-size: 2rem;
  text-align: center;
  margin-bottom: 40px;
}

.p-product__card {
  position: relative;
  background: #fff;
  overflow: hidden;
  border-radius: 16px;
  -webkit-box-shadow: 0 4px 24px 0 rgba(0, 153, 0, 0.2);
  box-shadow: 0 4px 24px 0 rgba(0, 153, 0, 0.2);
  width: 32%;
  margin-block: 24px;
}
.p-product__card:hover .p-product__card-img img {
  -webkit-transform: scale(1.08);
  transform: scale(1.08);
}
.p-product__card:hover .p-product__card-link {
  opacity: 0.7;
}

.p-product__card-img {
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
}
.p-product__card-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.p-product__card-text {
  padding: 16px;
  position: relative;
  z-index: 3;
  background: #fff;
  min-height: 180px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  height: 100%;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
}
.p-product__card-text img {
  height: 36px;
  -o-object-fit: contain;
  object-fit: contain;
  width: auto;
}

.p-product__card-heading {
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 8px;
  color: #0c1a37;
}
@media screen and (max-width: 767px) {
  .p-product__card-heading {
    font-size: 1.125rem;
  }
}

.p-product__card-link {
  margin-top: auto;
  color: #009900;
  font-weight: 700;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-item-align: end;
  align-self: flex-end;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.p-product__card-link span {
  margin-left: 8px;
}
.p-product__card-link span img {
  width: 24px;
  height: 24px;
  -o-object-fit: contain;
  object-fit: contain;
}

/* 製品案内矢印 */
.p-product-slider-controls {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center; /* ← ずれ防止 */
  margin-top: 40px;
  max-width: 160px;
  margin-inline: auto;
  height: 50px;
  position: relative;
}

.p-product-slider-prev,
.p-product-slider-next {
  width: 50px;
  height: 50px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  top: auto;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media (any-hover: hover) {
  .p-product-slider-prev:hover,
  .p-product-slider-next:hover {
    opacity: 0.7;
  }
}

/* デフォルトの文字矢印を消す */
.p-product-slider-prev::after,
.p-product-slider-next::after {
  display: none;
}

/* 画像の指定 */
.p-product-slider-prev {
  background-image: url("../../../../assets/img/icon-arrow-prev.png");
  left: 0;
}

.p-product-slider-next {
  background-image: url("../../../../assets/img/icon-arrow-next.png");
  right: 0;
}

/* お知らせ */
.p-news {
  padding: 60px 0;
  background: -webkit-gradient(linear, left top, left bottom, from(#f1fbf0), to(#fff));
  background: linear-gradient(180deg, #f1fbf0 0%, #fff 100%);
}
.p-news .p-news__inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px;
}
.p-news .p-news__content {
  border-radius: 16px;
  background: rgba(251, 255, 253, 0.9);
  -webkit-box-shadow: 0 4px 24px 0 rgba(0, 153, 0, 0.12);
  box-shadow: 0 4px 24px 0 rgba(0, 153, 0, 0.12);
  border-radius: 20px;
  padding: 40px 60px;
}
@media screen and (max-width: 767px) {
  .p-news .p-news__content {
    padding: 24px;
  }
}
.p-news .p-news__list {
  margin-top: 32px;
}
.p-news .p-news__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 32px;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  border-bottom: 1px solid #d7d7d7;
}
.p-news .p-news__item:first-child {
  border-top: 1px solid #d7d7d7;
}
.p-news .p-news__item .p-news__date {
  font-size: 14px;
  color: #9b9b9b;
  min-width: 100px;
  font-weight: 700;
}
.p-news .p-news__item .p-news__title {
  font-size: 16px;
  text-decoration: none;
  font-weight: 700;
}
.p-news .p-news__item .p-news__link {
  padding: 16px;
  width: 100%;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  text-decoration: none;
}
@media (any-hover: hover) {
  .p-news .p-news__item .p-news__link:hover {
    background: #f1fbf0;
  }
}
.p-news .to-list {
  text-align: right;
  margin-top: 24px;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media (any-hover: hover) {
  .p-news .to-list:hover {
    opacity: 0.7;
  }
}
.p-news .p-news-link-button {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 14px;
  color: #009900;
  font-weight: 700;
  text-decoration: none;
}
.p-news .p-news-link-icon {
  width: 16px;
  height: auto;
  margin-left: 8px;
}

/* お知らせ調整 */
#myFrame {
  border: none;
  width: 100%;
  height: 350px;
}

#newsWrap #newsList a {
  padding: 16px;
  width: 100%;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  text-decoration: none;
}
@media (any-hover: hover) {
  #newsWrap #newsList a:hover {
    background: #f1fbf0;
  }
}

@media (min-width: 768px) {
  .u-sp {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .u-pc {
    display: none !important;
  }
}
.u-font {
  font-family: "Noto Sans JP", sans-serif;
}
.u-font__jp {
  font-family: "Noto Sans JP", sans-serif;
}
.u-font__en {
  font-family: "Roboto", sans-serif;
}

.u-pointer__none {
  pointer-events: none !important;
}
@media screen and (max-width: 767px) {
  .u-pointer__none--sp {
    pointer-events: none !important;
  }
}
@media (min-width: 768px) {
  .u-pointer__none--pc {
    pointer-events: none !important;
  }
}
