@charset "UTF-8";

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

  00. multi-class
  01. key visual
  02. mhlw
  03. information
  04. afap
  05. message
  06. generation
  07. health
  08. menu
  09. case
  10. feature
  11. treatment
  12. consultation
  13. Photo Gallery
  14. column
  15. pub(news, schedule)
  16. instagram
  17. slide


  00. multi-class
========================================================================== */
.idx,
.idx dl,
.idx dt,
.idx dd,
.idx ul,
.idx li,
.idx a,
.idx span,
.idx i,
.idx div,
.idx p,
.idx h2,
.idx h3,
.idx section,
.idx nav,
.idx figure,
.idx article,
.idx aside,
.idx h2 {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.idx {
  position: relative;
}

.idx img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

.idx_otr {
  position: relative;
}

.idx_inr {
  position: relative;
  display: block;
  margin: 0 auto;
  min-width: 1100px;
}

.idx_box {
  display: block;
  position: relative;
}

.idx_ttl {
  position: relative;
}

.idx_ttl i {
  display: inline-block;
  vertical-align: baseline;
  line-height: 1;
}

.idx_lst li {
  position: relative;
  display: block;
  padding-left: 1.4em;
  margin-bottom: 0.5em;
  background-repeat: no-repeat;
  background-position: 0 0.4em;
  background-size: 0.8em auto;
}

.idx_lm {
  position: absolute;
  width: 100%;
  left: 0;
  top: 0;
  text-align: center;
}

.idx_lm span {
  display: inline-block;
  width: 75px;
}

.idx_lm span img {
  aspect-ratio: 75 / 86;
}

.idx_btn a,
.idx_btn span {
  display: inline-block;
}

.idx_btn a {
  padding: 0 1.2em 0.2em 0.6em;
  position: relative;
  color: #4a4a4a;
  letter-spacing: 0.1em;
  border-bottom: 1px solid #4a4a4a;
}

.idx_btn a::after {
  content: "";
  display: block;
  position: absolute;
  width: 0.7em;
  height: 1px;
  bottom: 0;
  right: 0;
  background-color: #4a4a4a;
  transform: rotate(45deg);
  transform-origin: right bottom;
}

/* ------------------------------ slick */
.slide-arrow {
  z-index: 90;
  position: absolute;
  cursor: pointer;
  transition: 0.3s;
}

.slide-arrow:hover {
  opacity: 0.7;
}

/* ------------------------------ twentytwenty */
.twentytwenty-handle {
  width: 75px;
  height: 75px;
  margin-left: -37px;
  margin-top: -37px;
  border: 0 none;
  background: rgba(255, 255, 255, 0.5);
}

.twentytwenty-horizontal .twentytwenty-handle::before,
.twentytwenty-horizontal .twentytwenty-handle:after {
  width: 1px;
  margin-left: -0.5px;
}

.twentytwenty-horizontal .twentytwenty-handle::before {
  bottom: 0;
}

.twentytwenty-horizontal .twentytwenty-handle::after {
  top: 0;
}

.twentytwenty-left-arrow,
.twentytwenty-right-arrow {
  width: 10px;
  height: 10px;
  border: 3px solid #505050;
  border-right: 0 none;
  border-bottom: 0 none;
  position: absolute;
}

.twentytwenty-left-arrow {
  margin-left: -24px;
  transform: rotate(-45deg);
}

.twentytwenty-right-arrow {
  margin-right: -24px;
  transform: rotate(135deg);
}

/* ----------------- video */
.video {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
}

.video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0 none;
  vertical-align: top;
}

/*
  01. key visual
========================================================================== */
.idx_kv {
  font-size: clamp(calc(15px * 0.93), calc((15 / 1400) * 100vw), calc(15px * 1.5));
  position: relative;
  aspect-ratio: 2800 / 1716;
  overflow: hidden;
  margin-bottom: 92px;
}

.idx_kv .idx_inr {
  padding: 2.13em 0 8em;
  width: 26em;
  min-width: unset;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url("../images/top/kv_msk.png");
  position: relative;
  z-index: 1;
}

.idx_kv_ttl {
  width: 16.8em;
  margin: 0 auto 2em;
}

.idx_kv_ttl img {
  aspect-ratio: 252 / 157;
}

.idx_kv_catch {
  width: 16.13em;
  margin: 0 auto 2.6em;
}

.idx_kv_catch img {
  aspect-ratio: 530 / 906;
}

.idx_kv_tel {
  text-align: center;
  color: #2e2e2e;
}

.idx_kv_tel p {
  display: inline-block;
}

.idx_kv_tel p span {
  display: block;
  padding: 0 0.6em;
}

.idx_kv_tel p span:nth-child(1) {
  font-size: 111%;
  line-height: 1;
  padding-bottom: 0.5em;
  border-bottom: 1px solid #2e2e2e;
}

.idx_kv_tel p span:nth-child(1)::before {
  content: "";
  display: inline-block;
  position: relative;
  vertical-align: middle;
  width: 1em;
  height: 1em;
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-image: url("../images/top/kv_ico_tel.png");
}

.idx_kv_tel p span:nth-child(2) {
  font-size: 167%;
  letter-spacing: 0.08em;
}

.idx_kv .kv-slider {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
}

.idx_kv .gnav{
	position: absolute;
	left: 0;
	bottom:0;
	width: 100%;
}
.idx_kv_banner {
    position: absolute; /* 絶対配置 */
    bottom: 6em; /* 下からの距離を調整（12em → 10em） */
    left: 1em; /* 左からの距離はそのまま */
    z-index: 10; /* 他の要素より前面に表示 */
}

.idx_kv_banner a img {
    width: 465px; /* バナーの幅はそのまま */
    height: auto; /* アスペクト比を保持 */
    border-radius: 8px; /* バナーの角を丸める */
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2); /* 影を少し強調 */
    transition: transform 0.3s ease; /* ホバー時のアニメーション */
}

.idx_kv_banner a img:hover {
    transform: scale(1.05); /* ホバー時に少し拡大 */
}

/* idx_link */
.idx_link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
  margin-bottom: 102px;
}

.btn-container {
  display: flex;
  justify-content: center;
  gap: 25px;
}

.idx_link a {
  position: relative;
  color: #fff;
  background-color: #303030;
  font-size: 28px;
  line-height: 1;
  width: 11em;
  text-align: center;
  padding: 0.5em 0;
}

.idx_link a:after {
  content: "";
  position: absolute;
  right: 5px;
  bottom: 5px;
  border: 6px solid transparent;
  border-right-color: #fff;
  border-bottom-color: #fff;
}

.description {
  text-align: center;
}


/*
  02. mhlw
========================================================================== */
.idx_mhlw {
  width: 1237px;
  margin: 0 auto;
  margin-bottom: clamp(calc(106px * 0.93), calc((106 / 1400) * 100vw), calc(106px * 1.5));
  border: 1px solid #b8b9ba;
  position: relative;
  text-align: center;
  padding: 80px 0 50px;
}

.idx_mhlw::before {
  content: "";
  display: block;
  position: absolute;
  pointer-events: none;
  width: 1226px;
  height: calc(100% - 10px);
  top: 4px;
  left: 4px;
  border: 1px solid #b8b9ba;
}

.idx_mhlw::after {
  content: "";
  display: block;
  position: absolute;
  z-index: 2;
  top: -5px;
  width: 60px;
  height: 20px;
  left: calc(50% - 30px);
  background: #fff;
}

.idx_mhlw .idx_lm {
  top: -24px;
  z-index: 3;
}

.idx_mhlw .idx_lm span {
  width: 71px;
}

.idx_mhlw .idx_lm span img {
  aspect-ratio: 71 / 79;
}

.idx_mhlw_ttl {
  font-size: 25px;
  margin: 0 auto 30px;
  color: #444444;
  letter-spacing: -0.05em;
}

.idx_mhlw_ttl i {
  font-size: 30px;
}

.idx_mhlw_ttl em {
  position: relative;
  display: inline-block;
  border-bottom: 1px solid #000;
  line-height: 1.2;
}

.idx_mhlw_lst {
  width: 624px;
  margin: 0 auto;
}

.idx_mhlw_lst li {
  display: block;
  text-align: left;
  font-size: 24px;
  margin-bottom: 0.3em;
  color: #444444;
  letter-spacing: 0.05em;
}

.idx_mhlw_lst li span {
  display: inline-block;
  padding-left: 1.2em;
  background-repeat: no-repeat;
  background-size: 24px auto;
  background-position: 0 0.3em;
  background-image: url("../images/top/mhlw_check.png");
}

/*
  03. information
========================================================================== */
.idx_info {
  font-size: clamp(calc(15px * 0.93), calc((15 / 1400) * 100vw), calc(15px * 1.5));
  padding: 4em 5.6em;
  margin: 0 0 85px;
  height: 39.1333em;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 0 0;
  background-image: url("../images/top/info_bg.jpg");
}

.idx_info::before {
  content: "";
  display: block;
  position: absolute;
  right: 0;
  bottom: 1.24em;
  height: 43em;
  width: 55.2em;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: 0 0;
  background-image: url("../images/top/info_fig.png");
}

