@charset "UTF-8";
/*
	・見出し
	・パンクず
	・サイドメニュー
	・li,ol,dl,table
	・下層ページ毎のスタイル
*/
/*==========================================
 全デバイス共通［common］
===========================================*/
/*footerを下部に固定*/
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
footer {
  margin-top: auto;
}
/*==========================================
 PC［1024px~］
===========================================*/
/*------------
 h1見出しタイトルエリア
------------*/
#ttl-area {
  margin-bottom: 50px;
}
.ttl-areaInner {
  background: #fff;
}
/*------------breadcrumb------------*/
#breadcrumb {
  margin: 0 auto;
  overflow-x: scroll;
  white-space: nowrap;
  border-bottom: solid 1px var(--bg-color);
}
#breadcrumb::-webkit-scrollbar {
  display: none;
}
.breadcrumb {
  margin: auto;
  padding: 20px 0;
  width: min(90%, 1200px);
  display: flex;
}
.breadcrumb li {
  margin: 0;
  padding: 0;
}
.breadcrumb li:after {
  content: 'ー';
  padding: 0 7px;
  font-size: 12px;
  color: var(--line-color);
}
.breadcrumb li:last-child:after {
  content: none;
}
.breadcrumb li:before {
  content: none;
}
.breadcrumb li, .breadcrumb a {
  font-size: 11px;
  color: var(--text-color);
	text-decoration: none;
}
.breadcrumb li:last-child a {
  pointer-events: none;
}
/*------------タイトル------------*/
.ttl-textWrap {
  border-bottom: solid 1px var(--line-color);
}
.ttl-text {
  width: min(90%, 1200px);
  margin: 0 auto;
  padding: clamp(60px, 3vw, 100px) 0 clamp(20px, 3vw, 30px);
  font-size: clamp(30px, 3vw, 40px);
  letter-spacing: 0.05em;
  line-height: 1.25;
  position: relative;
	font-weight: 400;	
}
.ttl-text:after {
  content: '';
  width: 50px;
  height: 2px;
  position: absolute;
  bottom: -1px;
  left: 0;
  background: var(--main-color);
}
/*------------
 本文見出し
------------*/ 
:where(#contentArea) h2 {
  width: 100%;
  margin: 0 0 1em;
  padding-bottom: 20px;
  font-size: clamp(25px, 5vw, 35px);
  line-height: 1.25;
  letter-spacing: .15em;
  position: relative;
  border-bottom: solid 1px var(--line-color);
	font-weight: 400;
}
:where(#contentArea) h2::after {
  content: '';
  width: 50px;
  height: 2px;
  position: absolute;
  bottom: -2px;
  left: 0;
  background: var(--main-color);
}
:where(#contentArea) h3 {
  margin: 0 0 1.25em;
  padding: 5px 15px 10px;
  font-size: clamp(20px, 5vw, 30px);
  line-height: 1.25;
  position: relative;
  letter-spacing: .15em;
  border-left: solid 2px var(--main-color);
	font-weight: 400;
}
:where(#contentArea) h3::after {
  content: '';
  width: 100%;
  height: 1px;
  position: absolute;
  bottom: -15px;
  left: 0;
  background: var(--line-color);
}
:where(#contentArea) h4 {
  margin: 0 0 1em;
  padding-left: 15px;
  font-size: clamp(20px, 5vw, 25px);
  line-height: 1.5;
  letter-spacing: .15em;
  border-left: solid 2px var(--line-color);
		font-weight: 400;

}
:where(#contentArea) h5 {
  margin: 0 0 1em;
	padding: .25em .5em;
  font-size: clamp(16px, 5vw, 18px);
  line-height: 1.5;
  letter-spacing: .15em;
	font-weight: 400;
	background: var(--bg-color);
	border-radius: 5px;
}
/*------------
 コンテンツエリア
------------*/
#contentArea .inner {
  margin: 0 auto;
  padding: 0 0 60px;
  width: min(90%, 1200px);
}
#contentArea .inner.narrow {
  width: min(90%, 900px);
}
/*2カラム*/
.hbn-col-2 {
  margin: 0 auto 60px;
  width: min(90%, 1200px);
  flex-direction: row-reverse;
}
.hbn-col-2 #ttl-area {
  width: 100%;
}
.hbn-col-2 main {
  width: calc(100% - 250px);
}
.hbn-col-2 #contentArea {
  padding: 0 0 0 50px;
}
.hbn-col-2 aside {
  padding: 0 50px 0 0;
  width: 250px;
  border-right: solid 1px var(--line-color);
}
#sideArea {
  position: sticky;
  top: 30px;
  max-height: 90vh;
	overflow-y: scroll;
}
#sideArea::-webkit-scrollbar {  
  display: none; /*Google Chrome、Safari、Microsoft Edge対応のスクロールバー非表示コード*/
}
#sideArea h3 {
  margin: 0 0 1.5em;
  padding: 0 0 10px 0;
  font-size: clamp(18px, 5vw, 20px);
  line-height: 1.5;
  letter-spacing: .15em;
  border-bottom: solid 1px var(--line-color);
		font-weight: 400;
}
.sideMenu li {
  margin-bottom: 5px;
}
.sideMenu li a {
  position: relative;
  padding: 10px 10px 10px 30px;
  display: block;
	color: var(--text-color);
	text-decoration: none;
	line-height: 1.25;
}
.sideMenu li a::after {
  content: '';
  position: absolute;
  top: 15px;
  left: 10px;
  width: 10px;
  height: 10px;
  background: url("../images/icon-arrow-simple.svg");
  background-size: contain;
  background-repeat: no-repeat;
  transition-duration: .3s;
}
.sideMenu li a:hover {
  color: var(--main-color);
}
.sideMenu li a:hover::after {
  left: 12px;
}
.sideMenu li.current a {
  font-weight: bold;
  color: var(--main-color);
}
/*END2カラム*/
main section {
  margin-bottom: 60px;
}
:where(#contentArea) p {
  margin-bottom: 2em;
  font-size: clamp(14px, 5vw, 15px);
  text-align: justify;
  line-height: 1.65;
}
:where(#contentArea a:not([href*="tel:"])) {
  text-decoration: underline;
  position: relative;
}
/*マージン*/
.m-bottom0{
	margin-bottom: 0px;
}
.m-bottom20{
	margin-bottom: 20px;
}
.m-bottom30{
	margin-bottom: 30px;
}
/*コンテンツ内アンカー*/
.anchorArea {
  padding: 20px ;
  margin-bottom: 30px;
  border-radius: 10px;
  justify-content:space-between;
  background: var(--bg-color);
}
.anchorArea::after {
	content: '';
	width: calc(33% - 10px);
	display: block;
}
.anchorArea a {
  padding: 10px 10px 10px 30px;
  width: calc(33% - 10px );
  display: flex;
  text-decoration: none;
  color: var(--text-color);
  border-right: solid 1px var(--line-color);
  line-height: 1.5;
  font-size: clamp(14px, 5vw, 15px);
}
.anchorArea a:nth-child(3n) {
	border-right: none;
}
.anchorArea a::before {
  margin-right: 10px;
  content: '';
  width: 20px;
  height: 20px;
 background: url("../images/icon-arrow-gray.svg");
	background-repeat: no-repeat;
	transform: rotate(90deg);
	position: absolute;
	left: 0;
	top: 13px;
}
.anchorArea a:hover {
  color: var(--main-color);
}
/*------------
 dlのスタイル
------------*/ 
:where(#contentArea) dl {
  margin-bottom: 60px;
  font-size: clamp(14px, 5vw, 15px);
  line-height: 1.5;
  display: flex;
  flex-wrap: wrap;
}
:where(#contentArea) dl dt {
  width: 20%;
  padding: 20px 10px;
  font-weight: bold;
  border-bottom: solid 1px var(--main-color);
}
:where(#contentArea) dl dd {
  width: 80%;
  padding: 20px 10px;
  border-bottom: solid 1px var(--line-color);
  word-break: break-all;
}
/*------------
 ulのスタイル
------------*/
/*基本のスタイル*/
:where(#contentArea) ul {
  margin-bottom: 60px;
  line-height: 1.5;
  font-size: clamp(14px, 5vw, 15px);
}
:where(#contentArea) ul li {
  padding: 0 0 .5em 18px;
  position: relative;
}
:where(#contentArea) ul li:before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: var(--main-color);
  position: absolute;
  top: 10px;
  left: 0;
}
/*アイコンなし*/
ul.no-icon li{
  padding: 0;
}
ul.no-icon li:before {
  content: none;
}
ul.no-icon li p{
	margin: 0;
}
/*矢印リスト*/
ul.arrowList li{
  padding: 0 0 .5em 30px;
}
ul.arrowList li:before{
	width: 20px;
  	height: 20px;
	background-image: url("../images/icon-arrow-black.svg");
	background-color: inherit;
	top:3px;
}

