@charset "UTF-8";

/* ---------------------
  - *共通設定
  - *メインビジュアル
  - *スマホのみのエリア
  - *お知らせ
  - *ご挨拶
  - *当院の特徴
  - *診療案内
  - *医療コラム
  - *ループスライダー
--------------------- */
/*==================================================================================================================================

  *共通設定

==================================================================================================================================*/
/*----------inner----------*/
.home_inner {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 640px) {
  .home_inner {
    padding-left: 5%;
    padding-right: 5%;
  }
}

/*----------タイトル----------*/
main h2 {
  font-size: 26px;
  line-height: 1.6;
  text-align: center;
  margin-bottom: 30px;
}

main h3 {
  font-size: 20px;
  line-height: 1.8;
  margin-bottom: 20px;
}

/*==================================================================================================================================

  *メインビジュアル

==================================================================================================================================*/
.home_mv {
  position: relative;
  height: 710px;
}

.home_mv::before {
  aspect-ratio: 1920 / 90;
  top: -32px;
  left: 0;
  background: url(../images/mv_wave.png) bottom no-repeat;
  background-size: cover;
  width: 100%;
  height: 90px;
  z-index: 1;
  content: '';
  position: absolute;
  transform: scale(1, -1);
}

.home_mv::after {
  aspect-ratio: 1920 / 90;
  bottom: -40px;
  left: 0;
  background: url(../images/mv_wave.png) top no-repeat;
  background-size: cover;
  width: 100%;
  height: 90px;
  z-index: 1;
  content: '';
  position: absolute;
}

.home_mv_main {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100%;
  margin: 0 auto;
  width: 1200px;
}

/*　スライダー */
.slider-fade .slick-slide img {
  width: 100%;
  height: 710px;
  -o-object-fit: cover;
  object-fit: cover;
}

/*　キャッチコピー　*/
.main_catch {
  position: absolute;
  left: 0;
  top: 70px;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  justify-content: center;
}

.main_catch img {
  width: 462px;
  height: 246px;
  object-fit: contain;
}


/*　キャッチコピー（スライドごと）　*/
.slide_catch {
  z-index: 1;
  position: absolute;
  left: calc((100% - 1200px) / 2);
  top: 200px;
  display: inline-block;
  font-size: 32px;
  color: var(--text-color);
  line-height: 1.3;
  background: rgba(255, 255, 255, 0.6);
  padding: 5px 7px;
}

/*　RIBONバナー　*/
.home_mv .mv_ribon {
  position: absolute;
  bottom: 150px;
  left: 0;
}

/*　バナー　*/
.home_mv .mv_banner {
  position: absolute;
  bottom: 30px;
  left: 0;
}

.home_mv .mv_banner:not(.mv_banner-btn) {
  width: 550px;
  height: 110px;
}

.home_mv .mv_banner:not(.mv_banner-btn) img {
  max-height: 100%;
  width: auto;
}

.home_mv .mv_banner:not(.mv_banner-btn) a:hover {
  opacity: 0.8;
}

.mv_banner .btn01 a {
  font-size: 120%;
  line-height: 1.7;
  margin-top: 0;
  margin-bottom: 0;
}

@media screen and (max-width: 640px) {
  .home_mv {
    height: 330px;
  }

  .home_mv_main {
    width: 100%;
  }

  /* スライダー */
  .slider-fade .slick-slide img {
    height: 330px;
    object-position: 50% 60%;
  }

  /* キャッチフレーズ */
  .main_catch {
    width: 100%;
    transform: translate(-50%, -50%);
    left: 50%;
    top: 33%;
  }

  .catchcopy_tit span {
    font-size: 5vw;
  }

  .catchcopy_text span {
    font-size: 3vw;
  }

  .slide_catch {
    left: 0;
    top: 140px;
    right: 0;
    max-width: calc(100% - 20px);
    width: auto;
    margin: auto;
    padding: 10px;
    font-size: 5vw;
  }
}