.idx_info .idx_ttl {
  width: 27.6em;
  margin: 0 auto 1.8em 0;
  padding: 0 0 9.2em;
  background-image: url("../images/top/info_logo.png");
  background-size: 6.6em auto;
  background-position: 50% 100%;
  background-repeat: no-repeat;
}

.idx_info .idx_ttl img {
  aspect-ratio: 414 / 38;
}

.idx_info_lst li {
  font-size: 20.86px;
  font-size: 139%;
  position: relative;
  padding: 0 0 0 1.2em;
  margin: 0 0 0.8em;
  background-repeat: no-repeat;
  background-size: 1.39em auto;
  background-position: 0 0.3em;
  background-image: url("../images/top/info_blt.png");
}

.idx_info_lst li i {
  font-size: 25.21px;
  font-size: 120.85%;
}

.idx_info_lst li span {
  font-size: 29.44px;
  font-size: 141.13%;
}

.idx_info_lst li em {
  display: inline-block;
  line-height: 1.1;
  border-bottom: 1px solid #a0a0a0;
}

/*
  04. afap
========================================================================== */
.idx_afap {
  padding: 65px 0 85px;
  background-color: #fbf6f0;
}

.idx_afap .idx_ttl {
  text-align: center;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 28px;
}

.idx_afap .idx_ttl span {
  display: block;
}

.idx_afap .idx_ttl span:nth-of-type(1) {
  font-size: 20px;
  border-top: 2px solid #2e2e2e;
  border-bottom: 2px solid #2e2e2e;
  padding: 0.4em 0.6em 0.6em;
  margin-right: 1em;
  line-height: 1;
}

.idx_afap .idx_ttl span:nth-of-type(2) {
  font-size: 35.27px;
  letter-spacing: 0.06em;
}

.idx_afap .idx_ttl span:nth-of-type(2) i {
  font-size: 42.33px;
}

.idx_afap .idx_ttl span:nth-of-type(2) em {
  background: linear-gradient(to bottom, transparent 0, transparent 80%, #eddcc2 80%, #eddcc2 96%, transparent 96%);
}

.idx_afap .idx_inr {
  width: 1130px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 52px;
}

.idx_afap_ttl {
  position: absolute;
  top: 186px;
  right: -10px;
  font-size: 20px;
  box-shadow: 4px 4px 4px rgba(184, 169, 142, 0.25);
  padding: 0.1em 2em 0.1em 0.1em;
  background-color: #f8eddd;
  background-repeat: no-repeat;
  background-size: 10px auto;
  background-position: calc(100% - 0.5em) 50%;
  background-image: url("../images/top/afap_arrow.png");
  color: #3d3d3d;
}

.idx_afap_ttl i {
  font-size: 18px;
}

.idx_afap_fig {
  margin: 0 0 22px;
}

.idx_afap_fig img {
  aspect-ratio: 340 / 230;
}

.idx_afap_desc {
  font-size: 16px;
  color: #3d3d3d;
}

.idx_afap_desc em {
  color: #ac691a;
  text-decoration: underline;
}

/*
  05. message
========================================================================== */
.idx_msg {
  color: #313131;
  padding: 85px 0 0;
  margin: 0 0 180px;
}

.idx_msg .idx_lm {
  top: -44px;
}

.idx_msg_ttl {
  font-size: 45.86px;
  text-align: center;
  margin: 0 0 20px;
}

.idx_msg_ttl span {
  display: inline-block;
  position: relative;
  margin: 0 56px;
}

.idx_msg_ttl span:nth-of-type(1)::before {
  content: "";
  display: block;
  position: absolute;
  width: 40px;
  height: 41px;
  right: -80px;
  top: 30px;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url("../images/top/msg_cross.png");
}

.idx_msg_ttl span > i {
  font-size: 54.2px;
}

.idx_msg_ttl span em {
  position: relative;
  font-size: 83.79px;
  display: inline-block;
  padding: 0 0.2em;
}

.idx_msg_ttl span em::before,
.idx_msg_ttl span em::after {
  content: "";
  display: block;
  position: absolute;
  width: 15px;
  height: 30px;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url("../images/top/msg_ttl_deco.png");
}

.idx_msg_ttl span em::before {
  top: 0;
  left: 0;
}

.idx_msg_ttl span em::after {
  bottom: 0;
  right: 0;
  transform: rotate(180deg);
  transform-origin: top center;
}

.idx_msg_ttl span em i {
  font-size: 86.9px;
}

.idx_msg_ttl span:nth-of-type(2) em i:nth-of-type(1) {
  letter-spacing: -0.1em;
}

.idx_msg_ttl span:nth-of-type(2) em i:nth-of-type(2) {
  margin-left: -0.16em;
}

.idx_msg .idx_inr {
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  align-items: center;
  display: flex;
  width: 100%;
  margin-bottom: 40px;
}

.idx_msg .idx_inr em {
  color: #d28b38;
}

.idx_msg_lead {
  font-size: 29.18px;
  margin-left: 1.8em;
  margin-right: 0.6em;
}

.idx_msg_lead span {
  display: block;
}

.idx_msg_lead i {
  font-size: 25.01px;
}

.idx_msg_desc {
  font-size: 18px;
}

.idx_msg_desc p {
  line-height: 1.7;
  margin-left: 1.8em;
}

.idx_msg_fig img {
  aspect-ratio: 1400 / 565;
}

/*
  06. generation
========================================================================== */
.idx_gnr {
  margin: 0 0 200px;
}

.idx_gnr .idx_lm {
  top: -134px;
}

.idx_gnr .idx_ttl {
  padding: 0 0 102px;
}

.idx_gnr .idx_ttl {
  padding: 0 0 102px;
  text-align: center;
}

.idx_gnr .idx_ttl::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 3;
  width: 1px;
  height: 87px;
  left: 50%;
  bottom: -20px;
  background-color: #2e2e2e;
}

.idx_gnr .idx_ttl span {
  display: block;
  color: #473a34;
}

.idx_gnr .idx_ttl span:nth-of-type(1) {
  font-size: 34.59px;
}

.idx_gnr .idx_ttl span:nth-of-type(2) {
  font-size: 37.5px;
}

.idx_gnr .idx_ttl span:nth-of-type(2) i {
  font-size: 41.67px;
}