/*------------
 olのスタイル
------------*/ 
:where(#contentArea) ol {
  margin-bottom: 60px;
  counter-reset: count 0;
  line-height: 1.5;
  font-size: clamp(14px, 5vw, 15px);
}
:where(#contentArea) ol li {
  padding: 0 0 .5em 18px;
  position: relative;
}
:where(#contentArea li):last-child {
  margin-bottom: 0;
}
:where(#contentArea ol > li):before {
  content: counter(count) " ";
  counter-increment: count 1;
  color: var(--main-color);
  position: absolute;
  left: 0;
	top: -2px;
  font-size: 18px;
}

/*------------
 テーブルのスタイル
------------*/
table {
  margin-bottom: 60px;
  width: 100%;
  line-height: 1.5;
  background: #fff;
  border-radius: 10px;
  font-size: clamp(14px, 5vw, 15px);
}
th {
	width: 30%;
  padding: 1em;
  background: var(--bg-color);
  border-right: solid 1px #fff;
  border-bottom: solid 1px #fff;
  vertical-align: middle;
}
tr:first-child th {
  border-radius: 10px 0 0 0;
}
tr:last-child th {
  border-radius: 0 0 0 10px;
  border-bottom: none;
}
tr:only-child th {
    border-radius: 10px 0 0 10px;
  }
