@charset "UTF-8";
/* CSS Document */

/*------------------------------------------------
 sub.css
------------------------------------------------*/
h1{
  position: relative;
  display: block;
  text-align: center;
  max-width: max-content;
  line-height: 1.4;
  font-weight: 600;
  font-size: 0.37rem;
  color: var(--site_color);
  margin: 0 auto;
}
h1 b{
	position: relative;
	display: inherit;
	text-align: inherit;
	max-width: inherit;
	line-height: inherit;
	font-weight: inherit;
	font-size: inherit;
	color: inherit;
	padding-bottom: 5px;
	margin: inherit;
}
h1 small{
	display: block;
	text-align: center;
	max-width: max-content;
	font-size: 0.22rem;
	color: var(--site_color);
	font-weight: 700;
	margin: 0 auto 5px;
}
h2 {
  display: block;
  text-align: center;
  color: var(--site_color);
  font-size: 0.32rem;
  font-weight: 600;
  line-height: 1.4;
  margin: 120px 0 35px;
}
h3 {
text-align: left;
  position: relative;
  display: block;
  line-height: 1.6;
  font-size: 0.25rem;
  font-weight: 500;
  padding-left: 35px;
  margin: 75px 0 21px;
}
h3.center{
  max-width: max-content;
  padding-right: 25px;
  margin-left: auto;
  margin-right: auto;
}
h3::before {
  content: "";
  position: absolute;
  background-color: var(--site_color);
  width: 25px;
  height: 3px;
  left: 0;
  top: 21px;
}
h4 {
text-align: left;
  position: relative;
  display: block;
  background-color: var(--site_color_lit);
  border-radius: 6px;
  font-size: 0.18rem;
  font-weight: 500;
  padding: 15px;
  margin: 65px 0 20px;
}
h4::before{
  content: "・";
}

/* 幅調整 */
.boot > h2:nth-child(1){
  margin-top: 0;
}
h2 + h3{
  margin-top: 35px;
}
h2 + .grid_content,
h3 + .grid_content,
h4 + .grid_content {
  margin-top: 35px;
}
h2 + .table_fixed, h2 + .table_scroll,
h3 + .table_fixed, h3 + .table_scroll,
h4 + .table_fixed, h4 + .table_scroll {
  margin-top: 35px;
}
h2 + .impact_box,
h3 + .impact_box,
h4 + .impact_box {
  margin-top: 35px;
}
h2 + .dev_list,
h3 + .dev_list,
h4 + .dev_list {
  margin-top: 25px;
}
h2 + .qa_list,
h3 + .qa_list,
h4 + .qa_list {
  margin-top: 25px;
}
h2 + .step_list,
h3 + .step_list,
h4 + .step_list{
  margin: 25px 0;
}
h2 + .introlist,
h3 + .introlist,
h4 + .introlist{
	margin-top: 0;
}
h3 + h4{
  margin-top: 35px;
}
main a{
	font-size:inherit;
	font-weight: inherit;
	line-height: inherit;
	color: blue;
	text-decoration: underline;
}
.table_fixed + .table_fixed{
  margin: 45px 0;
}
footer{
  margin-top: 0 !important;
}
.middle_size_img {
	width: 100%;
  max-width: 900px;
  border-radius: 0 !important;
margin-left: auto;
margin-right: auto;
}