.idx_gnr .idx_ttl span:nth-of-type(2) em {
  display: inline-block;
  letter-spacing: 0.08em;
  margin-left: 0.1em;
  font-size: 50px;
  background: linear-gradient(to bottom, transparent 0, transparent 80%, #eddcc2 80%, #eddcc2 96%, transparent 96%);
}

/* ------------------------------- common */
.idx_gnr_btn {
  position: absolute;
  bottom: 25px;
  left: 0;
  width: 100%;
  text-align: center;
}

.idx_gnr_btn span {
  display: inline-block;
  padding: 0.2em 2.2em 0.2em 1.5em;
  background: #2e2e2e;
  color: #fff;
  font-size: 16.67px;
  background-image: url("../images/top/gnr_cmn_arrow.png");
  background-repeat: no-repeat;
  background-size: 7px auto;
  background-position: calc(100% - 0.8em) 50%;
}

/* ------------------------------- common part */
.idx_gnr_cmn {
  position: relative;
  padding: 50px 0 30px;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url("../images/top/gnr_cmn_bg.jpg");
}

.idx_gnr_cmn::after {
  content: "";
  display: block;
  position: absolute;
  z-index: 3;
  width: 1px;
  height: 166px;
  bottom: -166px;
  left: 50%;
  background-color: #2e2e2e;
}

.idx_gnr_cmn .idx_otr {
  width: clamp(calc(1334px * 0.93), calc((1334 / 1400) * 100vw), calc(1334px * 1.5));
  ;
  min-width: 1300px;
  max-width: 1400px;
  margin: 0 auto;
}

.idx_gnr_cmn .idx_inr {
  width: 836px;
  min-width: unset;
  margin-right: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 30px;
}

.idx_gnr_cmn .idx_gnr_hdg {
  grid-column: 1 / 3;
  margin-bottom: 40px;
}

.idx_gnr_cmn .idx_gnr_hdg span {
  display: block;
  width: 642px;
  margin: 0 auto;
}

.idx_gnr_cmn .idx_gnr_hdg span img {
  aspect-ratio: 642 / 69;
}

.idx_gnr_cmn .idx_box {
  background-color: #fff;
  padding: 0 0 72px;
  box-shadow: 2px 2px 5px rgba(108, 108, 108, 0.33);
}

.idx_gnr_cmn .idx_box em {
  color: #d4801c;
}

.idx_gnr_cmn_fig {
  margin: 0 0 10px;
}

.idx_gnr_cmn_fig img {
  aspect-ratio: 400 / 294;
}

.idx_gnr_cmn_ttl {
  margin: 0 28px 10px;
  border-bottom: 1px solid #977356;
  color: #2e2e2e;
  font-size: 22.92px;
  text-align: center;
}

.idx_gnr_cmn_ttl span {
  font-size: 27.08px;
  margin-left: -0.4em;
  margin-right: -0.2em;
}

.idx_gnr_cmn .idx_box:nth-of-type(1) .idx_gnr_cmn_ttl em i {
  font-size: 25px;
}

.idx_gnr_cmn .idx_box:nth-of-type(2) .idx_gnr_cmn_ttl > i {
  font-size: 20.83px;
}

.idx_gnr_cmn .idx_box:nth-of-type(2) .idx_gnr_cmn_ttl {
  letter-spacing: -0.04em;
}

.idx_gnr_cmn_desc {
  margin: 0 28px;
  font-size: 16.67px;
  color: #484848;
}

/* ------------------------------- each part */
.idx_gnr_each {
  padding: 50px 0 10px;
  background-color: #f1ebe7;
}

.idx_gnr_each .idx_gnr_hdg {
  position: relative;
  z-index: 5;
  margin: 0 auto 30px;
  width: 560px;
}

.idx_gnr_each .idx_gnr_hdg span img {
  aspect-ratio: 560 / 69;
}

.idx_gnr_each .idx_inr {
  width: 1340px;
  width: clamp(calc(1340px * 0.93), calc((1340 / 1400) * 100vw), calc(1340px * 1.5));
  min-width: 1300px;
  max-width: 1360px;
  padding: 36px 0;
  margin-bottom: 30px;
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-color: #fff;
  background-position: 100% 0;
}

.idx_gnr_each .idx_inr:nth-of-type(2) {
  background-position: 0 0;
}

.idx_gnr_each .idx_box {
  color: #2e2e2e;
  background-color: #fff;
  box-shadow: 3px 3px 5px rgba(162, 162, 162, 0.2);
  width: 858px;
  margin: 0 auto 0 0;
  padding: 24px 24px 24px 65px;
}

.idx_gnr_each .idx_inr:nth-of-type(2) .idx_box {
  box-shadow: -3px 3px 5px rgba(162, 162, 162, 0.2);
  margin: 0 0 0 auto;
}

.idx_gnr_each_ttl {
  position: relative;
  font-size: 26.87px;
  margin: 0 0 24px;
}

.idx_gnr_each_ttl::before {
  content: "";
  display: block;
  position: absolute;
  width: 99px;
  aspect-ratio: 1 / 1;
  left: -45px;
  top: -24px;
  background-repeat: no-repeat;
  background-image: url("../images/top/gnr_each_ttl_deco.png");
  background-size: 100% 100%;
}

.idx_gnr_each_ttl span {
  position: relative;
  z-index: 3;
  display: inline-block;
  border-bottom: 1px solid #e4d1c1;
  mix-blend-mode: multiply;
}

.idx_gnr_each_lead {
  display: flex;
  align-items: center;
  padding: 0 0 16px;
  margin: 0 auto 15px 0;
  border-bottom: 1px solid #2e2e2e;
}

.idx_gnr_each_lead p {
  display: block;
  text-align: center;
}

.idx_gnr_each_lead p i {
  display: block;
}

.idx_gnr_each_lead p .ja {
  font-size: 27.52px;
}

.idx_gnr_each_lead p .en {
  font-size: 39.63px;
  font-weight: bold;
}

.idx_gnr_each_lead figure {
  flex: 1;
}

.idx_gnr_each .idx_lst {
  font-size: 20.84px;
}

.idx_gnr_each .idx_lst li {
  background-image: url("../images/top/gnr_each_check.png");
  line-height: 1.3;
  letter-spacing: -0.06em;
}

.idx_gnr_each .idx_lst li span {
  display: block;
}

.idx_gnr_each .idx_lst li em {
  color: #bd731b;
}

.idx_gnr_each_fig {
  position: absolute;
}

.idx_gnr_each .idx_gnr_btn {
  width: unset;
  left: unset;
  right: 36px;
  bottom: 20px;
}

/* ------------------------------- each 01 */
.idx_gnr_01 {
  background-image: url("../images/top/gnr_01_bg.jpg");
}

.idx_gnr_01 .idx_gnr_each_lead {
  width: 355px;
}

.idx_gnr_01 .idx_gnr_each_lead p {
  margin-right: 42px;
}

.idx_gnr_01 .idx_gnr_each_lead figure img {
  width: 109px;
  aspect-ratio: 109 / 149;
}

.idx_gnr_01 .idx_lst li:nth-of-type(3) {
  padding-left: 0.8em;
}

.idx_gnr_01 .idx_gnr_each_fig {
  width: 366px;
  bottom: 40px;
  right: 36px;
}

.idx_gnr_01 .idx_gnr_each_fig img {
  aspect-ratio: 366 / 272;
}

/* ------------------------------- each 02 */
.idx_gnr_02 {
  background-image: url("../images/top/gnr_02_bg.jpg");
}

.idx_gnr_02 .idx_gnr_each_lead {
  width: 329px;
}

.idx_gnr_02 .idx_gnr_each_lead p {
  margin-right: 36px;
}

.idx_gnr_02 .idx_gnr_each_lead figure img {
  width: 103px;
  aspect-ratio: 103 / 138;
}

.idx_gnr_02 .idx_lst li:nth-of-type(2) span:nth-of-type(2) {
  margin-left: -0.4em;
}

.idx_gnr_02 .idx_gnr_each_fig {
  width: 378px;
  bottom: 40px;
  right: 42px;
}

.idx_gnr_02 .idx_gnr_each_fig img {
  aspect-ratio: 378 / 269;
}

/* ------------------------------- each 03 */
.idx_gnr_03 {
  background-image: url("../images/top/gnr_03_bg.jpg");
}

.idx_gnr_03 .idx_gnr_each_lead {
  width: 355px;
}

.idx_gnr_03 .idx_gnr_each_lead p {
  margin-right: 30px;
}

.idx_gnr_03 .idx_gnr_each_lead figure img {
  width: 117px;
  aspect-ratio: 117 / 144;
}

.idx_gnr_03 .idx_lst li:nth-of-type(2),
.idx_gnr_03 .idx_lst li:nth-of-type(3) {
  padding-left: 1em;
}

.idx_gnr_03 .idx_gnr_each_fig {
  width: 377px;
  bottom: 40px;
  right: 42px;
}

.idx_gnr_03 .idx_gnr_each_fig img {
  aspect-ratio: 377 / 269;
}

/*
  07. health
========================================================================== */
.idx_hlt {
  margin: 0 0 80px;
}

.idx_hlt::before {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  left: 0;
  top: 100px;
  aspect-ratio: 1600 / 1285;
  background-image: url("../images/top/hlt_tilt.png");
  background-size: 100% auto;
}

.idx_hlt .idx_lm {
  top: -167px;
}

.idx_hlt .idx_inr {
  width: 1260px;
}

.idx_hlt .idx_inr::before,
.idx_hlt .idx_inr::after {
  content: "";
  display: block;
  position: absolute;
}

.idx_hlt .idx_inr::before {
  width: 670px;
  height: 730px;
  bottom: 0;
  left: -38px;
  background-color: #eef5f8;
  mix-blend-mode: multiply;
}

.idx_hlt .idx_inr::after {
  width: 669px;
  height: 729px;
  top: 0;
  right: -38px;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url("../images/top/hlt_deco.png");
}

.idx_hlt .idx_box {
  z-index: 5;
  display: flex;
}

.idx_hlt .idx_box {
  z-index: 5;
  display: flex;
  background: #fff;
}

.idx_hlt .idx_ttl {
  flex: 1;
  padding-top: 45px;
}

.idx_hlt .idx_ttl span {
  display: block;
  width: 243px;
  margin: 0 auto;
}

.idx_hlt .idx_ttl img {
  aspect-ratio: 243 / 601;
}

.idx_hlt_fig {
  width: 778px;
}

.idx_hlt_fig img {
  aspect-ratio: 778 / 690;
}

.idx_hlt_en {
  position: absolute;
  z-index: 10;
  width: 290px;
  bottom: -104px;
  right: -30px;
}

.idx_hlt_en fig {
  aspect-ratio: 290 / 208;
}

/*
  08. menu
========================================================================== */
.idx_mnu {
  margin: 0 0 125px;
}

.idx_mnu .idx_inr {
  width: 1260px;
  aspect-ratio: 1260 / 690;
}

.idx_mnu .idx_inr::before,
.idx_mnu .idx_inr::after {
  content: "";
  display: block;
  position: absolute;
}

.idx_mnu .idx_inr::before {
  width: 670px;
  height: 730px;
  top: 0;
  right: -38px;
  background-color: #eef5f8;
  mix-blend-mode: multiply;
}

.idx_mnu .idx_inr::after {
  width: 669px;
  height: 729px;
  bottom: 0;
  left: -38px;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url("../images/top/mnu_deco.png");
}

.idx_mnu .idx_box {
  height: 100%;
  z-index: 5;
  padding: 0 0 0 550px;
  background-image: url("../images/top/mnu_fig.jpg");
  background-size: auto 100%;
  background-position: 0 0;
  background-repeat: no-repeat;
  background-color: #fff;
}

.idx_mnu_nav {
  height: 100%;
  background-color: rgba(255, 255, 255, 0.9);
  padding: 35px 36px 0 45px;
}

.idx_mnu_nav .idx_ttl {
  font-size: 58.43px;
  line-height: 1;
  margin: 0 0 32px;
}

.idx_menu_lst {
  font-size: 19.5px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px 20px;
}

.idx_menu_lst li {
  border-bottom: 1px solid #2e2e2e;
  display: flex;
}

.idx_menu_lst li a {
  display: flex;
  align-items: center;
  width: 100%;
  background-repeat: no-repeat;
  background-size: 7px auto;
  background-position: calc(100% - 1em) 50%;
  background-image: url("../images/top/mnu_arrow.png");
  transition: 0.3s;
  padding: 0 0 0.5em 0.4em;
}

.idx_menu_lst li a:hover {
  opacity: 0.6;
}

/*
  09. case
========================================================================== */
.idx_case {
  background-color: #fbf6f0;
  padding: 42px 0 86px;
}

.idx_case_lead {
  font-size: 16.67px;
  color: #3d3d3d;
  text-align: center;
  margin: 0 0 30px;
}

.idx_case .idx_inr {
  width: 1276px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 54px;
}

.idx_case .idx_box::before,
.idx_case .idx_box::after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-size: cover;
}