/*==================================================================================================================================

  *スマホのみのエリア

==================================================================================================================================*/
@media screen and (max-width: 640px) {
  .top_sp_only .mv_banner,
  .top_sp_only .mv_ribon {
    text-align: center;
  }
}

/*==================================================================================================================================

  *お知らせ

==================================================================================================================================*/
/* パターンE(pattern05) お知らせ+医院概要+アクセス */
.top_news.pattern05 {
  padding-top: 50px;
  padding-bottom: 70px;
  position: relative;
}

.top_news.pattern05::before {
  aspect-ratio: 173 / 685;
  top: 122px;
  left: 0;
  background: url(../images/common_bg_left.png) bottom no-repeat;
  background-size: contain;
  width: auto;
  height: 685px;
  z-index: -1;
  content: '';
  position: absolute;
}

.top_news.pattern05::after {
  aspect-ratio: 295 / 529;
  top: 135px;
  right: 0;
  background: url(../images/news_bg_right.png) bottom no-repeat;
  background-size: contain;
  width: auto;
  height: 529px;
  z-index: -1;
  content: '';
  position: absolute;
}

.top_news.pattern05 .btn01 {
  text-align: center;
}

.top_news.pattern05 .btn01 a {
  margin-top: 60px;
}

.top_news.pattern05 .top_news_list li {
  padding: 30px 0;
  border-bottom: 2px dashed #cccccc;
}

.top_news.pattern05 .top_news_list li:last-child {
  border-bottom: none;
}

.top_news.pattern05 .top_news_list li a {
  color: var(--text-color);
}

.top_news.pattern05 .top_news_list li a:hover {
  color: var(--main-color);
}

.top_news.pattern05 .top_news_list li span {
  font-size: 14px;
  margin-right: 20px;
  color: #777777;
  position: relative;
  padding-left: 18px;
}

.top_news.pattern05 .top_news_list li span::before {
  font-family: "Font Awesome 5 Free";
  content: "\f017";
  font-weight: 500;
  display: block;
  height: 15px;
  position: absolute;
  left: 0px;
  top: -4px;
  bottom: 0;
}

.top_news.pattern05 .top_news_list li em {
  text-align: center;
  display: inline-block;
  padding: 2px 10px;
  font-style: normal;
  margin-right: 20px;
  font-size: 14px;
  letter-spacing: 0.05em;
  font-family: var(--font-jp);
  min-width: 140px;
  border-radius: 50px;
}

/* 本文を表示するお知らせ */
.top_news.pattern05 .top_news_frame {
  max-height: 200px;
  overflow-y: auto;
  padding: 20px;
}

.top_news.pattern05 .top_news_frame .news_desc {
  margin-bottom: 10px;
}

/*スクロールバーの横幅指定*/
.top_news.pattern05 .top_news_frame::-webkit-scrollbar {
  width: 5px;
}

/*スクロールバーの背景色・角丸指定*/
.top_news.pattern05 .top_news_frame::-webkit-scrollbar-track {
  border-radius: 10px;
  background: var(--bg-color);
}

/*スクロールバーの色・角丸指定*/
.top_news.pattern05 .top_news_frame::-webkit-scrollbar-thumb {
  border-radius: 10px;
  background: var(--border-color);
}

/* 医院概要&アクセス */
.top_info.pattern05 {
  margin-bottom: 60px;
}

.top_info.pattern05 address {
  text-align: center;
  font-style: normal;
}


.top_info.pattern05 .top_info_free {
  margin-bottom: 20px;
}

.top_info.pattern05 .sche_wrap:not(:last-child) {
  margin-bottom: 30px;
}

@media print,
screen and (min-width: 641px) {
  .top_news.pattern05 .home_inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 53px;
    background: var(--bg-color);
    padding: 45px 53px;
    border-radius: 40px;
  }

  /* お知らせ */
  .top_news.pattern05 .top_news_list {
    width: 788px;
  }


  .top_news.pattern05 .top_news_frame {
    width: 70%;
  }

  .top_news.pattern05 .top_news_list li {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
}