td {
  padding: 1em;
  border-bottom: solid 1px var(--bg-color);
  vertical-align: middle;
}
tr:last-child td {
  border-bottom: none;
}
table p:last-child {
  margin-bottom: 0;
}
caption {
	margin-top: 10px;
  caption-side: bottom; 
  text-align: right; 
	font-size: 13px;
}
/*--------
　テキストのスタイル関連
---------*/
.indent {
  padding-left: 1.5rem;
  text-indent: -1.5rem;
}
/*地色*/
.bg_color {
  margin: 20px 0 60px;
  padding: 30px;
  background: var(--bg-color);
  border-radius: 10px;
}
.bg_color p:last-child, .ul:last-child {
  margin-bottom: 0;
}
.bg_color_wh {
  background: #fff;
}
/*インデント*/
.indentback {
  text-indent: -1em;
  padding-left: 1em;
}
/*iframe*/
.iframe {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 75%;
}
.iframe iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/*------------
 imgのスタイル
------------*/ 
:where(#contentArea) img {
  margin: 10px;
}
.img100 {
	margin: 0;
  width: 100%;
  height: auto;
}
.img30 {
	margin: 0 auto;
  padding-left: 20px;
  width: 30%;
  min-width: 250px;
  height: auto;
	 display: block;
}
.img-block {
  display: block;
  margin: 0 auto;
}
.float-right {
  margin: 10px 0 10px 10px;
  float: right;
  z-index: 1;
  position: relative;
}
.cf::after {
  content: "";
  display: block;
  clear: both;
}
figcaption{
	margin-top: 10px;
}
/*------------
 お知らせ一覧
------------*/
/*お知らせのリスト
.news {
  text-align: left;
  flex-wrap: wrap;
}
.news dt {
  margin: 0;
  padding: 20px 0 0;
  border: none;
  width: 100%;
  font-size: 15px;
  position: relative;
  justify-content: flex-start;
  align-items: center;
}
.news .news-days {
  margin-right: 30px;
  font-weight: bold;
  color: #999;
}
.news .new {
  display: inline-block;
  color: var(--main-color);
  font-size: 12px;
  font-weight: bold;
}
.news dd {
  width: 100%;
  padding: 20px 0;
  font-size: 15px;
  line-height: 1.5;
  border-bottom: solid 1px var(--line-color);
}
.news dd a {
  display: block;
  position: relative;
  text-decoration: none;
	color: var(--text-color);
}
.news dd a:hover {
color: var(--main-color);
}*/
/*------------
 お知らせ詳細
------------*/
#news_contents .news-ttl-text {
  width: 100%;
  margin: 0 0 1.5em;
  padding-bottom: 20px;
  font-size: clamp(25px, 5vw, 35px);
  line-height: 1.25;
  letter-spacing: .15em;
  position: relative;
  border-bottom: solid 1px var(--line-color);
}
#news_contents h2 {
  font-size: clamp(25px, 5vw, 28px);
}
#news_contents h3 {
  font-size: clamp(20px, 5vw, 23px);
}
#news_contents h4 {
  font-size: clamp(18px, 5vw, 20px);
}
#news_contents h5 {
  font-size: clamp(16px, 5vw, 18px);
}
#news_contents .news-block-img img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  object-fit: cover;
  margin-left: 0;
  margin-right: 0;
}

