﻿@charset "UTF-8";

@import url('//fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;600;700;900&display=swap');
@import url('//fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;500;600;700;900&display=swap');
@import url('//fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700;900&display=swap');
@import url('//fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700;900&display=swap');
@import url('//fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Sen:wght@400..800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cardo:wght@400;700&display=swap');
/* Google font Icon */
@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200");


/*========================
ナビゲーション
========================*/
/*-------------------------
ハンバーガーメニュー
--------------------------*/
.hbg {
  position: fixed;
  right: 0;
  top: 0;
  width: 124px;
  height: 124px;
  cursor: pointer;
  z-index: 300;
	background: #EC7BAB;
}
.hbg:after{
	display: block;
	content: "MENU";
	font-size: 0.95em;
	line-height: 1;
	color: #FFF;
  font-weight: 600;
	text-align: center;
	letter-spacing: 0.2em;
	margin-top: 5.4em;
}
.hbg span{
  position: absolute;
	top: 0;
	right: 30px;
  width: 64px;
  height: 3px;
  background-color: #FFF;
  transition: all 0.5s;
}
.hbg span:nth-last-child(1) {
  top: 1.8em;
}
.hbg span:nth-last-child(2) {
  top: 2.9em;
}
.hbg span:nth-last-child(3) {
  top: 4em;
}

/*ハンバーガーがクリックされたら*/
.open .hbg {
	background: #FFF;
}
.open .hbg:after{
	content: "CLOSE";
	color: #EC7BAB;
}
.open .hbg span{
  background-color: #EC7BAB;
}
.open .hbg span:nth-last-child(1) {
  transform: rotate(-45deg);
  top: 2.9em;
}
.open .hbg span:nth-last-child(2) {
  opacity: 0;
}
.open .hbg span:nth-last-child(3) {
  transform: rotate(45deg);
  top: 2.9em;
}

@media screen and (max-width: 960px) {
.hbg {
  width: 100px;
  height: 100px;
	}
.hbg:after{
	font-size: 0.9em;
	margin-top: 4.6em;
	letter-spacing: 0.15em;
	}
.hbg span{
	right: 24px;
  width: 48px;
	}
.hbg span:nth-last-child(1) {
  top: 1.3em;
	}
.hbg span:nth-last-child(2) {
  top: 2.2em;
	}
.hbg span:nth-last-child(3) {
  top: 3.1em;
	}
/*ハンバーガーがクリックされたら*/
.open .hbg span:nth-last-child(1) {
  transform: rotate(-45deg);
  top: 2.4em;
	}
.open .hbg span:nth-last-child(3) {
  transform: rotate(45deg);
  top: 2.4em;
	}
}

@media screen and (max-width: 640px) {
.hbg {
  width: 100px;
  height: 84px;
	}
}

@media screen and (max-width: 480px) {
.hbg {
  width: 74px;
  height: 74px;
	}
.hbg:after{
	font-size: 0.8em;
	margin-top: 4.3em;
	}
.hbg span{
	right: 18px;
  width: 38px;
  height: 2px;
	}
.hbg span:nth-last-child(1) {
  top: 1.2em;
	}
.hbg span:nth-last-child(2) {
  top: 1.9em;
	}
.hbg span:nth-last-child(3) {
  top: 2.7em;
	}
/*ハンバーガーがクリックされたら*/
.open .hbg span:nth-last-child(1) {
  transform: rotate(-45deg);
  top: 2em;
	}
.open .hbg span:nth-last-child(3) {
  transform: rotate(45deg);
  top: 2em;
	}
}

