@charset "utf-8";
/*-------- 全ページのレイアウトcss --------*/

img, object, embed, video {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  margin:0;
}


/*ふわっと表示*/
body {
    animation: fadeIn 2s ease 0s 1 normal;
    -webkit-animation: fadeIn 2s ease 0s 1 normal;
}

@keyframes fadeIn {
    0% {opacity: 0}
    100% {opacity: 1}
}

@-webkit-keyframes fadeIn {
    0% {opacity: 0}
    100% {opacity: 1}
}

/* モバイルレイアウト : 480 px およびそれ以下. */

/* --------------------------------------------------------
header
-------------------------------------------------------- */
header{	width:100%;	position:relative;}
.header{	width:100%;	position:relative;}
.header a{text-decoration: none;}

.header .logo{
  margin: 0;
  padding: 3% 0 3% 3%;
  width: calc(100% - 100px);
}

.headerInfo{	display:none;}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
/* --------------------------------------------------------
nav
-------------------------------------------------------- */
/* ハンバーガーボタン */
nav{	width:100%;	position:relative;}

.openBtn{
	position:fixed;
    z-index: 9999;
	top:0;
	right: 0;
	cursor: pointer;
    width: 60px;
    height:60px;
	background:#4BD959;
}

.openBtn::after {
  position: absolute;
  left: 0;
  bottom: 0;
  content: 'MENU';
  display: block;
  width: 100%;
  color: #fff;
  font-size: 0.8rem;
  text-decoration: none;
  text-align: center;
  white-space: nowrap;
  transition: all .4s;
}
.openBtn.active::after {  content: 'CLOSE';}

.openBtn span{	/*×に変化*/
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 16px;
    height: 3px;
    border-radius: 10px;
		background-color: #FFF;
		width: 45%;
}
	.openBtn span:nth-of-type(1) {	top:15px;}
	.openBtn span:nth-of-type(2) {	top:23px;}
	.openBtn span:nth-of-type(3) {	top:31px;}
	.openBtn.active span:nth-of-type(1) {  transform: translateY(20px) rotate(-45deg); top:0;}
	.openBtn.active span:nth-of-type(2) {  opacity: 0;}
	.openBtn.active span:nth-of-type(3) {  transform: translateY(-20px) rotate(45deg); top:40px;}

#g-nav{
  position:fixed;
  z-index: 999;
	top:-120%;
  left:0;
	width:100%;
  height: 100vh;
	background:#FFF8DD;
	transition: all 0.6s;
}
	#g-nav.panelactive{	top: 0;}
	#g-nav.panelactive #g-nav-list{	/*ナビの数が増えた場合縦スクロール*/
		position: fixed;
		z-index: 999;
		width: 100%;
		height: 100vh;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
	}
	#g-nav ul {
		position: absolute;
		z-index: 999;
		top:50%;
		left:50%;
		transform: translate(-50%,-50%);
	}
	#g-nav li{	list-style: none;	text-align: center;	font-size:1rem;}
	#g-nav li a{
		color: #333;
		text-decoration: none;
		margin:20px 10px;
		padding:0;
		display: block;
		text-transform: uppercase;
		letter-spacing: 0.1em;
	}
	#g-nav li.current{	border-left:#4BD959 solid 3px;}/* 表示ページ */

/* --------------------------------------------------------
content
-------------------------------------------------------- */
section{
  width:90%;
  margin:0 auto;
  padding: 50px 0;
}

/* --------------------------------------------------------
footer
-------------------------------------------------------- */
footer{	width:100%;	margin-bottom:70px;}
.footerBox{	width:90%;	margin:0 auto;}

.footerL p span{
  display: inline-block;
}