/*------------------------------------------------
 下層構成
------------------------------------------------*/
.sub_column{
  display: grid;
  align-items: flex-start;
  grid-template-columns: 270px 1fr;
}
.sub_aside{
  position: sticky;
  overflow: auto;
/*   min-height: calc(100vh - 98px); */
  top: 98px;
  left: 0;
}
.sub_aside .sub_aside_scroll{
  min-height: max-content;
}
.sub_aside .aside_nav_page{
  display: block;
  background-color: var(--site_color);
  font-size: 0.18rem;
  font-weight: 600;
  line-height: 1.6;
  color: #fff;
  padding: 13px 20px 19px;
}
.sub_aside_list{
  list-style: none;
  padding-right: 30px;
}
.sub_aside_list *{
	text-decoration: none;
}
.sub_aside_inner {
  list-style: none;
  margin-top: 0;
  margin-left: 4px;
  margin-bottom: 10px;
}
.sub_aside_inner:empty{
  display: none;
}
.sub_aside_list a{
  display: block;
  color: var(--font_color);
	font-size: 0.14rem;
}
.sub_aside_list .aside_nav_jump {
	cursor: pointer;
  text-align: left;
  background: url(../img/common/parts/arrow_dgray_right.svg) no-repeat;
  background-position: 20px 50%;
  background-size: 6px;
  font-size: 0.14rem;
  line-height: 1.5;
  font-weight: 500;
  padding: 9px 5px 9px 35px;
}
.sub_aside_list .aside_nav_jump.current {
  background: unset !important;
  border-color: var(--site_color);
  color: var(--site_color);
  font-size: 0.15rem;
  padding-left: 18px;
  padding-bottom: 3px;
}
.sub_aside_list .sub_aside_link {
  position: relative;
  background: unset !important;
  font-weight: 500;
  font-size: 0.13rem;
  line-height: 1.6;
  padding: 5px 0px 5px 36px;
	text-align: left;
	letter-spacing: 1px;
}
.sub_aside_list .sub_aside_link:before{
	content: "・";
	position: absolute;
	left: 20px;
	top: 5px;
	font-size: 0.14rem;
}
.sub_aside_list .sub_aside_link.current{
  background-image: url(../img/common/parts/arrow_blue_right.svg);
  background-size: 8px;
  color: var(--site_color);
}
.sub_aside_list .aside_nav_back {
  background: url(../img/common/parts/arrow_gray_left.svg) no-repeat;
  background-position: 20px 48%;
  background-size: 8px;
  font-weight: 500;
  padding: 15px 20px 19px 46px;
}


/*------------------------------------------------
 下層トップ
------------------------------------------------*/
.sub_top{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  padding: 45px 15px;
  margin-bottom: 15px;
}
.sub_top.clear::before{
  display: none;
}
.sub_top .sub_top_thumb{
  position: absolute;
  object-fit: cover;
  width: 100%;
  height: 100%;
  inset: 0;
  z-index: -10;
}
.sub_top::before {
  content: "";
  position: absolute;
  background-color: #FFFFFF;
  inset: 0;
  opacity: .64;
  z-index: -5;
}


/*------------------------------------------------
 タブ切り替えマスター
------------------------------------------------*/
/* ボタン */
.tab_button_list{
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  justify-content: center;
  gap: 15px;
  margin-bottom: 25px;
}
.tab_button_list li{
  cursor: pointer;
  display: flex;
  text-align: center;
  align-items: center;
  justify-content: center;
  background-color: #EFEFEF;
  box-shadow: var(--shadow_sm);
  border-radius: 8px;
  font-weight: 500;
  font-size: 0.18rem;
  min-width: 220px;
  padding: 15px 25px;
}
.tab_button_list li.__enable{
  background-color: var(--site_color);
  color: #fff;
}
.tab_button_list.lg li {
  min-width: 32%;
  padding: 20px 10px;
}


/*------------------------------------------------
 アコーディオンマスター
------------------------------------------------*/
.accordion{
  margin: 15px 0;
}
.accordion .button{
  background: var(--site_color) url(../img/common/parts/icon_minus_w.svg) no-repeat;
  background-position: 98% 50%;
  background-size: 15px;
  font-size: 0.18rem;
  line-height: 1.4;
  color: #fff;
  padding: 15px;
  padding-right: 40px;
}
.accordion .button.__enable{
  background-image: url(../img/common/parts/icon_plus_w.svg);
}
.accordion .content{
  background-color: #eee;
  padding: 25px;
}
.accordion .content ul, .accordion .content ol{
  margin: 0 auto !important;
}


/*------------------------------------------------
 シングルページ
------------------------------------------------*/
.single p{
  margin-bottom: 15px;
}
.single p strong{
  font-weight: 500;
}
.single ol:not([class]),
.single ul:not([class]){
  padding-left: 25px;
  margin: 15px 0;
}

/* 最初のデータコンテンツ */
.single_info_box {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 10px 20px;
}
.single_info_box time {
  font-size: 0.21rem;
  font-weight: 500;
}
.single_info_box span {
  display: block;
  text-align: center;
  background-color: var(--site_color);
  font-size: 0.18rem;
  font-weight: 500;
  line-height: 1;
  color: #fff;
  padding: 6px 18px 8px;
}