/*------------
 スタッフ紹介
------------*/
.staffList-item {
  margin: 0 0 30px;
  padding: 30px 10px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  border-bottom: solid 1px var(--line-color);
}
.staffList-item::before {
  content: none;
}
.staffList-itemImg {
  width: 170px;
}
.staffList img {
  margin: 0;
  width: 150px;
  height: 200px;
  object-fit: cover;
  border-radius: 10px;
}
.staffList-itemData {
  width: calc(100% - 200px);
}
.staffName {
  width: 100%;
  font-size: 20px;
	font-weight: bold;
}
.staffName .post {
  margin-bottom: 5px;
  font-size: clamp(13px, 3vw, 16px);
  display: block;
}
.staffName ruby {
  ruby-align: distribute-space;
  ruby-position: under;
}
.staffName ruby rt {
  transform: translateY(.5em);
}
.staffDl {
  margin: 0;
  padding: 0 10px;
}
.staffDl :is(dt,dd) {
  margin-bottom: 10px;
  padding: 0;
  border: none;
}
.staffDl dt {
  margin-bottom: 5px;
}
.staffDl02 :is(dt,dd){
	width: 100%;
 padding: 0;
  border: none;
}
.staffDl02 dd{
	margin: 5px 0 10px;
}
.licenseList{
	margin-bottom: 0;
}
.licenseList li {
  padding-bottom: 0;
}
/*------------
 診療案内・各診療ページ
------------*/
.treatmentOl > li{
	margin-bottom: 30px;
	padding:15px 0 0 65px;
	border-bottom: dotted 1px var(--line-color);
}
.treatmentOl > li::before {
	font-size: 50px;
	top: -5px;
	left: 20px;
	line-height: 55px;
	color: var(--main-color);
	z-index: -1;
	font-weight: 300;
}
.treatmentOl > li::after {
	content: '';
	width: 1px;
	height: 100%;
	position: absolute;
	bottom: 0;
	left:0;
	border-right: dotted 1px var(--line-color);
}
.treatmentOl h4{
	margin:0 0 .75em;
	padding: 0;
	border: none;
	font-weight: 400;
}
/*------------
 研究紹介
------------*/
/*もっと読むーアコーディオン*/
.readmoreButton {
    text-align:center;
	width: 100%;
    padding:15px;
	font-weight: bold;
	background:var(--sub-color);
	border-radius: 5px;
	transition-duration: .3s;
	position: relative;
	cursor: pointer;
}
.readmoreButton .icon{
	position: absolute;
	width: 20px;
	height: 20px;
	border-radius:2px;
	right: 10px;
	top: 50%;
	transform: translateY(-50%); 
	display: block;
	background: #fff;
}
.readmoreButton .icon::before,
.readmoreButton .icon::after {
  position: absolute;
  content: "";
  display: block;
  transition: all 0.4s;
  background: var(--text-color);
  left: 50%;
  top: 50%;
  width: 50%;
  height: 2px;
  transform: translate(-50%, -50%);
}
.readmoreButton .icon::before {
  transform: translate(-50%, -50%) rotate(90deg);
}
/* プラスアイコンクリック後、マイナスにする */
.readmoreButton.close .icon::before {
  transform: translate(-50%, -50%) rotate(0);
}
.readmoreButton.close {
    background:var(--line-color);
}
/*--- 国際交流 ---*/
.meetingImg{
	padding: 10px;
	display: block;
	border: solid 1px var(--line-color);
}
/*------------
 患者さんへ
------------*/
.medicalInfoTable{
	table-layout: fixed;
}
.medicalInfoTable thead th,
.medicalInfoTable tbody th:first-child{
	border-radius: 0;
}
.medicalInfoTable thead th:first-child{
	border-radius:10px 0 0 0;
}
.medicalInfoTable thead th:last-child{
	border-radius:0 10px 0 0;
}
.medicalInfoTable td{
	border-right: solid 1px var(--bg-color);
	text-align: center;
}
.medicalInfoTable tr:last-child td{
	border-bottom: solid 1px var(--bg-color);
}
/*------------
当講座の歴史
------------*/
.timeline dt{
	margin:10px 20px 0 0;
	padding: 0;
	width: 150px;
	border: none;
	font-size: clamp(16px,5vw,20px);
	position: relative;
	text-align: center;
}
.timeline dt::before{
	margin: 0 auto;
	content: '';
	width: 2px;
	height: calc(100% - 40px);
	background: var(--line-color);
	position: absolute;
	bottom: 0;
	right: 0;
	left: 0;
}
.timeline dd{
	padding: 12px 10px 20px;
	border: none;
	width: calc(100% - 170px);
}