/* 診療時間 */
.timeTable{
  margin:0 auto;
  width:100%;
}
.timeTable table{
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 20px;
}
	/* 1段目 */
	.timeTable table tr:first-of-type{	background-color:#20BD2F;}
	.timeTable table tr th{
		height:40px;
		color:#FFF;
		font-weight:600;
		border-right:#FFF solid 1px;
	}
	.timeTable table tr th:last-of-type{	border-right:none;}
	.timeTable table tr td{	text-align:center;}
	.timeTable table tr td:first-of-type{	padding-left:0.5rem;	text-align:left;}
	/* 2段目 */
	.timeTable table tr:nth-of-type(2) td{	border-right:#707070 solid 1px;	border-bottom:#707070 solid 1px;}
	.timeTable table tr:nth-of-type(2) td:last-of-type{	border-right:none;}
	/* 3段目 */
	.timeTable table tr:nth-of-type(3) td{	border-right:#707070 solid 1px;}
	.timeTable table tr:nth-of-type(3) td:last-of-type{	border-right:none;}

/* 医院情報 */
.reservation {
  display: flex;
  align-items: center;
  gap: 10px;
}
.reservation .time {
  width: 100px;
  background: #E8340C;
  display: inline-block;
  padding: 5px 10px;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
}
.reservation p {
  color: #E8340C;
}
.infoFoot {	width:100%;	margin:5% auto 0;}
	.infoFoot dl{
		margin:0 0 20px;
		padding:0;
		display:flex;
		align-items: center;
	}
	.infoFoot dt{
		margin:0;
		padding: 3px 0 3px 6px;
		width:30%;
		font-size:1rem;
		font-weight:bold;
		border-left:#079626 solid 5px;
	}
	.infoFoot dd{
		margin:0;
		padding:0;
	}
/* Googleマップ */
.gMap{	width:100%;	margin:0 0 20px;}
.mapInfo ul{
  padding-left: 1.5em;
}
/* アクセスリンク */
a.accessmapLink {
  color: #079626;
  border: 1px solid #079626;
  text-align: center;
  text-decoration: none;
  border-radius: 30px;
  padding: 2% 5%;
}

/* コピーライト */
.copyright{
  padding: 5% 0 3%;
  width: 100%;
  font-size: 0.8rem;
  text-align: center;
}

/* スマホ用固定メニュー */
.footerMenu_SP{
	position:fixed;
	z-index: 2;
	bottom:0;
	left: 0;
	width:100%;
}
	.footerMenu_SP ul{
		margin:0;
		padding:0;
		list-style:none;
		display:flex;
	}
	.footerMenu_SP ul li{
		margin:0;
		padding:15px 0 10px;
		width:100%;
		text-align:center;
    img{
      width: 50%;
    }
	}
	.footerMenu_SP ul li.tel{	background:#FBC919;}
	.footerMenu_SP ul li.btn_top{	background:#8ED459;}

/* --------------------------------------------------------
ポップアップ表示
-------------------------------------------------------- */

/* ポップアップ表示 */
/* これが無いとモーダルウィンドウ表示の際に余白が出る */
/* * {
  margin: 0;
  padding: 0;
} */

/* モーダル全体(背景＋本体) */
.modal {
  display: none;
  position: fixed;
  top: 0;
  height: 100dvh;
  width: 100%;
  z-index: 9999;
}

/* モーダル背景 */
.modal-bg {
  position: fixed;
  height: 100dvh;
  width: 100%;
  background: rgba(0, 0, 0, 0.8);
}

/* モーダル本体 */
.modal-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /*overflow: scroll;  はみ出た部分はスクロールさせる */
  height: auto; /* これが無いと「overflow:scroll」が利かない */
  width: 80%; /* これが無いと「overflow:scroll」が利かない */
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  img{
    display: block;
    height: 80dvh;
  }
}
.modal-content a {
  display: block;
  color: #fff;
  font-size: 16px;
  padding-top: 3%;
  cursor: pointer;
}

  /* モーダルウィンドウ表示中に記事本体を固定 */
  body.fixed {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
}

/* タブレットレイアウト : 768px～。モバイルレイアウトからスタイルを継承。 */

@media print, screen and (min-width: 768px) {

/* --------------------------------------------------------
header
-------------------------------------------------------- */
header{
  width:100%;
  min-width: 1000px;
	height: 100px;
	margin:0 ;
	padding: 5px 10px;
  position: fixed;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	z-index: 99;
  background-color: rgba(255, 255, 255, 0.8);
	box-shadow: 0px 0px 5px 0px #CCC;
}
.header{
  margin: 0 auto;
  padding: 0;
  width: 100%;
  max-width: 1500px;
  height: 100%;
	display: flex;
	justify-content: space-evenly;
	align-items: center;
  gap: 2%;
}

.header .logo{
  margin:0;
  padding: 0;
  width: 30%;
  max-width: 100%;
}
.header .logo img{
  margin:0;
}

.headerInfo{
	display: block;
  font-size: 15px;
	text-align:right;
}
.headerInfo p{
  line-height:35px;
}
.headerInfo p a{
  color:#E8340C;
  font-size:24px;
  font-weight: 600;
  letter-spacing: 1px;
}
.headerInfo p img{
  margin: 0 10px 0 0;
}

/* --------------------------------------------------------
nav
-------------------------------------------------------- */
/* ハンバーガーボタン */
nav{
  margin: 0;
  width: auto;
}

.openBtn{ display: none;}
#g-nav{
	position: static;
	z-index: 0;
	top: 0;
	left: 0;
	width: auto;
	height: auto;
	background: none;
}
	#g-nav ul {
		position: static;
		margin: 0;
		padding: 0;
		width: auto;
		transform: none;
		display: flex;
		justify-content: space-around;
	}
	#g-nav li {	margin:0;	padding:0 0.5em;	font-size:22px;}
  #g-nav li:first-of-type{
    padding-left: 0;
  }
  #g-nav li:last-of-type{
    padding-right: 0;
  }
	#g-nav li a{
		margin:0;	padding: 0;
		display:inline-block;
		position:relative;
		cursor:pointer;
		text-decoration:none;
		font-size: 16px;
	}
	@media print, screen and (max-width: 1280px) {
		#g-nav li a{ font-size: 17px;}
	}
	#g-nav li a:hover{	color:#CCC;}
	#g-nav li a::after{
		content:'';
		position:absolute;
		left:50%;
		bottom:-3px;
		width:60%;
		height:3px;
		opacity:0;
		background-color:#4BD959;
		transform:translate(-50%,0);
		transition:all .3s ease-in-out;
	}
	#g-nav li a:hover::after{width:100%;opacity:1}