.idx_case .idx_box::before {
  top: 7px;
  left: 7px;
  mix-blend-mode: multiply;
  background-color: rgba(235, 235, 235, 0.35);
}

.idx_case .idx_box::after {
  z-index: 2;
  top: 0;
  left: 0;
  background-color: #fff;
}

.idx_case .idx_wrp {
  position: relative;
  z-index: 3;
  padding: 22px 33px 33px;
}

.idx_case_ttl {
  text-align: center;
  margin: 0 0 15px;
}

.idx_case_ttl span {
  display: inline-block;
  position: relative;
  line-height: 1;
  padding: 0 0 0.26em;
  width: 156px;
  background-color: #4c4c4c;
  color: #fff;
  font-size: 25px;
  ;
}

.idx_case_ttl span::before,
.idx_case_ttl span::after {
  content: "";
  display: block;
  position: absolute;
  height: 1px;
  width: 30px;
  top: 50%;
  background-color: #4c4c4c;
}

.idx_case_ttl span::before {
  left: -35px;
}

.idx_case_ttl span::after {
  right: -35px;
}

.idx_case_ttl span i {
  font-size: 29.17px;
  ;
}

.idx_case_ba {
  margin: 0 0 20px;
}

.idx_case_ba img {
  aspect-ratio: 159/118;
}

.idx_case_desc {
  line-height: 1.42;
}

/*
  10. feature
========================================================================== */
.idx_feat {
  margin: 84px 0 230px;
  padding: 115px 0 0;
}

.idx_feat .idx_lm {
  top: -30px;
}

.idx_feat .idx_ttl {
  text-align: center;
  margin: 0 0 27px;
  font-size: 37.5px;
  color: #313131;
  letter-spacing: 0.08em;
  padding-right: 0.6em;
}

.idx_feat .idx_ttl i {
  font-size: 45.84px;
}

.idx_feat .idx_ttl span {
  font-size: 63.72px;
}

.idx_feat .idx_ttl span i {
  font-size: 57.35px;
}

.idx_feat .idx_ttl span strong {
  font-size: 66.67px;
}

.idx_feat .idx_ttl span em i,
.idx_feat .idx_ttl span em strong,
.idx_feat .idx_ttl span em {
  font-style: italic;
}