/*------------------------------------------------
 インタビューページ
------------------------------------------------*/
/* サムネイル */
.iview_thumb {
  display: block;
  object-fit: cover;
  aspect-ratio: 40/21;
  border-radius: 8px;
  width: 100%;
  max-width: 900px;
  margin: 20px auto 25px;
}


/*------------------------------------------------
 イベント情報ページ
------------------------------------------------*/
.event_list{
  display: grid;
  list-style: none;
  align-items: flex-start;
  grid-template-columns: repeat(3, 1fr);
  gap: 65px 45px;
}
.event_list a{
  display: block;
}
.event_list img{
  display: block;
  object-fit: cover;
  aspect-ratio: 3/2;
  border-radius: 8px;
  height: auto;
  width: 100%;
  margin-bottom: 15px;
}
.event_list article {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 15px;
  margin-bottom: 10px;
}
.event_list article time{
  font-weight: 500;
}
.event_list article span {
  display: block;
  text-align: center;
  background-color: #ddd;
  font-weight: 500;
  font-size: 0.14rem;
  line-height: 1;
  padding: 7px 15px;
}


/*------------------------------------------------
 ドクターインタビューページ
------------------------------------------------*/
.iview_list{
  display: grid;
  list-style: none;
  align-items: flex-start;
  grid-template-columns: repeat(3, 1fr);
  gap: 65px 45px;
}
.iview_list a{
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: var(--shadow_md);
  text-decoration: none;
}
.iview_list img{
  display: block;
  object-fit: cover;
  aspect-ratio: 3/2;
  width: 100%;
  height: auto;
}
.iview_list .messege {
  position: absolute;
  background-color: #fff;
  border-radius: 0 15px 15px 0;
  color: var(--site_color);
  left: 0;
  transform: translateY(-90%);
  line-height: 1.6;
  margin-right: 50px;
  font-weight: 500;
  padding: 9px 20px 9px 17px;
}
.iview_list .state {
  background: var(--site_color) url(../img/common/parts/arrow_white_right.svg) no-repeat;
  background-position: 97% 50%;
  background-size: 7px;
  padding: 8px 16px 10px;
}
.iview_list .state small,
.iview_list .state p {
  display: block;
  color: #fff;
  font-weight: 600;
}
.iview_list .state small{
  font-size: 0.16rem;
}
.iview_list .state p{
  font-size: 0.24rem;
}


/*------------------------------------------------
 当院の発行物ページ
------------------------------------------------*/
.publications_list{
  display: grid;
  list-style: none;
  align-items: flex-start;
  grid-template-columns: repeat(3, 1fr);
  gap: 65px 45px;
}
.publications_list img{
  display: block;
  width: 100%;
  max-width: max-content;
  margin: 0 auto;
}
.publications_list article{
  display: flex;
  flex-wrap: wrap;
  gap: 5px 15px;
  max-width: max-content;
  margin: 0 auto;
}


/*------------------------------------------------
 サイトマップページ
------------------------------------------------*/
.sitemap_box ul{
  list-style: none;
}
.sitemap_box a{
  display: block;
}
.sitemap_box a:hover{
  text-decoration: underline;
  opacity: unset;
}
/* レイヤー01 */
.sitemap_box > ul > li > a {
  color: var(--site_color);
  font-size: 0.18rem;
  font-weight: 500;
  margin: 35px 0 12px;
}
/* レイヤー以降 */
.sitemap_box ul ul{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 30px;
}
.sitemap_box ul ul a {
  font-size: 0.15rem;
  font-weight: 500;
}


/*------------------------------------------------
 カレンダーページ
------------------------------------------------*/
.my_calendar .fc-header-toolbar.fc-toolbar{
  display: none;
}
.my_calendar tbody td{
  position: relative;
}
.my_calendar tbody td::before{
  content: "✕";
  position: absolute;
  transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
  font-size: 0.18rem;
  color: #ff6666;
}
.my_calendar tbody td.waku1::before{
  content: "△";
  color: #ff9900;
}
.my_calendar tbody td.waku2::before{
  content: "〇";
  color: #675C3F;
}
.my_calendar thead th,
.my_calendar tbody tr td:nth-child(6),
.my_calendar tbody tr td:nth-child(7) {
  background-color: #f8f8f8;
}
.my_calendar thead th a{
  display: block !important;
  text-align: center;
  padding: 10px !important;
}
.my_calendar .fc-daygrid-day.fc-day-today{
  background-color: #fff;
}