/* --------------------------------------------------------
content
-------------------------------------------------------- */
section{
  width:95%;
  max-width: 1200px;
  margin:0 auto;
  padding: 60px 0;
}

h3{	font-size:24px;}

/* --------------------------------------------------------
footer
-------------------------------------------------------- */
footer{
  width:100%;
  margin-bottom:0;
}
.footerBox{
  width: 95%;
  max-width:1000px;
  margin:0 auto 30px;
  display:flex;
  justify-content: space-between;
}
.footerL{
  width: 49%;
  max-width: 480px;
}
.footerR{
  width: 49%;
  max-width: 480px;
}

h3.footerTitle{
  margin: 0;
}

/* 診療時間 */
.timeTable{
  margin:0 auto 20px;
}
  /* 1段目 */
  .timeTable table tr th{
    height:45px;
    font-size:18px;
  }
  .timeTable table tr td{
    height:45px;
  }
  .timeTable table tr td:first-of-type{
    padding-left:0;
    text-align: center;
  }

/* 医院情報 */
.infoFoot {
  width:100%;
  margin:0 auto;
}
  .infoFoot dl{
    margin:0 0 20px;
    padding:0;
  }
  .infoFoot dt{
    margin:0 20px 0 0;
    padding: 3px 0 3px 10px;
    width:90px;
    font-size:18px;
  }
  .infoFoot dd{
    margin:0;
    padding:0;
  }

/* Googleマップ */
.gMap{
  width:100%;
  margin:0 0 10px;
}
.mapInfo{
  /* display:flex;
  justify-content: space-between;
  align-items: center; */
}
/* アクセスリンク */
a.accessmapLink {
  color: #079626;
  border: 1px solid #079626;
  text-align: center;
  text-decoration: none;
  border-radius: 30px;
  padding: 5px 10px 5px 15px;
}

/* コピーライト */
.copyright{
  margin:0 auto;
  padding: 20px 0;
  font-size:14px;
}

/* スマホ用固定メニュー */
.footerMenu_SP{	display:none;}

/* --------------------------------------------------------
ポップアップ表示
-------------------------------------------------------- */
.modal-content {
  width: 50%;
  img{
    height: auto;
  }
}

}

@media screen and (min-width: 768px) and (max-width: 1250px){
  .header h1{
    width: 24%;
  }
  #g-nav li{
    padding: 0 5px;
  }
  #g-nav li a{
    font-size: 15px;
  }
  .headerInfo p{
    margin: 0;
    font-size: 14px;
    line-height: 30px;
  }
  .headerInfo p a{
    font-size: 22px;
    img{
      width: 25px;
    }
  }
}

/* 印刷用 css */
@media print {
  nav {	display:none;}
}