/*-------------------------
メニュー中身
--------------------------*/
nav {
  position: fixed;
  right: -100%;
  top: 0;
  width: 100%;
	max-width: 640px;
  height: 100vh;
  background-color: #fff;
	border-radius: 24px 0px 0px 24px;
  transition: all 0.5s;
  z-index: 200;
  overflow-y: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
nav::-webkit-scrollbar{
  display: none;
}
/*ハンバーガーがクリックされたら右からスライド*/
.open nav{
  right: 0;
}
@media screen and (max-width: 960px) {
nav {
	max-width: 480px;
	}
}
@media screen and (max-width: 480px) {
nav {
	border-radius: 0px 0px 0px 0px;
	}
}

/*-------------------------
コンテンツリンク
--------------------------*/
.navmenu {
  width:100%;
  margin: auto;
  padding:124px 0 0;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  justify-content: flex-start;
  align-items:center;
	flex-wrap: wrap;
}
@media screen and (max-width: 960px) {
.navmenu {
  padding:100px 0 0;
	}
}
@media screen and (max-width: 640px) {
.navmenu {
  padding:84px 0 0;
	}
}
@media screen and (max-width: 480px) {
.navmenu {
  padding:74px 0 0;
	}
}
.navmenu a{
	display: block;
	position: relative;
	background: #EC7BAB;
	color: #FFF;
	line-height: 1;
	font-weight: 600;
	text-decoration: none;
	padding: 1.2em 0.5em 1.2em 2.6em;
}
.navmenu a:hover{
	background: #EC7BAB;
}
.navmenu a:after{
	position: absolute;
  top: 50%;
  right: 0.3em;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  font-size: 1.2em;
  font-family:"Material Symbols Rounded";
	content: "\e5e1"; /*矢じりのみ矢印*/
  font-variation-settings:
  'FILL' 0,
  'wght' 200
}

.navmenu_home{
  width: 50%;
	border-right: 1px solid #FFF;
	border-bottom: 1px solid #FFF;
}
.navmenu_aboutus{
  width: 50%;
	border-bottom: 1px solid #FFF;
}
.navmenu_guide{
  width: 50%;
	border-right: 1px solid #FFF;
}
.navmenu_staff{
  width: 50%;
}
.navmenu_service{
	width: 100%;
	display: block;
	border-top: 1px solid #FFF;
	position: relative;
	background: #EC7BAB;
	color: #FFF;
	line-height: 1;
	font-weight: 600;
	text-decoration: none;
	padding: 1.2em 0.5em 1.2em 2.6em;
}
.navmenu_recruit{
	width: 100%;
	display: block;
	border-top: 1px solid #FFF;
}
@media screen and (max-width: 480px) {
.navmenu_home{
  width: 100%;
	border-right: 0;
	}
.navmenu_aboutus{
  width: 100%;
	}
.navmenu_guide{
  width: 100%;
	border-right: 0;
	border-bottom: 1px solid #FFF;
	}
.navmenu_staff{
  width: 100%;
	}
}

/*コンテンツ別アイコン*/
.navmenu_home:before{
  position:absolute;
  top: 48%;
  left: 0.4em;
  transform: translateY(-48%);
  -webkit-transform: translateY(-48%);
  -ms-transform: translateY(-48%);
  content:"";
  display:inline-block;
  width:1.6em;
  height:1.6em;
  background:url(../img/common/nav_home.png) no-repeat;
  background-size:contain;
}
.navmenu_aboutus:before{
  position:absolute;
  top: 48%;
  left: 0.5em;
  transform: translateY(-48%);
  -webkit-transform: translateY(-48%);
  -ms-transform: translateY(-48%);
  content:"";
  display:inline-block;
  width:1.6em;
  height:1.6em;
  background:url(../img/common/nav_aboutus.png) no-repeat;
  background-size:contain;
}
.navmenu_guide:before{
  position:absolute;
  top: 50%;
  left: 0.5em;
  transform: translateY(-50%);
  -webkit-transform: translateY(-48%);
  -ms-transform: translateY(-48%);
  content:"";
  display:inline-block;
  width:1.6em;
  height:1.6em;
  background:url(../img/common/nav_guide.png) no-repeat;
  background-size:contain;
}
.navmenu_staff:before{
  position:absolute;
  top: 50%;
  left: 0.5em;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  content:"";
  display:inline-block;
  width:1.6em;
  height:1.6em;
  background:url(../img/common/nav_staff.png) no-repeat;
  background-size:contain;
}
.navmenu_service:before{
  position:absolute;
  top: 48%;
  left: 0.5em;
  transform: translateY(-48%);
  -webkit-transform: translateY(-48%);
  -ms-transform: translateY(-48%);
  content:"";
  display:inline-block;
  width:1.6em;
  height:1.6em;
  background:url(../img/common/nav_service.png) no-repeat;
  background-size:contain;
}
.navmenu_recruit:before{
  position:absolute;
  top: 50%;
  left: 0.5em;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  content:"";
  display:inline-block;
  width:1.6em;
  height:1.6em;
  background:url(../img/common/nav_recruit.png) no-repeat;
  background-size:contain;
}

/*診療内容*/
.navmenu_servicelistwrap {
	width: 100%;
	background: #EC7BAB;
  padding:0 0 8px;
}
.navmenu_servicelist{
  width:96%;
  margin: auto;
  padding:0;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  justify-content: center;
  align-items:center;
	flex-wrap: wrap;
}
.navmenu_servicelist li{
  width: 50%;
  max-width:50%;
  width: calc(100% / 2);
	padding: 0 4px 8px;
}
@media screen and (max-width: 480px) {
.navmenu_servicelist{
  width:98%;
	}
}

/*診療内容ボタン*/
.navmenu_servicelist li a{
	width: 100%;
	display: inline-block;
	color: #EC7BAB;
	background-color: #FFF;
	text-decoration: none;
	padding: 0.8em 2.1em 0.8em 1em;
	transition: 0.3s;
	position: relative;
  line-height: 1;
  white-space: nowrap;
  font-size: 0.9em;
  font-weight: 600;
  letter-spacing: 0.04em;
  border-radius: 9999px;
  -webkit-border-radius: 9999px;
  -moz-border-radius: 9999px;
}
.navmenu_servicelist li .navmenubtn_egao{
	width: 100%;
	display: inline-block;
	color: #EB7AAB;
	background-color: #FFF;
	text-decoration: none;
	padding: 0.8em 2.1em 0.8em 1em;
	transition: 0.3s;
	position: relative;
  line-height: 1;
  white-space: nowrap;
  font-size: 0.9em;
  font-weight: 700;
  letter-spacing: 0.04em;
  border-radius: 9999px;
  -webkit-border-radius: 9999px;
  -moz-border-radius: 9999px;
}
.navmenu_servicelist li a:after {
	position: absolute;
  top: 50%;
  right: 0.3em;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  font-size: 1.2em;
  font-family:"Material Symbols Rounded";
	content: "\e5e1"; /*矢じりのみ矢印*/
  font-variation-settings:
  'FILL' 0,
  'wght' 200
}
.navmenu_servicelist li a:hover{
	background-color: #FCE9F1;
	transition: 0.3s;
}
.navmenu_servicelist li .navmenubtn_egao:hover{
	background-color: #FCE9F1;
	transition: 0.3s;
}

/*-------------------------
医院情報
--------------------------*/
.navinfo {
	width: 100%;
  max-width: 480px;
	margin: 0 auto;
	padding: 24px 24px 42px;
	font-size: 0.9em;
	text-align: center;
}

.navlogo {
	max-width: 280px;
	margin: 0 auto 12px;
}
.navinfo h1{
	font-size: 1.05em;
	font-weight: 600;
	color: #333;
	line-height: 1.6;
	margin-bottom: 12px;
}

/*GoogleMapボタン*/
.navmapbtn{
  position:relative;
  display: inline-block;
  font-size: 0.9em;
  line-height: 1;
  padding: 0.4em 0.6em 0.4em 1.6em;
	background: #FFF;
  white-space: nowrap;
  text-decoration: none;
  font-weight: 400;
  letter-spacing: 0.06em;
	border: 1px solid #555;
  border-radius: 9999px;
  -webkit-border-radius: 9999px;
  -moz-border-radius: 9999px;
	margin-left: 0.8em;
}
.navmapbtn:before{
	position: absolute;
  top: 50%;
  left: 0.3em;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  font-size: 1.2em;
  font-family:"Material Symbols Rounded";
	content: "\e569"; /*マップ*/
  font-variation-settings:
  'FILL' 1,
  'wght' 300
}

/*TELリンク*/
.navtel {
	position: relative;
	font-weight: 600;
	letter-spacing: 0.08em;
	font-size: 1.8em;
	line-height: 1;
	color: #EC7BAB;
	padding: 0 0 0 1em;
	text-decoration: none;
}
.navtel:before{
  position:absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  content:"";
  display:inline-block;
  width:0.9em;
  height:0.9em;
  background:url(../img/common/tel_pink.png) no-repeat;
  background-size:contain;
}

/*診療日カレンダー*/
.navcalendar {
  width:100%;
  margin: 24px auto;
  padding:0;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  justify-content: center;
  align-items:center;
}
.navcalendar li{
  width: 50%;
  max-width:50%;
  width: calc(100% / 2);
  margin:0 12px 0 0;
}
.navcalendar li:last-child{
  margin:0 0 0 0;
}
@media screen and (max-width: 480px) {
.navcalendar {
  flex-direction: column;
  display: block;
  }
.navcalendar li{
  width: 100%;
  max-width:100%;
  margin:0 0 24px 0;
  }
}

/*-------------------------
ハンバーガーメニュー解除用bg
--------------------------*/
.black-bg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  z-index: 5;
  background-color: #000;
  opacity: 0;
  visibility: hidden;
  transition: all 0.5s;
  cursor: pointer;
  z-index: 100;
}

/*ハンバーガーメニューが開いたら表示*/
.open .black-bg {
  opacity: 0.6;
  visibility: visible;
}