@media screen and (max-width: 640px) {
  .top_news.pattern05 .btn01 {
    text-align: center;
    margin-top: 25px;
  }

  .top_news.pattern05 .top_news_list li a {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .top_info.pattern05 {
    margin-bottom: 50px;
  }
}

/*==================================================================================================================================

  *ご挨拶

==================================================================================================================================*/
.sec_top_doctor {
  position: relative;
  padding-top: 76px;
  padding-bottom: 200px;
}

.sec_top_doctor::before {
  aspect-ratio: 1925 / 239;
  top: 0px;
  left: 0;
  background: url(../images/greeting_wave.png) top no-repeat;
  background-size: cover;
  width: 100%;
  height: 239px;
  z-index: -1;
  content: '';
  position: absolute;
}

.sec_top_doctor::after {
  aspect-ratio: 1920 / 360;
  bottom: 0px;
  left: 0;
  background: url(../images/medical_wave.png) top no-repeat;
  background-size: cover;
  width: 100%;
  height: 360px;
  z-index: 1;
  content: '';
  position: absolute;
}

.sec_top_doctor .top_title {
  margin: 0 auto;
  background: url(../images/bg_ttl_red.png) center / contain no-repeat;
  width: 345px;
  height: 240px;
}

.top_greeting_flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 28px;
}

.top_greeting_flex_img {
  width: 380px;
  margin-bottom: 20px;
  position: relative;
  z-index: 2;
}

.top_greeting_flex_img::before {
  aspect-ratio: 313 / 209;
  bottom: 170px;
  left: -120px;
  background: url(../images/greeting_img_deco.png) top no-repeat;
  background-size: contain;
  width: 100%;
  height: 209px;
  z-index: -1;
  content: '';
  position: absolute;
}

.top_greeting_flex_img img {
  width: 100%;
  height: 386px;
  object-fit: cover;
  border-radius: 20px;
}

.top_doctor_name {
  font-weight: bold;
  text-align: center;
  margin-top: 40px;
}

.top_doctor_name p {
  margin-bottom: 0;
  letter-spacing: 0.1em;
  font-family: var(--font-jp);
}

.top_doctor_name .carr {
  font-size: 16px;
}

.top_doctor_name .name {
  font-size: 22px;
}

.top_doctor_name .name span {
  font-size: 16px;
  margin-right: 10px;
}

.top_greeting_flex_text {
  width: 739px;
}

.top_greeting_flex_text .text {
  margin-bottom: 12px;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2.1;
}

.top_doctor_name .btn01 {
  margin-top: 35px;
}

@media screen and (max-width: 640px) {
  .sec_top_doctor {
    padding: 50px 0;
  }

  .top_greeting_flex {
    display: block;
  }

  .top_greeting_flex_img {
    width: 100%;
  }

  .top_greeting_flex_text {
    width: 100%;
  }

  .top_greeting_flex_text .btn01 {
    text-align: center;
  }

  .top_doctor_img {
    text-align: center;
  }

  .top_doctor_name {
    text-align: center;
  }
}


/* ご挨拶パターンA(写真右) */
.sec_top_doctor.pattern01 .top_greeting_flex {
  flex-direction: row-reverse;
}

/*==================================================================================================================================

  *診療案内

==================================================================================================================================*/
.sec_top_medical {
  margin-top: -62px;
  position: relative;
  background: #F8F3E4;
}

.sec_top_medical::after {
  aspect-ratio: 1920 / 80;
  bottom: -80px;
  left: 0;
  background: url(../images/common_wave.png) top no-repeat;
  background-size: cover;
  width: 100%;
  height: 80px;
  z-index: 2;
  content: '';
  position: absolute;
  transform: scale(-1, -1);
}

.sec_top_medical .top_title {
  background: url(../images/bg_ttl_yellow.png) center / contain no-repeat;
  width: 346px;
  height: 251px;
  z-index: 1;
  position: absolute;
  top: -120px;
  left: 50%;
  transform: translateX(-50%);
}

.sec_top_medical .sec_top_medical_flex {
  display: flex;
  flex-wrap: wrap;
}