#autozip{
  display: none !important;
}


/*------------------------------------------------
レスポンシブ　　　max-width:1199px
------------------------------------------------*/
@media screen and (max-width:1500px){
  .iview_list{
    grid-template-columns: repeat(2, 1fr);
  }
}

/*------------------------------------------------
 レスポンシブ　　　max-width:1199px
------------------------------------------------*/
@media screen and (max-width:1199px) {
  .sub_column {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column-reverse;
  }
  .sub_aside, .sub_content{
    width: 100%;
  }
  .sub_aside{
    height: auto;
    min-height: unset;
    margin-bottom: 65px;
  }
  .event_list{
    gap: 45px 25px;
  }
}

/*------------------------------------------------
 レスポンシブ　　　max-width:991px
------------------------------------------------*/
@media screen and (max-width:991px) {
  h1 {
    font-size: 0.3rem;
  }
  h2 {
    font-size: 0.28rem;
    margin-top: 90px;
  }
  h3{
    font-size: 0.22rem !important;
    margin-top: 65px;
  }
h3::before {
  top: 18px;
}
  h4{
    margin-top: 45px;
  }
  .tab_button_list li {
    font-size: 0.16rem;
    padding: 10px 25px;
  }
  .event_list{
    grid-template-columns: repeat(2, 1fr);
  }
  .iview_list {
    grid-template-columns: 1fr;
    gap: 45px;
  }
}

/*------------------------------------------------
 レスポンシブ　　　max-width:767px
------------------------------------------------*/
@media screen and (max-width:767px) {
	h3 {
		font-size: 0.2rem !important;
		margin-top: 45px;
		margin-bottom: 15px;
	}
  .sub_top.clear{
    min-height: unset;
    padding: 0;
  }
  .sub_top.clear .sub_top_thumb{
    position: static;
  }
  .event_list{
    grid-template-columns: 1fr;
  }
  .iview_list .messege {
    position: static;
    transform: unset;
    font-size: 0.16rem;
    margin: 0;
  }
  .my_calendar tbody td::before {
    top: 65%;
    font-size: 0.1rem;
  }
}


/*------------------------------------------------
 調整用追加CSS
------------------------------------------------*/
/* 医師、担当医表ボタンリスト */
.medical_tantou_button{
display: grid;
  list-style: none;
  align-items: stretch;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px 45px;
  margin: 0 auto;
}
.medical_tantou_button.jcenter{
	grid-template-columns: repeat(2, 1fr);
	max-width: 830px;
}
.medical_tantou_button li {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--site_color);
  border: 2px solid var(--site_color);
  box-shadow: var(--shadow_md);
  background: url(../img/common/parts/arrow_blue_right.svg) no-repeat;
  background-position: calc(100% - 20px) 50%;
  background-size: 10px;
  border-radius: 9px;
  font-size: 0.22rem;
  font-weight: 600;
  gap: 13px;
  text-decoration: none;
  padding: 22px 15px 24px;
}
.medical_tantou_button li:has(a){
	display: block;
	padding: 0;
}
.medical_tantou_button li a{
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	width: 100%;
	height: 100%;
	color: var(--site_color);
	padding: 22px 15px 24px;
}
.medical_tantou_button li.__enable{
	background-image: url(../img/common/parts/arrow_white_right.svg);
}
.medical_tantou_button li.__enable img{
	filter: brightness(0) invert(1);
}

/* 「受診について」青ボタンリスト */
.medical_blue_button{
  display: grid;
  list-style: none;
  align-items: center;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px 80px;
  margin-top: 35px;
}
.medical_blue_button a {
  display: block;
  text-align: center;
  background: var(--site_color) url(../img/common/parts/arrow_white_right.svg) no-repeat;
  background-position: 93% 50%;
  background-size: 10px;
  border-radius: 8px;
  text-decoration: none;
  box-shadow: var(--shadow_md);
  font-size: 0.2rem;
  font-weight: 600;
  color: #fff !important;
  padding: 18px 15px;
}