/*==========================================
 tb［541px-1024px以下］
===========================================*/
@media screen and (max-width: 1024px) {
  /*------------
	 コンテンツエリア
	------------*/
  /*2カラム*/
  .hbn-col-2 {
    flex-direction: column;
  }
  .hbn-col-2 main {
    margin-bottom: 60px;
    width: 100%;
  }
  .hbn-col-2 aside {
    width: 100%;
    border-right: none;
  }
  .hbn-col-2 #contentArea {
    padding: 0;
  }
  .hbn-col-2 aside {
    padding: 0;
  }
  /*END2カラム*/
  /*コンテンツ内アンカー*/
  .anchorArea {
    justify-content: space-between;
  }
  .anchorArea a.btm {
    width: 48%;
    margin: 10px 0;
  }
  /*------------
 スタッフ紹介
------------*/
  .staffList-item {
    width: 48%;
    flex-direction: column;
    justify-content: flex-start;
  }
  .staffList-itemImg, .staffList-itemData {
    width: 100%;
  }
  .staffList-itemImg {
    margin-bottom: 20px;
    text-align: center;
  }
  .staffDl dt, .staffDl dd {
    width: 100%;
  }
}
/*==========================================
 sp［540px以下］
===========================================*/
@media screen and (max-width: 540px) {
  /*------------
	 breadcrumb
	------------*/
  .breadcrumb li:after {
    padding: 0 5px;
  }
  .breadcrumb a {
    font-size: 10px;
  }
  /*------------
	 コンテンツエリア
	------------*/
	/*サイドバー*/
	#sideArea {
	  position: static;
	  height: auto;
	}
  /*コンテンツ内アンカー*/
  .anchorArea a {
	  margin-bottom: 10px;
	  padding: 0 0 0 28px;
   		width: 100%;
   		border: none;
  }
	.anchorArea a::before {
		top: 3px;
	}
  /*------------
	 テーブルのスタイル
	------------*/
  /*th td 100%*/
  table.sp-th100 :is(th, td) {
    display: block;
    width: 100%;
  }
  tr:first-child th {
    border-radius: 10px 0 0 0;
  }
  tr:last-child th {
    border-radius: 0 0 0 10px;
  }
	tr:only-child th {
    border-radius: 10px 0 0 10px;
  }
  tr:last-child td {
    border-bottom: solid 1px var(--bg-color);
  }
  table.sp-th100 th {
    padding: 10px 12px;
    border: none;
	text-align: left;
	border-radius: 10px 10px;
  }
  table.sp-th100 td {
	  padding: 10px 10px 15px;
	  border: none;
  }
	
	/*------------
	 dlのスタイル
	------------*/ 
	 .sp-w100DL dt {
	  width: 100%;
	 padding: 20px 5px 0;
	border: none;
	}
	.sp-w100DL dd {
	  width: 100%;
	  padding: 10px 5px 20px;
	}
	/*------------
	 imgのスタイル
	------------*/
	.float-right{
		float: none;
	}
	 .img30{
		 margin: 0 auto 10px;
		 padding: 0;
	}
  /*------------
	 スタッフ紹介
	------------*/
  .staffList-item {
    width: 100%;
  }
	/*------------
	 患者さんへ
	------------*/
	.medicalInfoTable thead th{
		border-radius: 0;
	}
	/*------------
	当講座の歴史
	------------*/
	.timeline dt{
		width: 100%;
		text-align: left;
	}
	.timeline dt::before{
		content: none;
	}
	.timeline dd{
		margin-left: auto;
		width: 90%;
		position: relative;
	}
	.timeline dd::before{
	margin: 0 auto;
	content: '';
	width: 2px;
	height: calc(100% - 20px);
	background: var(--line-color);
	position: absolute;
	bottom: 0;
	left: -5%;
}
}