/* 診療案内パターンA(アイコンを目立たせるタイプ) */
.sec_top_medical.pattern01 .sec_top_medical_flex {
  justify-content: flex-start;
  gap: 28px 53px;
  padding-top: 180px;
  position: relative;
  z-index: 1;
}

.sec_top_medical.pattern01 .sec_top_medical_flex .item {
  width: 260px;
  border-radius: 30px;
}


.sec_top_medical.pattern01 .sec_top_medical_flex .item a {
  display: flex;
  flex-flow: column wrap;
  justify-content: flex-start;
  height: 100%;
}

.sec_top_medical.pattern01 .sec_top_medical_flex .item a .item_img {
  width: 260px;
  height: 260px;
  background: url(../images/medical_item_bg_blue.png) center / contain no-repeat;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 28px;
}

.sec_top_medical.pattern01 .sec_top_medical_flex .item:nth-child(even) a .item_img {
  background: url(../images/medical_item_bg_yellow.png) center / contain no-repeat;
}

.sec_top_medical.pattern01 .sec_top_medical_flex .item:nth-child(2) a .item_img,
.sec_top_medical.pattern01 .sec_top_medical_flex .item:nth-child(3) a .item_img,
.sec_top_medical.pattern01 .sec_top_medical_flex .item:nth-child(10) a .item_img,
.sec_top_medical.pattern01 .sec_top_medical_flex .item:nth-child(11) a .item_img {
  margin-bottom: 15px;
}

.sec_top_medical.pattern01 .sec_top_medical_flex .item a .item_img img {
  width: 58%;
  height: auto;
  position: relative;
  z-index: 1;
  margin-top: -32px;
}

.sec_top_medical.pattern01 .sec_top_medical_flex .item a .item_img::before {
  width: 220px;
  height: 220px;
  background: white;
  content: "";
  position: absolute;
  border-radius: 20px;
  z-index: 0;
}

.sec_top_medical.pattern01 .sec_top_medical_flex .item a .item_img::after {
  font-family: "Font Awesome 5 Free";
  content: "\f105";
  font-weight: 900;
  display: block;
  position: absolute;
  left: 50%;
  transform: translate(-50%);
  bottom: 32px;
  margin: auto;
  font-size: 12px;
  width: 23px;
  height: 23px;
  background: #98def8;
  color: white;
  border-radius: 50px;
  text-align: center;
}


.sec_top_medical.pattern01 .sec_top_medical_flex .item:nth-child(even) a .item_img::after {
  background: #ead08e;
}

.sec_top_medical.pattern01 .sec_top_medical_flex .item a h3 {
  font-size: 22px;
  letter-spacing: 0.1em;
  margin-left: auto;
  margin-right: auto;
  font-family: var(--font-jp);
  color: var(--text-color);
  text-align: center;
  margin-bottom: 0;
  line-height: 1.3;
}


.sec_top_medical.pattern01 .sec_top_medical_flex .item a p {
  margin-bottom: 20px;
}

.sec_top_medical.pattern01 .sec_top_medical_flex .item a .btn01 {
  text-align: center;
  color: #fff;
  background: var(--main-color);
  padding: 5px 15px;
  margin: auto auto 0;
  transition: 0.2s;
}

.sec_top_medical.pattern01 .sec_top_medical_flex .item a:hover .btn01 {
  background: var(--sub-color);
}
/*==================================================================================================================================

  *当院の特徴

==================================================================================================================================*/
.sec_top_feature {
  padding-top: 150px;
  padding-bottom: 300px;
  background: url(../images/medical_bg.png) top center no-repeat;
  background-size: 100% auto;
  background-position: 0% -120px;
  position: relative;
  z-index: 1;
}

main:not(:has(.sec_top_column)) .sec_top_feature {
  padding-bottom: 150px;
}

.sec_top_feature .top_title {
  background: url(../images/bg_ttl_blue.png) center / contain no-repeat;
  width: 359px;
  height: 252px;
  z-index: 1;
  margin: 0 auto;
}