.idx_feat .idx_ttl span em {
  position: relative;
  margin-left: 0.5em;
  background: linear-gradient(to bottom, transparent 0, transparent 80%, #f7efe4 80%, #f7efe4 96%, transparent 96%);
}

.idx_feat .idx_ttl span em::before,
.idx_feat .idx_ttl span em::after {
  content: "";
  display: block;
  position: absolute;
  width: 16px;
  height: 32px;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url("../images/top/feat_head_ttl_deco.png");
}

.idx_feat .idx_ttl span em::before {
  top: 0;
  left: -0.3em;
}

.idx_feat .idx_ttl span em::after {
  bottom: 0.15em;
  right: -0.4em;
  transform: rotate(180deg);
  transform-origin: middle center;
}

.idx_feat_head_desc {
  width: 960px;
  margin: 0 auto 33px;
  font-size: 13.75px;
  color: #3d3d3d;
  letter-spacing: -0.04em;
}

.idx_feat_head_btn {
  width: 1280px;
  margin: 0 auto 24px;
  text-align: right;
}

.idx_feat_head_btn a {
  display: inline-block;
}

.idx_feat_head_btn a img {
  width: 271px;
  aspect-ratio: 271 / 32;
}

.idx_feat_nav {
  position: relative;
  padding: 80px 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 100% 50%;
}

.idx_feat_nav::before {
  content: "";
  display: block;
  position: absolute;
  width: 1px;
  height: 120px;
  left: 50%;
  top: -60px;
  background: #919191;
}

.idx_feat_nav.f01 {
  background-image: url("../images/top/feat_bg_01.jpg");
}

.idx_feat_nav.f02 {
  background-image: url("../images/top/feat_bg_02.jpg");
}

.idx_feat_nav.f03 {
  background-image: url("../images/top/feat_bg_03.jpg");
}

.idx_feat_nav.f04 {
  background-image: url("../images/top/feat_bg_04.jpg");
}

.idx_feat_nav.f05 {
  background-image: url("../images/top/feat_bg_05.jpg");
}

.idx_feat_ttl {
  margin: 0 auto 45px 0;
  width: calc(50% + 54px);
}

.idx_feat_ttl > div {
  display: none;
}

.idx_feat_ttl_nbr {
  width: 688px;
  margin: 0 0 0 auto;
  font-size: 18.67px;
}

.idx_feat_ttl_nbr span {
  font-size: 28.1px;
  position: relative;
  display: inline-block;
  margin-left: 10px;
}

.idx_feat_ttl_nbr span i {
  font-size: 39.44px;
}

.idx_feat_ttl_nbr span::before {
  content: "";
  display: block;
  position: absolute;
  width: 1px;
  height: 60px;
  right: -1em;
  bottom: 0;
  background-color: #000;
  transform: rotate(36deg);
}

.idx_feat_ttl_txt {
  background-color: #fff;
}

.idx_feat_ttl_txt span {
  display: block;
  width: 640px;
  margin: 0 0 0 auto;
  padding: 0.3em 0;
  font-size: 29.15px;
}

.idx_feat_ttl_txt span i {
  font-size: 33.36px;
}

.idx_feat_lnk {
  width: 50%;
  margin: 0 auto 0 0;
}

.idx_feat_lnk nav {
  width: 644px;
  margin: 0 0 0 auto;
}

.idx_feat_lnk nav a {
  display: block;
  margin-left: 30px;
  color: #313131;
  background: #fff;
  transition: 0.3s;
}

.idx_feat_lnk nav a:nth-of-type(2n) {
  background: #f3ede7;
}

.idx_feat_lnk nav a:hover {
  margin-left: 0;
  padding-left: 30px;
  color: #fff;
  background: linear-gradient(to right, #494949 0, #2a2a2a 100%);
}

.idx_feat_lnk nav a p {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  background-repeat: no-repeat;
  background-image: url("../images/top/feat_arrow.png");
  background-size: 10px auto;
  background-position: calc(100% - 15px) 50%;
}

.idx_feat_lnk nav a:hover p {
  background-image: url("../images/top/feat_arrow_on.png");
}

.idx_feat_lnk nav a p span {
  display: block;
}

.idx_feat_lnk nav a p span:nth-of-type(1) {
  position: relative;
  width: 78px;
  padding-left: 22px;
  font-size: 27.65px;
}

.idx_feat_lnk nav a p span:nth-of-type(1)::after {
  content: "";
  display: block;
  position: absolute;
  width: 16px;
  height: 1px;
  background-color: #484848;
  top: 0.5em;
  left: 0.6em;
  transform: rotate(-54deg);
}

.idx_feat_lnk nav a:hover p span:nth-of-type(1)::after {
  background-color: #fff;
}

.idx_feat_lnk nav a p span:nth-of-type(1) i {
  display: inline-block;
  font-size: 38.81px;
  margin-left: 0.05em;
}

.idx_feat_lnk nav a p span:nth-of-type(2) {
  flex: 1;
  font-size: 20.03px;
  padding: 1em 0;
}

.idx_feat_lnk nav a p span:nth-of-type(2) em {
  display: inline-block;
  border-bottom: 1px solid #ecc196;
}

/*
  11. treatment
========================================================================== */
.idx_treat {
  margin: 0 0 160px;
}

.idx_treat .idx_lm {
  top: -180px;
}

/* --------------------------- header */
.idx_treat_head {
  position: relative;
  margin: 0 0 157px;
}

.idx_treat_head_bg {
  position: relative;
}

.idx_treat_head_bg span {
  display: block;
  position: relative;
  z-index: 1;
}

.idx_treat_head_bg::before,
.idx_treat_head_bg::after {
  content: "";
  display: block;
  position: absolute;
  width: 50%;
  height: 100px;
  background-size: 700px auto;
  background-repeat: repeat-x;
  background-image: url("../images/top/treat_head_deco.png");
}

.idx_treat_head_bg::before {
  top: -60px;
  right: 0;
}

.idx_treat_head_bg::after {
  bottom: -60px;
  left: 0;
}

.idx_treat_head_ttl {
  position: absolute;
  z-index: 2;
  width: calc((273 / 1400) * 100%);
  top: calc((20 / 1400) * (-1) * 100%);
  left: calc((513 / 1400) * 100%);
}

.idx_treat_head_kkm {
  position: absolute;
  z-index: 2;
  color: #2e2e2e;
  top: clamp(597px, calc((597 / 1400) * 100vw), 1200px);
  padding: calc((30 / 1400) * 100%) calc((40 / 1400) * 100%) calc((55 / 1400) * 100%);
  right: 0;
  width: 50%;
  min-width: 650px;
  overflow: hidden;
  background-color: rgba(255, 255, 255, 0.8);
  box-shadow: 4px 4px 4px rgba(167, 165, 161, 0.35);
}

.idx_treat_head_kkm p:nth-of-type(1) {
  font-size: 33.61px;
  line-height: 1.3;
  border-bottom: 1px solid #2e2e2e;
  padding: 0 0 20px;
  margin: 0 auto 25px 0;
  max-width: 620px;
}

.idx_treat_head_kkm p:nth-of-type(1) span {
  display: block;
}

.idx_treat_head_kkm p:nth-of-type(1) span:nth-of-type(2) {
  white-space: nowrap;
}

.idx_treat_head_kkm p:nth-of-type(1) span:nth-of-type(2) i {
  display: inline-block;
  font-size: 42.01px;
  margin-left: -0.6em;
  margin-right: -0.4em;
  font-weight: 500;
  white-space: nowrap;
}

.idx_treat_head_kkm p:nth-of-type(1) span:nth-of-type(2) em {
  font-size: 46.22px;
  color: #a77020;
}

.idx_treat_head_kkm p:nth-of-type(2) {
  font-size: 13.31px;
  max-width: 615px;
}

/* --------------------------- header */
.idx_treat_set {
  position: relative;
  margin: 0 0 60px;
}

.idx_treat_set::before {
  content: "";
  position: absolute;
  display: block;
  z-index: 2;
  mix-blend-mode: multiply;
  top: 246px;
  width: calc(50% + 630px);
  height: 80px;
  background-repeat: repeat-x;
  background-size: auto 100%;
}

.idx_treat_set .idx_inr {
  width: 1340px;
}

.idx_treat_set > .idx_inr {
  display: flex;
  z-index: 3;
}

.idx_treat_fig {
  width: 560px;
}

.idx_treat_fig img {
  aspect-ratio: 561 / 495;
}

.idx_treat_txt {
  flex: 1;
  padding: 60px 60px 90px;
  color: #4b4b4b;
}

.idx_treat_ttl {
  margin: 0 0 35px;
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
}

.idx_treat_ttl span {
  display: block;
  line-height: 1;
}

.idx_treat_ttl .ja {
  font-size: 50px;
  line-height: 1.08;
}

.idx_treat_ttl .ja::first-letter {
  font-size: 58.33px;
}

.idx_treat_ttl .en {
  margin-left: 20px;
}

.idx_treat_lead {
  font-size: 24px;
  margin: 0 0 25px;
}

.idx_treat_lead span {
  display: block;
  line-height: 1.2;
}

.idx_treat_lead span i {
  display: inline-block;
  font-size: 29.17px;
}

.idx_treat_lead em {
  display: inline-block;
  letter-spacing: 0.04em;
  background: linear-gradient(to bottom, transparent 0, transparent 80%, #fff284 80%, #fff284 96%, transparent 96%);
}

.idx_treat_desc {
  color: #fff;
  font-size: 18px;
  margin: 0 0 30px;
}

.idx_treat_set .idx_lst {
  font-size: 18px;
  margin-bottom: 20px;
}

.idx_treat_btn span {
  display: inline-block;
  width: 125px;
}

.idx_treat_btn span img {
  aspect-ratio: 125 / 24;
}

.idx_treat_sfig {
  position: absolute;
}

.idx_treat_bg {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
}

.idx_treat_bg .idx_inr {
  height: 100%;
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% auto;
}

/* --------------------------- treat_01 */
.idx_treat_01::before {
  left: 0;
  background-image: url("../images/top/treat_01_bar.png");
}

.idx_treat_01 .idx_treat_ttl .ja {
  color: #a77020;
}

.idx_treat_01 .idx_treat_ttl .en {
  width: 102px;
}

.idx_treat_01 .idx_treat_ttl .en img {
  aspect-ratio: 102 / 32;
}

.idx_treat_01 .idx_treat_lead span i i {
  font-size: 37.5px;
}

.idx_treat_01 .idx_treat_lead span:nth-of-type(1) > i {
  margin-left: -0.4em;
  margin-right: -0.4em;
}

.idx_treat_01 .idx_lst li {
  padding-left: 0.8em;
  background-image: url("../images/top/treat_01_arrow.png");
}

.idx_treat_01 .idx_treat_btn {
  margin-left: 244px;
}

.idx_treat_01 .idx_treat_sfig {
  width: 307px;
  right: 40px;
  bottom: 0;
}

.idx_treat_01 .idx_treat_sfig {
  aspect-ratio: 307 / 340;
}

.idx_treat_01 .idx_treat_bg .idx_inr {
  background-image: url("../images/top/treat_01_bg.png");
}

/* --------------------------- treat_02 */
.idx_treat_02::before {
  right: 0;
  background-image: url("../images/top/treat_02_bar.png");
}

.idx_treat_02 > .idx_inr {
  flex-direction: row-reverse;
}

.idx_treat_02 .idx_treat_txt {
  padding: 65px 60px 90px 115px;
}

.idx_treat_02 .idx_treat_ttl {
  margin-left: 40px;
  margin-bottom: 40px;
}

.idx_treat_02 .idx_treat_ttl .ja {
  color: #509a89;
}

.idx_treat_02 .idx_treat_ttl .en {
  width: 174px;
  transform: translateY(28%);
}

.idx_treat_02 .idx_treat_ttl .en img {
  aspect-ratio: 174 / 52;
}

.idx_treat_02 .idx_lst li {
  background-image: url("../images/top/treat_02_arrow.png");
}

.idx_treat_02 .idx_lst li:nth-of-type(3),
.idx_treat_02 .idx_lst li:nth-of-type(4) {
  padding-left: 0.8em;
}

.idx_treat_02 .idx_treat_btn {
  margin-left: 244px;
}

.idx_treat_02 .idx_treat_sfig {
  width: 248px;
  left: 500px;
  bottom: 140px;
}

.idx_treat_02 .idx_treat_sfig {
  aspect-ratio: 248 / 165;
}

.idx_treat_02 .idx_treat_bg .idx_inr {
  background-image: url("../images/top/treat_02_bg.png");
}

/* --------------------------- treat_03 */
.idx_treat_03::before {
  left: 0;
  background-image: url("../images/top/treat_01_bar.png");
}

.idx_treat_03 .idx_treat_ttl .ja {
  color: #a77020;
}

.idx_treat_03 .idx_treat_ttl .en {
  width: 104px;
}

.idx_treat_03 .idx_treat_ttl .en img {
  aspect-ratio: 104 / 33;
}

.idx_treat_03 .idx_treat_lead {
  margin-bottom: 35px;
}

.idx_treat_03 .idx_lst li {
  background-image: url("../images/top/treat_01_arrow.png");
}

.idx_treat_03 .idx_lst li:nth-of-type(1),
.idx_treat_03 .idx_lst li:nth-of-type(2) {
  padding-left: 0.8em;
}

.idx_treat_03 .idx_treat_btn {
  margin-left: 244px;
}

.idx_treat_03 .idx_treat_sfig {
  width: 208px;
  right: 110px;
  bottom: 110px;
}

.idx_treat_03 .idx_treat_sfig {
  aspect-ratio: 208 / 156;
}

.idx_treat_03 .idx_treat_bg .idx_inr {
  background-image: url("../images/top/treat_01_bg.png");
}

/* --------------------------- treat_04 */
.idx_treat_04::before {
  right: 0;
  background-image: url("../images/top/treat_02_bar.png");
}

.idx_treat_04.idx_treat_set::before {
  top: 262px;
}

.idx_treat_04 > .idx_inr {
  flex-direction: row-reverse;
}

.idx_treat_04 .idx_treat_txt {
  padding: 60px 60px 90px;
  padding: 0 60px 66px 115px;
}

.idx_treat_04 .idx_treat_ttl {
  margin: 0 0 35px;
  margin-left: 40px;
  margin-bottom: 40px;
  align-items: flex-end;
}

.idx_treat_04 .idx_treat_ttl .ja {
  color: #509a89;
  padding-bottom: 10px;
}

.idx_treat_04 .idx_treat_ttl .ja i {
  display: block;
}

.idx_treat_04 .idx_treat_ttl .ja i:nth-of-type(2) {
  margin-left: 1.4em;
}

.idx_treat_04 .idx_treat_ttl .en {
  width: 157px;
}

.idx_treat_04 .idx_treat_ttl .en img {
  aspect-ratio: 157 / 52;
}

.idx_treat_04 .idx_lst li {
  background-image: url("../images/top/treat_02_arrow.png");
}

.idx_treat_04 .idx_treat_btn {
  margin-left: 244px;
}

.idx_treat_04 .idx_treat_ba {
  position: absolute;
  width: 195px;
  left: 525px;
  bottom: 109px;
  background-repeat: no-repeat;
  background-image: url("../images/top/treat_04_arrow.png");
  background-size: 29px auto;
  background-position: 50% 50%;
}

.idx_treat_04 .idx_treat_ba li {
  position: relative;
}

.idx_treat_04 .idx_treat_ba li + li {
  margin-top: 50px;
}

.idx_treat_04 .idx_treat_ba span {
  display: block;
}

.idx_treat_04 .idx_treat_ba span:nth-of-type(1) {
  position: absolute;
  width: 72px;
  right: -36px;
  top: -36px;
}

.idx_treat_04 .idx_treat_ba span:nth-of-type(1) img {
  aspect-ratio: 1 / 1;
}

.idx_treat_04 .idx_treat_ba span:nth-of-type(2) img {
  aspect-ratio: 195 / 131;
}

.idx_treat_04 .idx_treat_bg .idx_inr {
  background-image: url("../images/top/treat_02_bg.png");
}

/*
  12. consultation
========================================================================== */
.idx_consult {
  width: 1340px;
  min-height: 603px;
  margin: 0 auto 102px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50% 50%;
  background-image: url("../images/top/consult_bg.jpg");
}

.idx_consult::before {
  content: "";
  display: block;
  position: absolute;
  pointer-events: none;
  z-index: 10;
  width: calc(100% - 34px);
  height: calc(100% - 34px);
  top: 16px;
  left: 16px;
  border: 2px solid #fff;
}

.idx_consult .idx_lm {
  top: -126px;
}

.idx_consult .idx_inr {
  color: #373737;
  text-align: center;
  padding: 70px 0 36px;
  margin: 0 auto;
  width: 500px;
  min-width: unset;
}

.idx_consult_ttl {
  font-size: 54.17px;
  margin: 0 0 24px;
  letter-spacing: 0.1em;
}

.idx_consult_lead {
  margin: 0 0 24px;
}

.idx_consult_lead span {
  font-size: 20.83px;
  display: inline-block;
  background-color: #f4f1e7;
  mix-blend-mode: multiply;
  padding: 0.2em 1em;
}

.idx_consult_desc {
  font-size: 17.92px;
  text-align: left;
  width: 23em;
  margin: 0 auto;
}

.idx_consult_desc p:not(:last-child) {
  margin-bottom: 1em;
}

.idx_consult_btn {
  margin: 0 auto;
  width: 412px;
  text-align: right;
}

.idx_consult_btn span {
  display: inline-block;
  width: 147px;
}

.idx_consult_btn span img {
  aspect-ratio: 147 / 32;
  mix-blend-mode: multiply;
}

/*
  13. Photo Gallery
========================================================================== */
.idx_gallery {
  background-color: #f3f2ee;
  padding: 0 0 20px;
}

.idx_gallery_ttl {
  position: absolute;
  z-index: 10;
  width: calc((283 / 1400) * 100vw);
  height: calc((247 / 1400) * 100vw);
  min-width: 60px;
  min-height: 52px;
  top: calc((34 / 1400) * 100vw);
  left: calc((34 / 1400) * 100vw);
  display: flex;
  align-items: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url("../images/top/gallery_ttl_bg.png");
}

.idx_gallery_ttl::before {
  content: "";
  display: block;
  display: none;
  position: absolute;
  width: calc((92 / 1400) * 100vw);
  height: calc((92 / 1400) * 100vw);
  top: calc((5 / 1400) * (-1) * 100vw);
  left: calc((5 / 1400) * (-1) * 100vw);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-image: url("../images/top/gallery_ttl_deco.png");
  opacity: 0.9;
  mix-blend-mode: multiply;
}

.idx_gallery_ttl span {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 37.5px;
  color: #2e2e2e;
}

.idx_gallery_ttl span span {
  display: inline-block;
  width: unset;
}

.idx_gallery_ttl span span i {
  display: block;
  text-align: left;
  line-height: 1.1;
  font-weight: bold;
  letter-spacing: 0.04em;
}

/* ------------------------------- main */
.idx_gallery_fig {
  width: 100%;
  height: calc((806 / 1400) * 100vw);
  aspect-ratio: 1400 /806;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url("../images/top/gallery_01.jpg");
}

.idx_gallery_fig.g02 {
  background-image: url("../images/top/gallery_02.jpg");
}

.idx_gallery_fig.g03 {
  background-image: url("../images/top/gallery_03.jpg");
}

.idx_gallery_fig.g04 {
  background-image: url("../images/top/gallery_04.jpg");
}

.idx_gallery_fig.g05 {
  background-image: url("../images/top/gallery_05.jpg");
}

.idx_gallery_fig.g06 {
  background-image: url("../images/top/gallery_06.jpg");
}

/* ------------------------------- thumbnail */
.idx_gallery_thumb_box {
  margin-top: 20px;
  width: calc((351 / 1400) * 100vw);
  cursor: pointer;
  transition: 0.3s;
}

.idx_gallery_thumb_box:hover {
  opacity: 0.7;
}

.idx_gallery_thumb_box img {
  aspect-ratio: 351 / 207;
}

/*
  14. column
========================================================================== */
.idx_clmn {
  margin: 0 0 60px;
  padding: 64px 0 30px;
  background: linear-gradient(to bottom, transparent 30%, #f6f6f6 100%);
}

.idx_clmn_ttl {
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  align-items: center;
  display: flex;
  width: 100%;
  font-size: 37.5px;
  letter-spacing: 0.2em;
}

.idx_clmn .idx_inr {
  width: 1190px;
}

.idx_clmn_lst {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-top: -20px;
}

.idx_clmn_lst .idx_box {
  width: 302px;
}

.idx_clmn_lst .idx_box:nth-of-type(2) {
  margin-top: 72px;
}

.idx_clmn_fig {
  margin: 0 0 36px;
  transition: 0.3s;
}

.idx_clmn_lst .idx_box:hover .idx_clmn_fig {
  outline: 6px solid #ccc;
  outline-offset: -6px;
}

.idx_clmn_fig img {
  aspect-ratio: 302 / 231;
}

.idx_clmn_sbj {
  font-size: 16.14px;
  line-height: 1.6;
  margin: 0 0 0.5em;
  color: #323232;
}

.idx_clmn_lst .idx_box:hover .idx_clmn_sbj {
  text-decoration: underline;
}

.idx_clmn_date {
  font-size: 12.91px;
}

.idx_clmn .idx_btn {
  text-align: right;
  font-size: 15.06px;
}

/*
  15. pub(news, schedule)
========================================================================== */
.idx_pub {
  margin: 60px 0 80px;
}

.idx_pub .idx_inr {
  width: 1248px;
  display: flex;
  justify-content: center;
  gap: 92px
}

.idx_pub .idx_ttl {
  color: #4c4c4c;
  font-size: 35.71px;
}

.idx_pub .idx_ttl .en {
  font-size: 35.71px;
  margin-right: 0.5em;
}

.idx_pub .idx_ttl .ja {
  font-size: 14.2px;
}

/* -------------------------------------------------- news */
.idx_pub_news {
  width: 628px;
}

.idx_pub_news .idx_ttl {
  margin-bottom: 27px;
}

.idx_pub_news_box {
  display: grid;
  grid-template-columns: 133px 1fr;
  grid-template-rows: 1fr max-content;
  column-gap: 20px;
  align-items: end;
  margin-bottom: 26px;
  color: #5d5c5c;
}

.idx_pub_news_fig {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
  aspect-ratio: 133/115;
}

.idx_pub_news_fig img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.idx_pub_news_date {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
  font-size: 13.19px;
  margin-bottom: 0.5em;
}

.idx_pub_news_ttl {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
  font-size: 14.2px;
  margin-bottom: 0.5em;
}

.idx_pub_news .idx_btn {
  text-align: right;
  font-size: 14.2px;
}

/* -------------------------------------------------- schedule */
.idx_pub_sche {
  width: 528px;
}

.idx_pub_sche .idx_ttl {
  margin-bottom: 42px;
}

.idx_pub_sche_calendar iframe {
  width: 100%;
  height: 425px;
}

/* idx_pubtop */
.idx_pub.idx_pubtop {
  margin-bottom: clamp(calc(146px * 0.93), calc((146 / 1400) * 100vw), calc(146px * 1.5));
}

.idx_pub.idx_pubtop .inr {
  width: 1237px;
  gap: 30px;
}

.idx_pub.idx_pubtop .idx_pub_news {
  width: 600px;
}

.idx_pub.idx_pubtop .idx_pub_news_box {
  grid-template-rows: max-content 1fr;
  align-items: start;
}

.idx_pub.idx_pubtop .idx_pub_news_date,
.idx_pub.idx_pubtop .idx_pub_news_ttl {
  /* grid-column: 1 / 3; */
}

.idx_pub.idx_pubtop .idx_pub_news_ttl {
  text-decoration: underline;
}

.idx_pub.idx_pubtop .idx_pub_news .idx_btn {
  text-align: center;
}

/*
  16. instagram
========================================================================== */
.idx_insta {
  background-color: #faf9f3;
  padding: 40px 0;
  margin: 0 0 100px;
  display: block;
}

.idx_insta::before {
  content: "";
  display: block;
  position: absolute;
  height: 1px;
  width: calc(50% - 240px - 55px);
  left: 0;
  top: 255px;
  background: #4c4c4c;
}

.idx_insta .idx_inr {
  max-width: unset;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.idx_insta .idx_ttl {
  width: 320px;
  margin-right: 55px;
  padding: 68px 0 0;
  background-repeat: no-repeat;
  background-position: 50% 0;
  background-size: 60px auto;
  background-image: url("../images/top/insta_ico.png");
  text-align: center;
}

.idx_insta .idx_ttl span {
  display: block;
  letter-spacing: 0.06em;
}

.idx_insta .idx_ttl span:nth-of-type(1) {
  margin-bottom: 28px;
}

.idx_insta .idx_ttl i {
  display: inline-block;
  vertical-align: baseline;
  line-height: 1;
}

.idx_insta .idx_ttl .en {
  font-size: 37.34px;
  font-weight: bold;
  margin-right: 0.4em;
  letter-spacing: 0.08em;
}

.idx_insta .idx_ttl .ja {
  font-size: 14.85px;
}

.idx_insta .idx_ttl span.ig {
  color: #4c4c4c;
  display: inline-block;
  font-size: 25.95px;
}

.idx_insta_lst {
  width: calc(50% + 240px);
  overflow: hidden;
}

.idx_insta_lst li {
  margin: 0 12px;
}

.idx_insta_lst li img {
  width: 148px;
  aspect-ratio: 148 / 149;
}

#slide_insta_01 {
  margin: 0 0 24px 40px;
}

/*
  17. slide
========================================================================== */
.idx_slide {
  margin: 0 0 96px;
}

.idx_slide li img {
  width: 263px;
  aspect-ratio: 263 / 185;
}

/*
  team
========================================================================== */
.idx_team {
  margin-top: 84px;
  background-color: #f2eee1;
}

/* -------------------------------------------------- middle */
.idx_team .middle {
  position: relative;
}

.idx_team .middle > figure {
  width: 45.86%;
  position: absolute;
  top: -11.64vw;
  right: 0;
  z-index: 3;
}

.idx_team .middle::before,
.idx_team .middle::after {
  content: '';
  display: block;
  position: absolute;
  top: 0;
}

.idx_team .middle::before {
  width: 75.36vw;
  height: 80.07vw;
  background: url('../images/top/team_bg_ptn.png') repeat;
  background-size: 12px 12px;
  clip-path: polygon(100% 0, 0 0, 100% 100%);
  right: 0;
  z-index: 0;
}

.idx_team .middle::after {
  width: 100%;
  height: 50.64vw;
  background: url('../images/top/team_micro.png') left top no-repeat;
  background-size: 100% auto;
  left: 0;
  z-index: 1;
}

.idx_team .middle .box {
  width: 66.43%;
  position: absolute;
  top: -1.36vw;
  left: 0;
}

.idx_team .middle .box::before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(86, 66, 45, .75);
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

.idx_team .middle .box .triangle {
  width: 13.43vw;
  height: 13.07vw;
  position: absolute;
  top: -0.5px;
  left: 0;
}

.idx_team .middle .box .triangle::before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(246, 237, 200, .85);
  mix-blend-mode: hard-light;
  clip-path: polygon(100% 0, 0 0, 0 100%);
  position: absolute;
  z-index: 3;
}

.idx_team .middle .box .triangle span {
  display: block;
  color: #2e2e2e;
  font-feature-settings: 'palt';
  line-height: 1;
  letter-spacing: .1em;
  position: relative;
  z-index: 4;
}

.idx_team .middle .box .triangle span:nth-child(1) {
  margin-top: 1.21vw;
  margin-left: 1.71vw;
  font-size: 1.86vw;
}

.idx_team .middle .box .triangle span:nth-child(2) {
  font-size: 2.86vw;
  margin-left: 1vw;
}

.idx_team .middle .box .triangle span:nth-child(2) i {
  font-size: 4.29vw;
  vertical-align: -7%;
}

.idx_team .middle .box .cont {
  padding: 8vw 15.93vw 6.71vw 6.29vw;
  position: relative;
  z-index: 5;
}

.idx_team .middle .box .cont p {
  padding-bottom: 1.07vw;
  text-align: center;
  color: #fff;
  font-size: max(2.38vw, 33px);
  font-feature-settings: 'palt';
  line-height: 1;
  letter-spacing: .08em;
  border-bottom: 1px solid #fff;
  white-space: nowrap;
}

.idx_team .middle .box .cont p .kana {
  font-size: max(2.07vw, 29px);
}

.idx_team .middle .box .cont p em {
  font-size: max(2.64vw, 37.5px);
}

.idx_team .middle .box .cont p em .yl {
  color: #f8e492;
}

.idx_team .middle .box .cont ul {
  padding-top: 1.85vw;
  color: #fff;
  display: grid;
  grid-template-columns: 55% 45%;
  gap: 32px 0;
}

.idx_team .middle .box .cont ul li {
  padding-left: 20px;
  font-size: max(1.43vw, 21px);
  line-height: 1;
  letter-spacing: .06em;
  position: relative;
}

.idx_team .middle .box .cont ul li::before {
  content: '';
  display: block;
  margin: auto;
  width: 11px;
  height: 13px;
  background-color: #f6eab6;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
}

.idx_team .middle .box .cont ul li em {
  font-size: max(1.93vw, 27px);
  border-bottom: 1px solid #fff;
}

/* -------------------------------------------------- director */
.idx_team .director {
  padding: 36.36% 0 60px 0;
  position: relative;
  z-index: 5;
overflow: visible;
}

.idx_team .director .inner {
  margin: 0 auto;
  padding-bottom: 47px;
  width: 1266px;
  background-color: #fff;
  box-shadow: 20px 20px 0px 0px rgba(187, 163, 117, .43);
  position: relative;
overflow: visible;
}

.idx_team .director .inner figure {
  width: 473px;
  position: absolute;
  top: -114px;
  left: 62px;
}

.idx_team .director .inner .txt {
  margin: 0 82px 0 521px;
}

.idx_team .director .inner .txt .name {
  padding: 55px 0 27px 96px;
  color: #2e2e2e;
  line-height: 1;
  border-bottom: 1px solid #2e2e2e;
  position: relative;
  z-index: 6;
}

.idx_team .director .inner .txt .name .position {
  margin-right: 28px;
  font-size: 26px;
}

.idx_team .director .inner .txt .name .ja {
  margin-right: 30px;
  font-size: 39px;
}

.idx_team .director .inner .txt .name .en {
  color: #ac8c59;
  font-size: 34px;
}

.idx_team .director .inner .career {
  margin: 40px 0 0 97px;
}

.idx_team .director .inner .career li {
  color: #2e2e2e;
  font-size: 23px;
  line-height: 1.43;
  letter-spacing: .08em;
}

/* 院長・ドクターの賞状エリア全体に限定 */
.idx_team .doctor .cert,
.idx_team .director .cert,
.flex-cert {
  display: flex;
  flex-wrap: wrap; /* 折り返す！ */
  gap: 16px;
  list-style: none;
  padding: 0;
  margin-top: 30px;
  margin-left: 40px;
  justify-content: flex-start;
  overflow: visible;
}

/* 画像1枚ごとのサイズ調整 */
.idx_team .doctor .cert li,
.idx_team .director .cert li,
.flex-cert li {
  width: calc(14.2857% - 10px); /* 7列分に調整 */
  box-sizing: border-box;
}

/* 画像が切れないように */
.idx_team .doctor .cert img,
.idx_team .director .cert img,
.flex-cert img {
  width: 100%;
  height: auto;
  display: block;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}

/* -------------------------------------------------- doctor */
.idx_team .doctor {
  padding: 60px 0; /* ←通常の上下paddingに変更 */
  background: url('../images/top/team_doctor_bg.jpg') center no-repeat;
  background-size: cover;
}

.idx_team .doctor .bx-wrapper {
  margin: 0 auto;
  width: 1266px;
  background-color: #fff;
  box-shadow: 20px 20px 0px 0px rgba(201, 192, 169, .46);
  position: relative;
}

.idx_team .doctor .bx-wrapper .bx-controls,
.idx_team .doctor .bx-wrapper .bx-controls .bx-controls-direction {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  pointer-events: none;
}

.idx_team .doctor .bx-wrapper .bx-controls .bx-controls-direction .bx-next,
.idx_team .doctor .bx-wrapper .bx-controls .bx-controls-direction .bx-prev {
  width: 66px;
  height: 66px;
  text-indent: -9999px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: .3s;
  pointer-events: all;
}

.idx_team .doctor .bx-wrapper .bx-controls .bx-controls-direction .bx-next:hover,
.idx_team .doctor .bx-wrapper .bx-controls .bx-controls-direction .bx-prev:hover {
  opacity: .6;
}

.idx_team .doctor .bx-wrapper .bx-controls .bx-controls-direction .bx-next {
  right: -40px;
  background: url('../images/top/team_slide_next.png') no-repeat;
  background-size: 100% 100%;
}

.idx_team .doctor .bx-wrapper .bx-controls .bx-controls-direction .bx-prev {
  left: -40px;
  background: url('../images/top/team_slide_prev.png') no-repeat;
  background-size: 100% 100%;
}

.idx_team .doctor .bx-wrapper .bx-controls .bx-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0 20px;
  position: absolute;
  bottom: -60px;
  left: 50%;
  transform: translateX(-50%);
}

.idx_team .doctor .bx-wrapper .bx-controls .bx-pager a {
  display: block;
  background: #a79265;
  border-radius: 100px;
  opacity: 0.5;
  text-indent: -9999px;
  width: 20px;
  height: 20px;
  pointer-events: all;
  transition: .3s;
}

.idx_team .doctor .bx-wrapper .bx-controls .bx-pager a:hover,
.idx_team .doctor .bx-wrapper .bx-controls .bx-pager a.active,
.idx_team .doctor .bx-wrapper .bx-controls .bx-pager a:focus {
  opacity: 1;
}

.idx_team .doctor .slider li.item .inner {
  padding: 28px 32px 28px 45px;
  display: flex;
  justify-content: space-between;
}

.idx_team .doctor .slider li.item .inner .box {
  padding-top: 16px;
  flex: 1 0 0;
}

.idx_team .doctor .slider li.item .inner .box:nth-child(1) {
  padding-right: 36px;
  border-right: 1px dotted #bdbbb8;
}

.idx_team .doctor .slider li.item .inner .box:nth-child(2) {
  padding-left: 36px;
}

.idx_team .doctor .slider li.item .inner .box .name-photo {
  margin-bottom: 30px;
  display: flex;
  align-items: center;
  gap: 0 20px;
}

.idx_team .doctor .slider li.item .inner .box .name-photo figure {
  width: 310px;
}

.idx_team .doctor .slider li.item .inner .box .name-photo .name {
  flex: 1 0 0;
}

.idx_team .doctor .slider li.item .inner .name {
  line-height: 1;
}

.idx_team .doctor .slider li.item .inner .name .ja {
  color: #2e2e2e;
  font-size: 39px;
  letter-spacing: .1em;
}

.idx_team .doctor .slider li.item .inner .box .name-photo .name .ja{
  display: block;
  padding-bottom: 10px;
  border-bottom: 1px solid #2e2e2e;
  text-align: center;
}

.idx_team .doctor .slider li.item .inner .box .name-photo .name .en {
  display: block;
  padding-top: 10px;
  text-align: center;
}

.idx_team .doctor .slider li.item .inner .name .en {
  color: #ac8c59;
  font-size: 33px;
  letter-spacing: .04em;
}

.idx_team .doctor .slider li.item .inner .position,
.idx_team .doctor .slider li.item .inner .group,
.idx_team .doctor .slider li.item .inner .career {
  color: #2e2e2e;
  font-size: 23px;
  line-height: 1.43;
}

.idx_team .doctor .slider li.item .inner .group {
  display: grid;
}

.idx_team .doctor .slider li.item .inner .group li::before {
  content: '・';
}

/* doctor1 */
.idx_team .doctor .slider li.item.doctor1 {
  padding: 22px 80px 49px 93px;
}

.idx_team .doctor .slider li.item.doctor1 .inner {
  padding: 0;
  flex-direction: row-reverse;
}

.idx_team .doctor .slider li.item.doctor1 .inner figure {
  width: 400px;
}

.idx_team .doctor .slider li.item.doctor1 .inner .txt {
  flex: 1 0 0;
}

.idx_team .doctor .slider li.item.doctor1 .inner .txt .name {
  margin-right: -19px;
  padding: 49px 0 14px 17px;
  border-bottom: 1px solid #2e2e2e;
  position: relative;
  z-index: 2;
}

.idx_team .doctor .slider li.item.doctor1 .inner .txt .name .ja {
  margin-right: 75px;
}

.idx_team .doctor .slider li.item.doctor1 .inner .txt .group {
  margin: 30px 123px 0 0;
  padding: 0 0 25px 22px;
  border-bottom: 1px solid #2e2e2e;
  grid-template-columns: 60% 40%;
}

.idx_team .doctor .slider li.item.doctor1 .inner .txt .career {
  padding: 29px 0 0 22px;
}

.idx_team .doctor .slider li.item.doctor1 .inner .txt .cert {
  margin: 26px 115px 20px 30px;
  display: flex;
  align-items: flex-start;
  gap: 0 10px;
}

.idx_team .doctor .slider li.item.doctor1 .inner .txt .cert li img {
  box-shadow: 1px 1px 3px 0px rgba(149, 149, 149, .68);
}

/* doctor2 */
.idx_team .doctor .slider li.item.doctor2 {
  padding: 51px 73px 49px 93px;
}

.idx_team .doctor .slider li.item.doctor2 .inner {
  padding: 0;
  flex-direction: row-reverse;
}

.idx_team .doctor .slider li.item.doctor2 .inner figure {
  width: 437px;
}

.idx_team .doctor .slider li.item.doctor2 .inner .txt {
  flex: 1 0 0;
}

.idx_team .doctor .slider li.item.doctor2 .inner .txt .name {
  margin-right: 40px;
  padding: 20px 0 14px 17px;
  border-bottom: 1px solid #2e2e2e;
}

.idx_team .doctor .slider li.item.doctor2 .inner .txt .name .ja {
  margin-right: 75px;
}

.idx_team .doctor .slider li.item.doctor2 .inner .txt .position {
  margin: 10px 67px 0 0;
  text-align: right;
}

.idx_team .doctor .slider li.item.doctor2 .inner .txt .group {
  margin: 50px 40px 0 0;
  padding: 0 0 25px 22px;
  border-bottom: 1px solid #2e2e2e;
  grid-template-columns: 50% 50%;
}

.idx_team .doctor .slider li.item.doctor2 .inner .txt .group li:nth-last-child(-n+2) {
  grid-column: 1/3;
}

.idx_team .doctor .slider li.item.doctor2 .inner .txt .group li:last-child span {
  padding-left: 9em;
}

.idx_team .doctor .slider li.item.doctor2 .inner .txt .career {
  padding: 29px 0 0 22px;
}

/* doctor3 */
.idx_team .doctor .slider li.item.doctor3 .inner .box .position {
  margin-bottom: 10px;
}

/* 症例紹介 */
.blk-wrap {
    padding: 60px 20px;
    background: #fff;
    font-family: "Noto Sans JP", sans-serif;
  }
  
  .blk-inner {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
  }
  
  .blk-ttl {
    font-size: 32px;
    margin-bottom: 16px;
    font-weight: bold;
    font-family: 'Noto Serif', serif;
  }

  .blk-lead {
    font-size: 16px;
    color: #555;
    margin-bottom: 40px;
  }
  
  .blk-grid {
    display: flex;
    justify-content: space-between;
    gap: 20px;
  }
  
  .blk-col {
    width: 32%;
    background: #fff;
  }
  
  .blk-col img {
    width: 100%;
  }
  
  .blk-cap {
    font-size: 18px;
    margin: 15px 0 10px;
    font-weight: 500;
    color: #333;
  }
  
  .blk-btn {
    display: inline-block;
    padding: 10px 30px;
    border: 1px solid #977356;
    color: #977356;
    text-decoration: none;
    transition: 0.3s;
  }
  
  .blk-btn:hover {
    background: #977356;
    color: #fff;
  }

.reservation-area {
  display: flex;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px;
  flex-wrap: wrap;
  box-sizing: border-box;
}

.reservation-left {
  flex: 1;
  min-width: 320px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.banner-item img {
  width: 100%;
  display: block;
  border-radius: 0;
}

.reservation-right {
  flex: 1;
  min-width: 320px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.iframe-wrapper iframe {
  width: 100%;
  height: 210px;
  border: none;
}

/* 本日の診療枠（画像参考） */
.today-info {
  border: 1px solid #ddd;
  padding: 20px;
  background-color: rgba(255,255,255,0.85);
  color: #444;
  font-size: 15px;
  line-height: 1.6;
}

.today-header {
  font-weight: bold;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.today-button {
  font-size: 13px;
  background-color: #5e4436;
  color: #fff;
  padding: 4px 10px;
  text-decoration: none;
  border-radius: 3px;
  font-weight: normal;
}

.today-button:hover {
  opacity: 0.8;
}