/* 3列横並びリスト */
.introlist {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 20px 24px;
  padding: 0;
  margin: 60px 0;
}
.introlist.jcenter{
	justify-content: center;
}
.introlist:has(> li:only-child){
	justify-content: center;
}
.introlist li{
	width: calc(100% / 3 - 16px);
}
.introlist a {
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: url(../img/common/parts/arrow_blue_right.svg) no-repeat;
  background-position: 96% 50%;
  background-size: 8px;
  border: 2px solid #1E479C;
  border-radius: 8px;
  width: 100%;
  font-size: 0.18rem !important;
  font-weight: 600 !important;
  color: #1E479C !important;
  height: 100%;
  gap: 5px;
  text-decoration: none !important;
  padding: 21px 25px;
}
.introlist.in_navi a {
  background-image: url(../img/common/parts/arrow_blue_down.svg);
  background-size: 13px;
}
.introlist a small {
  display: block;
  text-align: center;
  font-size: 0.15rem;
  line-height: 1.6;
  color: inherit;
  width: 100%;
}

/* 「ドクターインタビューはこちら」ボタン */
.btn01.btn01_doc_iv{
	min-width: unset;
	width: 100%;
	max-width: 520px;
	padding: 23px 15px;
	border-width: 2px;
	margin-bottom: 50px;
	margin-top: 100px;
}

/* 医師紹介テーブル */
.table_fixed.table_fixed_doctor_interview th{
  min-width: 200px;
  width: 10%;
}
.table_fixed.table_fixed_doctor_interview td{
  width: 90%;
}

/* 外来担当テーブル */
.table_scroll.table_outpatient_doctor{
	margin-bottom: 15px;
}
.table_scroll.table_outpatient_doctor *{
  text-align: center;
}
.table_scroll.table_outpatient_doctor thead th{
  width: 16.6% !important;
}

/* 診療実績テーブル */
.table_scroll.table_medical_achieve th,
.table_scroll.table_medical_achieve th *{
  text-align: center;
}
.table_scroll.table_medical_achieve td,
.table_scroll.table_medical_achieve td *{
  text-align: right;
}
.table_scroll.table_medical_achieve thead th{
  width: 15% !important;
}
.table_scroll.table_medical_achieve thead tr:first-of-type th:first-of-type{
  width: 300px !important;
}

/* 対応疾患テーブル */
.table_scroll.table_medical_diseases thead th:nth-child(1){
  width: 22% !important;
}
.table_scroll.table_medical_diseases thead th:nth-child(2){
  width: 78% !important;
}

/* レスポンシブ対応 */
@media screen and (max-width:1300px){
	.introlist li{
		width: calc(50% - 12px);
	}
}
@media screen and (max-width:1199px){
	.table_scroll.table_outpatient_doctor thead th{
		width: 160px !important;
	}
}
@media screen and (max-width:991px){
	.table_scroll.table_outpatient_doctor thead th{
		width: 130px !important;
	}
	.medical_tantou_button{
		grid-template-columns: repeat(2, 1fr);
	}
	.table_scroll.table_medical_achieve thead th{
		width: 100px !important;
	}
	.table_scroll.table_medical_achieve thead tr:first-of-type th:first-of-type{
		width: 230px !important;
	}
}
@media screen and (max-width:767px){
	.medical_tantou_button,
	.medical_tantou_button.jcenter{
		grid-template-columns: 1fr;
	}
	.medical_tantou_button{
		gap: 15px 15px;
	}
	.medical_tantou_button li {
		background-position: calc(100% - 15px) 50%;
		background-size: 8px;
		font-size: 0.18rem;
		padding: 13px 25px 16px;
	}
	.medical_tantou_button li a{
		padding: 13px 25px 16px;
	}
	.medical_tantou_button img{
		width: 25px;
	}
	.medical_blue_button {
		grid-template-columns: 1fr;
	}
	.medical_blue_button a {
		font-size: 0.16rem;
		padding: 13px 15px;
	}
	.introlist{
		gap: 15px;
	}
	.introlist li{
		width: 100%;
	}
	.introlist a{
		font-size: 0.16rem !important;
		padding: 13px 25px 18px;
	}
	.introlist a small {
		font-size: 0.14rem;
	}
	.table_scroll.table_medical_diseases thead th:nth-child(1),
	.table_scroll.table_medical_diseases thead th:nth-child(2){
		width: auto !important;
	}
}


/*------------------------------------------------
 レスポンシブ　　　max-width:480px
------------------------------------------------*/
@media screen and (max-width:480px) {
h2 {
  font-size: 0.26rem;
}
}