.sec_top_feature .top_title h2 {
  margin-top: 40px;
}

.top_feature_item {
  position: relative;
}

/* 当院の特徴パターンB(写真と文章分離、1コンテンツ横幅フル) */
.top_feature_wrap {
  margin-top: 40px;
  position: relative;
  z-index: 2;
}

.sec_top_feature.pattern02 .top_feature_item {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 185px;
}

.sec_top_feature.pattern02 .top_feature_item:last-child {
  margin-bottom: 0;
}

.sec_top_feature.pattern02 .top_feature_item h3 {
  font-family: var(--font-jp);
  letter-spacing: 0.1em;
  font-size: 24px;
  line-height: 1.5;
  border-bottom: 2px dashed #70a6d4;
  width: 100%;
  text-align: center;
  padding-bottom: 10px;
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+2) h3 {
  border-bottom: 2px dashed var(--sub-color);
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+3) h3 {
  border-bottom: 2px dashed var(--red);
}

.sec_top_feature.pattern02 .top_feature_num {
  margin-bottom: 20px;
}

.sec_top_feature.pattern02 .top_feature_num p em {
  color: var(--main-color);
  font-family: var(--font-en);
  font-weight: 500;
  font-size: 65px;
  letter-spacing: 0.1em;
  line-height: 1;
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+2) .top_feature_num p em {
  color: var(--sub-color);
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+3) .top_feature_num p em {
  color: var(--red);
}

.sec_top_feature.pattern02 .top_feature_img {
  position: relative;
  width: 660px;
  margin-top: 15px;
  margin-left: 15px;
}

.top_feature_wrap.reverse .top_feature_item:nth-child(even) .top_feature_img {
  margin-right: 15px;
  margin-left: 0;
}


.sec_top_feature.pattern02 .top_feature_img::before {
  content: "";
  position: absolute;
  width: calc(100% + 30px);
  height: calc(100% + 30px);
  left: 50%;
  top: 50%;
  background: rgba(152, 222, 248, 0.25);
  border-radius: 50px;
  transform: translate(-50%, -50%);
  z-index: -1;
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+2) .top_feature_img::before {
  background: rgba(252, 241, 212, 0.5);
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+3) .top_feature_img::before {
  background: rgba(252, 221, 221, 0.4);
}

.sec_top_feature.pattern02 .top_feature_img img {
  width: 660px;
  height: 460px;
  object-fit: cover;
  border-radius: 40px;
}

.sec_top_feature.pattern02 .top_feature_box {
  width: 651px;
  height: 510px;
  position: absolute;
  right: 0;
  top: 85px;
  background: url(../images/feature_item_bg_blue.png) center / cover no-repeat;
  display: flex;
  justify-content: flex-start;
  flex-direction: column;
  align-items: center;
  padding: 56px 90px;
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+2) .top_feature_box {
  background: url(../images/feature_item_bg_yellow.png) center / cover no-repeat;
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+3) .top_feature_box {
  background: url(../images/feature_item_bg_pink.png) center / cover no-repeat;
}

.sec_top_feature.pattern02 .top_feature_text {
  letter-spacing: 0.1em;
}

.sec_top_feature.pattern02 .top_feature_box .btn01 {
  margin-top: auto;
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+2) .btn01 a {
  background: var(--sub-color);
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+2) .btn01 a:after {
  background: rgba(214, 180, 89, 0.3);
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+2) .btn01 a:before {
  color: var(--sub-color);
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+3) .btn01 a {
  background: var(--red);
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+3) .btn01 a:after {
  background: rgba(253, 161, 161, 0.4);
}

.top_feature_wrap.reverse .top_feature_item:nth-child(3n+3) .btn01 a:before {
  color: var(--red);
}

/* 左右互い違いパターン */
.top_feature_wrap.reverse .top_feature_item:nth-child(even) {
  flex-direction: row-reverse;
}

.top_feature_wrap.reverse .top_feature_item:nth-child(even) .top_feature_box {
  left: 0;
}

@media screen and (max-width: 640px) {
  .sec_top_feature.pattern02 .top_feature_item {
    flex-direction: column;
  }

  .sec_top_feature.pattern02 .top_feature_img {
    width: 100%;
    margin-right: 0;
    margin-bottom: 20px;
  }

  .sec_top_feature.pattern02 .top_feature_box {
    width: 100%;
  }

  .sec_top_feature.pattern02 .top_feature_box h3 {
    margin: 0 auto 20px;
  }

  .sec_top_feature.pattern02 .top_feature_box .btn01 {
    text-align: center;
  }

  /* 左右互い違いパターン */
  .top_feature_wrap.reverse .top_feature_item:nth-child(even) .top_feature_img {
    margin-left: 0;
  }
}

/*==================================================================================================================================

  *医療コラム

==================================================================================================================================*/
.sec_top_column {
  margin-top: -66px;
  margin-bottom: 80px;
  /* margin-top: 80px; */
  background: #F8F3E4;
  position: relative;
}

.sec_top_column::before {
  aspect-ratio: 1920 / 591;
  top: -525px;
  left: 0;
  background: url(../images/column_wave.png) top no-repeat;
  background-size: cover;
  width: 100%;
  height: 591px;
  z-index: 0;
  content: '';
  position: absolute;
}

.sec_top_column::after {
  aspect-ratio: 1920 / 80;
  bottom: -80px;
  left: 0;
  background: url(../images/common_wave.png) top no-repeat;
  background-size: cover;
  width: 100%;
  height: 80px;
  z-index: 2;
  content: '';
  position: absolute;
  transform: scale(-1, -1);
}


.sec_top_column .top_title {
  background: url(../images/bg_ttl_yellow.png) center / contain no-repeat;
  width: 343px;
  height: 251px;
  z-index: 1;
  margin: 0 auto;
}

.column_list_flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0 40px;
  margin-top: 40px;
}

.column_list_flex dl {
  width: 250px;
  margin-bottom: 20px;
}

.column_list_flex dt {
  padding: 12px 0;
  /* height: 60px; */
  background: #e49385;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  text-align: center;
  letter-spacing: 0.1em;
  font-family: var(--font-jp);
  border-radius: 50px;
}

.column_list_flex dl:nth-child(even) dt {
  background: var(--sub-color);
}

.column_list_flex dd {
  padding: 10px;
}

.column_list_flex dd ul li {
  position: relative;
  line-height: 2;
  display: flex;
  align-items: baseline;
  padding: 0 30px;
}

.column_list_flex dd ul li::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50px;
  background: #9c9c9c;
  margin-right: 10px;
}

.column_list_flex dd ul li a {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  color: var(--text-color);
  font-size: 15px;
  letter-spacing: 0.1em;
  font-weight: bold;
}

@media (hover: hover) {
  .column_list_flex dd ul li a:hover {
    color: var(--main-color);
  }
}

@media screen and (max-width: 640px) {
  .column_list_flex {
    /* gap: 20px 2%; */
    /* 一列にする場合はこちら */
    gap: 0;
  }

  .column_list_flex dl {
    /* width: 48%; */
    /* 一列にする場合はこちら */
    width: 100%;
  }
}

/*==================================================================================================================================

  *ループスライダー

==================================================================================================================================*/
.home_loopSlider {
  overflow: hidden;
}

@media screen and (max-width: 640px) {
  .home_loopSlider img {
    width: 200px;
  }
}

/* bnr */
.bnr_wrap {
  position: absolute;
  z-index: 1;
  bottom: 0;
  transform: translateX(-50%);
  left: 50%;
  width: 1185px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.bnr_open {
  width: 260px;
  height: auto;
  aspect-ratio: 78 / 77;
  background: url(../images/bnr_bg_blue.png) center / contain no-repeat;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
}

.bnr_open p {
  font-family: var(--font-jp);
  color: white;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
}

.bnr_open p:nth-child(2) {
  font-size: 35px;
  margin-top: 20px;
}

.bnr_grp {
  display: flex;
  gap: 30px;
}

.bnr_grp li {
  width: 190px;
  height: 187px;
  background: url(../images/bnr_red_bg.png) center / contain no-repeat;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
}

.bnr_grp li img {
  margin-bottom: 14px;
}

.bnr_grp li:nth-child(1) img {
  width: 39px;
  height: 30px;
  object-fit: contain;
}

.bnr_grp li:nth-child(2) {
  background: url(../images/bnr_yellow_bg.png) center / contain no-repeat;
}

.bnr_grp li:nth-child(2) img {
  width: 20px;
  height: 26px;
  object-fit: contain;
}

.bnr_grp li p {
  font-size: 24px;
  color: white;
  font-family: var(--font-jp);
  letter-spacing: 0.05em;
  font-weight: 700;
  text-align: center;
  line-height: 1.2;
}

.bnr_grp li p span {
  font-size: 32px;
}

/* 640 */
@media screen and (max-width: 640px) {
  .bnr_wrap {
    position: relative;
    width: 100%;
    flex-direction: column;
    margin-top: 30px;
  }

  .bnr_open {
    margin: 0 auto;
  }

  .bnr_grp {
    width: 95%;
    margin: 0 auto;
    gap: 0;
    justify-content: space-between;
  }

  .bnr_grp li {
    width: 49%;
    height: auto;
    aspect-ratio: 190 / 187;
  }

  .bnr_grp li p {
    font-size: 22px;
  }

  .bnr_grp li p span {
    font-size: 30px;
  }

  .main_catch {
    height: auto;
    text-align: center;
  }

  .main_catch img {
    aspect-ratio: 462 / 246;
    width: 60%;
    height: auto;
    margin: 0 auto;
  }

  .home_mv::after {
    height: 17px;
    background-size: cover;
    bottom: 0;
  }

  .home_mv::before {
    display: none;
  }

  .top_news.pattern05 {
    padding-bottom: 50px;
  }

  .top_news.pattern05 .home_inner {
    background: #F8F3E5;
    padding: 50px 20px;
    width: 90%;
    margin: 0 auto;
    border-radius: 20px;
  }

  .top_news.pattern05::before,
  .top_news.pattern05::after {
    display: none;
  }

  .top_news_list {
    margin-top: 20px;
  }

  .top_news.pattern05 .btn01 a {
    margin-top: 0;
  }

  .sec_top_doctor {
    padding-bottom: 100px;
  }

  .sec_top_doctor::before {
    height: 51px;
    background: url(../images/sp_greeting_wave.png) top no-repeat;
    background-size: cover;
  }

  .sec_top_doctor::after {
    height: 71px;
    background: url(../images/medical_wave.png) top no-repeat;
    background-size: cover;
  }

  .top_doctor_name {
    margin-top: 20px;
  }

  .top_doctor_name .btn01 {
    margin-top: 10px;
  }

  .top_greeting_flex_text .text {
    font-size: 14px;
  }

  .sec_top_medical {
    margin-top: -7px;
    padding-top: 30px;
    padding-bottom: 50px;
  }

  .sec_top_medical::after {
    height: 17px;
    bottom: -17px;
    background: url(../images/sp_common_wave.png) top no-repeat;
    background-size: cover;
  }

  .sec_top_medical .top_title {
    top: 0;
  }

  .sec_top_medical .top_title {
    position: relative;
    left: inherit;
    transform: inherit;
  }

  .sec_top_medical.pattern01 .sec_top_medical_flex {
    padding-top: 50px;
    gap: 0;
    justify-content: space-between;
    gap: 30px 0px;
  }

  .sec_top_medical.pattern01 .sec_top_medical_flex .item {
    width: 48%;
  }

  .sec_top_medical.pattern01 .sec_top_medical_flex .item a .item_img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    margin-bottom: 10px;
  }

  .sec_top_medical.pattern01 .sec_top_medical_flex .item a .item_img img {
    width: 50%;
  }

  .sec_top_medical.pattern01 .sec_top_medical_flex .item a .item_img::before {
    aspect-ratio: 1 / 1;
    width: 85%;
    height: auto;
  }

  .sec_top_medical.pattern01 .sec_top_medical_flex .item a .item_img::after {
    bottom: 25px;
  }

  .sec_top_medical.pattern01 .sec_top_medical_flex .item a h3 {
    font-size: 18px;
  }

  .sec_top_feature {
    padding-top: 60px;
    padding-bottom: 70px;
    background: url(../images/sp_medical_bg.png) top center repeat;
    background-size: 100% auto;
    background-position: 0% 0px;
  }
	
  main:not(:has(.sec_top_column)) .sec_top_feature {
    padding-bottom: 45px;
  }

  .sec_top_feature.pattern02 .top_feature_img,
  .top_feature_wrap.reverse .top_feature_item:nth-child(even) .top_feature_img {
    margin: 0;
  }

  .sec_top_feature.pattern02 .top_feature_box {
    position: relative;
    aspect-ratio: 651 / 510;
    width: 100%;
    height: auto;
    background-size: contain;
    padding: 0px 50px;
    top: 0;
    margin-top: 20px;
    display: flex;
    justify-content: center;
  }

  .top_feature_wrap.reverse .top_feature_item:nth-child(3n+2) .top_feature_box,
  .top_feature_wrap.reverse .top_feature_item:nth-child(3n+3) .top_feature_box {
    background-size: contain;
  }

  .sec_top_feature.pattern02 .top_feature_img img {
    aspect-ratio: 660 / 460;
    height: auto;
    width: 100%;
  }

  .sec_top_feature.pattern02 .top_feature_img::before {
    width: calc(100% + 20px);
    height: calc(100% + 20px);
  }

  .sec_top_feature.pattern02 .top_feature_box h3 {
    font-size: 16px;
    margin-bottom: 5px;
  }

  .sec_top_feature.pattern02 .top_feature_num {
    margin-bottom: 0px;
  }

  .sec_top_feature.pattern02 .top_feature_num p em {
    font-size: 35px;
  }

  .sec_top_feature.pattern02 .top_feature_item {
    margin-bottom: 50px;
  }


  .top_feature_text {
    font-size: 12px;
  }

  .sec_top_feature.pattern02 .top_feature_box .btn01 {
    margin-top: 5px;
  }

  .sec_top_feature .btn01 a {
    font-size: 14px;
    padding: 10px 30px;
    min-width: 220px;
  }

  .sec_top_feature .btn01 a:after {
    content: "";
    position: absolute;
    width: calc(100% + 10px);
    height: calc(100% + 10px);
    left: 50%;
    top: 50%;
    background: rgba(150, 177, 216, 0.3);
    border-radius: 50px;
    transform: translate(-50%, -50%);
    z-index: -1;
  }

  .sec_top_column {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 50px;
    padding-bottom: 33px;
  }

  .sec_top_column::before {
    height: 127px;
    top: -112px;
    background: url(../images/sp_column_wave.png) top no-repeat;
    background-size: cover;
  }

  .sec_top_column::after {
    height: 17px;
    bottom: -17px;
  }

  .home_mv::before {
    display: none;
  }
}

@media screen and (max-width: 375px) {
  .sec_top_medical.pattern01 .sec_top_medical_flex .item a h3 {
    font-size: 16px;
  }

  .sec_top_feature.pattern02 .top_feature_num p em {
    font-size: 25px;
  }

  .sec_top_feature.pattern02 .top_feature_box h3 {
    font-size: 15px;
  }

  .top_feature_text {
    line-height: 1.5;
  }
}

/* hover */
@media (hover: hover) {
  .sec_top_medical.pattern01 .sec_top_medical_flex .item,
  .sec_top_medical.pattern01 .sec_top_medical_flex .item a .item_img {
    transition: 0.2s ease-in-out;
  }

  .sec_top_medical.pattern01 .sec_top_medical_flex .item:hover {
    transform: translateY(-10px);
  }

  .sec_top_medical.pattern01 .sec_top_medical_flex .item:hover a .item_img {
    filter: brightness(105%);
  }
}