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

html { width: 100%;height: 100%;margin: 0;	padding: 0;} 
body{width:100%;height: 100%;margin:0;padding:0; -webkit-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;}


.mincho{font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;}
.mincho_cormorant{font-family: "cormorant", sans-serif;font-weight: 300;font-style: normal;}
.mincho_hiragino{font-family: "hiragino-mincho-pron", sans-serif;font-weight: 100;font-style: normal;}
.clearfix:after{content: "";clear: both;display: block;}
:hover{-webkit-transition: all 0.3s ease;-moz-transition: all 0.3s ease;-o-transition: all 0.3s ease;transition: all  0.3s ease;}

/*タイトル*/
.title_area{}
.title_area .small{position: relative;width: fit-content; margin-bottom:8%;padding: 0 0 0 20px;font-size:clamp(13px, 0.8vw, 16px);letter-spacing: 1px;line-height: 1;font-weight: 300;color: #3b55a9;}
.title_area .small::before{content: '';position: absolute;top:50%;left: 0%;transform: translateY(-50%);width: 8px;height: 8px;background: #3b55a9;border-radius: 4px}
.title_area .headline_jpn{margin:0 0 0px 0;padding: 0;font-size:clamp(25px, 3.5vw, 50px);letter-spacing: 2px;line-height: 1.2;font-weight: 100;color: #0a283f;}
.title_area .headline_eng{margin:0 0 0px 0;padding: 0;font-size:clamp(35px, 4.5vw, 70px);letter-spacing: 2px;line-height: 1.2;font-weight: 100;color: #0a283f;}

/*フッター*/
footer{margin: 0 auto;}	
/*
footer #access_group{margin: 0 auto 0% auto;padding: 5% 0;background: #f9f9f9}
footer #access_group .title_area{width: 70%;min-width: 1000px;margin: 0 auto 2% auto;}
footer #access_group .title_area .small{margin-bottom:2%;}
footer #access_group .route{width:70%;min-width: 1000px;margin: 0 auto 2% auto;font-size:clamp(14px, 0.8vw, 22px);letter-spacing:1px;line-height: 1.5;font-weight:300;color: #0a283f;}
footer #access_group .route span{display: block;width: fit-content;margin-bottom: 1%;padding: 0.5% 2%;font-size:clamp(14px, 0.8vw, 20px);letter-spacing:1px;line-height: 1.5;font-weight:300;text-align: center;color: #3b55a9;border: 1px solid #bec8d8;}
footer #access_group .google_map{width: 80%;margin: 0 auto 3% auto;}
footer #access_group .google_map iframe{width:100%;margin: 0;padding: 0;aspect-ratio:3/1;border: 0;}
footer #access_group .information_area{width: 75%;min-width: 1000px;margin: 0 auto 3% auto;display: flex;justify-content: space-between}
footer #access_group .information_area .outline{width:25%;}
footer #access_group .information_area .outline .logo_area{margin: 0 auto 3% auto;}
footer #access_group .information_area .outline .logo_area img{width: 100%;max-width: 300px}
footer #access_group .information_area .outline .name{margin: 0 auto 2% auto;font-size:clamp(18px, 1.4vw, 24px);letter-spacing:1px;line-height: 1.5;font-weight:300;}
footer #access_group .information_area .outline .name span{display: block;font-size:clamp(12px, 0.8vw, 18px);letter-spacing:1px;line-height: 1.5;font-weight:300;}
footer #access_group .information_area .outline .address{font-size:clamp(12px, 0.8vw, 16px);letter-spacing:1px;line-height: 1.5;font-weight:300;}

footer #access_group .information_area .schedule_wrap{width:70%;}
footer #access_group .information_area .schedule_wrap .text{width: fit-content;margin: 0 auto 0% auto;padding: 1% 10%;font-size:clamp(18px, 1.4vw, 24px);letter-spacing:1px;line-height: 1.5;font-weight:300;text-align: center;color: #3b55a9;border: 1px solid #bec8d8;}
footer #access_group .information_area .schedule_wrap .schedule table{width:100%;margin-bottom: 2%;border-collapse:collapse;color: #3b55a9;font-size:clamp(14px, 1.0vw, 18px);letter-spacing:1px;line-height: 1;font-weight:300;text-align: center;}
footer #access_group .information_area .schedule_wrap .schedule table tr{border-bottom:1px solid #bec8d8;}
footer #access_group .information_area .schedule_wrap .schedule table th{font-weight: normal;padding:4% 0 2% 0}
footer #access_group .information_area .schedule_wrap .schedule table th:first-of-type{width:22%;}
footer #access_group .information_area .schedule_wrap .schedule table th:last-of-type{width:18%;}
footer #access_group .information_area .schedule_wrap .schedule table td.hours{padding: 4% 0;font-size:clamp(16px, 1.2vw, 22px);}
footer #access_group .information_area .schedule_wrap .schedule table td.open{font-size:clamp(24px, 2.8vw, 36px);}
footer #access_group .information_area .schedule_wrap .schedule table td.break{font-size:clamp(24px, 2.2vw, 36px);}

footer #access_group .information_area .schedule_wrap .memo{width: fit-content; margin: 0 0 2% auto;padding: 0;font-size:clamp(12px, 0.8vw, 14px);letter-spacing:1px;line-height: 1.5;font-weight:300;color: #0a1e3f;}

footer #contact_group .banner_area{width: 80%;min-width: 800px;margin:0 auto;display: flex;justify-content: space-between;align-items:stretch;}

footer #contact_group .banner_area .telephone{width: 50%;margin: 0;background: white;}
footer #contact_group .banner_area .telephone a{pointer-events: none;display: block;text-decoration: none;color: #0a283f;padding: 40px 0;}
footer #contact_group .banner_area .telephone a .sub{display: block;font-size:clamp(14px, 0.5vw, 18px);letter-spacing: 2px;line-height: 2;font-weight: 400;}
footer #contact_group .banner_area .telephone a .number{position: relative;font-size:clamp(24px, 2.5vw, 40px);letter-spacing: 2px;line-height: 1;}
footer #contact_group .banner_area .telephone a .number::before{position: absolute;top:50%;right:103%;transform: translateY(-50%);font: var(--fa-font-solid);content:'\f095';font-size:clamp(22px, 2.0vw, 30px);}
	
footer #contact_group .banner_area .reservation{width: 50%;margin: 0;background: #d29165;display: flex;flex-direction: row;align-items: center}
footer #contact_group .banner_area .reservation a{flex: 1;position: relative;display: block;width: 100%;text-decoration: none;color:white;font-size:clamp(20px, 2.0vw, 25px);}
footer #contact_group .banner_area .reservation a::before{position: absolute;top:50%;left:90%;transform: translateY(-50%);font: var(--fa-font-solid);content:'\f105';font-size:clamp(14px, 1.2vw, 20px);}
footer #contact_group .banner_area .reservation a:hover{background:#3b55a9;}
*/


footer #contact_group{background:url("../img/contents_background_gray.jpg") no-repeat ;background-size: cover;background-position: 50% 50%;padding:5% 0;text-align: center;}
footer #contact_group .title_area{text-align: center;margin-bottom:3%}
footer #contact_group .title_area .small{margin:0 auto 2% auto;}

footer #contact_group .text{margin:0 auto 3% auto;padding: 0;font-size:clamp(14px, 1.2vw, 22px);letter-spacing:1px;line-height: 2;color: #0a283f;}

footer #contact_group .tel{width: 50%;min-width: 300px;margin:0 auto;background: white}
footer #contact_group .tel a{pointer-events: none;display: block;text-decoration: none;color: #0a283f;padding:4% 0;}
footer #contact_group .tel a span{display: block;}
footer #contact_group .tel a span.sub{font-size:clamp(14px, 1.2vw, 18px);letter-spacing: 1px;line-height: 2;font-weight: 400;margin-bottom: 1%}
footer #contact_group .tel a span.number{position: relative;font-size:clamp(24px, 2.5vw, 40px);letter-spacing: 2px;line-height: 1;width: fit-content;margin: 0 auto;color: #3b55a9;}
footer #contact_group .tel a span.number::before{position: absolute;top:50%;right:103%;transform: translateY(-50%);font: var(--fa-font-solid);content:'\f095';font-size:clamp(22px, 1.6vw, 30px);}

footer #site_map{background: #0f194f;padding:5% 0;}

footer #site_map .list{display: flex;column-gap: 3%;width: 80%;min-width:1000px;margin: 0 auto 5% auto;}
footer #site_map .list .unit a,
footer #site_map .list .unit span{display: block; text-decoration: none;color: #e5dfe5;font-size:clamp(14px, 0.8vw, 16px);letter-spacing: 1px;line-height: 1;margin-bottom: 20px }

footer #site_map .list .unit a.sub{position: relative;color: #afc2f2;font-size:clamp(14px, 0.8vw, 16px);letter-spacing: 1px;line-height: 1; padding-left: 20px;margin-bottom: 10px}
footer #site_map .list .unit a.sub::before{position: absolute;top:50%;left:0%;transform: translateY(-50%);content: '';width: 10px;height: 1px;background: #afc2f2;}
footer #site_map .list .unit a:hover{color:#3b55a9;}

footer #site_map .inner{display: flex;justify-content: space-between;align-items: center;width: 80%;min-width:1000px;margin: 0 auto;}
footer #site_map .inner .logo_area{display: flex;align-items: center;}
footer #site_map .inner .logo_area a:hover{opacity:0.5;}
footer #site_map .inner .logo_area img{width:250px;}
footer #site_map .inner .logo_area .sns{margin-left: 5%;display: flex;align-items: center;column-gap: 8px;}
footer #site_map .inner .logo_area .sns a{color: #e5dfe5;font-size:clamp(20px, 1.8vw, 30px);line-height: 1;transition:opacity 0.3s ease; }
footer #site_map .inner .logo_area .sns a:hover{opacity:0.6;}
footer #site_map .inner .logo_area .sns a img{width:clamp(20px, 1.8vw, 30px);vertical-align: top;}

footer #site_map .inner small{margin:0;padding: 0;display: block;color: #e5dfe5;font-size:clamp(12px, 0.6vw, 14px);letter-spacing: 1px;line-height: 1; font-weight: 300}

footer #cta_sp{display: none;}

@media (max-width: 700px) {
	footer #contact_group{padding:50px 0;}	
	footer #contact_group .text{width: 90%;}	
	footer #contact_group .tel{width: 80%;}		
}

@media (max-width: 1050px) {
	footer #contact_group .tel a{pointer-events:inherit;}
	footer #contact_group .tel a:hover{background: #3b55a9}
	footer #contact_group .tel a:hover span{color:white;}
	
	footer #site_map{padding:50px 0 120px 0;}
	footer #site_map .list{display:inherit;width: 80%;min-width: inherit;margin: 0 auto 40px auto;}
	footer #site_map .list .unit a,
	footer #site_map .list .unit span{margin-bottom:25px }	
	footer #site_map .list .unit a.sub{margin-left: 10px;margin-bottom:0px;margin-top: 20px}	
	footer #site_map .list .unit a.sub:last-of-type{margin-bottom:30px;}
	
	footer #site_map .inner{display:inherit;width: 80%;min-width: inherit;margin: 0 auto 0% auto;text-align: center}
	footer #site_map .inner .logo_area{display:inherit;}	
	footer #site_map .inner .logo_area img{max-width:300px;width:55%;min-width: 200px;}	
	footer #site_map .inner .logo_area .sns{margin: 30px 0 30px 0;justify-content: center}	
	footer #site_map .inner .logo_area .sns a{font-size:30px !important;}
	footer #site_map .inner .logo_area .sns a img{width:30px;min-width:0;max-width:none;}
	
	footer #cta_sp{display:inherit;position: fixed;bottom: 0;left: 0;width: 100%;padding: 14px 0;background: rgba(15,25,79,0.2);z-index: 99}
	footer #cta_sp a{display:block;width: 96%;margin: 0 auto;padding: 16px 0;color: white;letter-spacing: 1px;text-decoration: none;text-align: center;background: #3b55a9;line-height: 1;border-radius: 5px}
	footer #cta_sp a span{display:block;}
	footer #cta_sp a span:first-of-type{font-size: 13px;margin-bottom: 5px;}
	footer #cta_sp a span:last-of-type{font-size: 22px;position: relative;width: fit-content;margin: 0 auto;padding-left: 20px}
	footer #cta_sp a span:last-of-type::before{content:'';position: absolute;top:50%;left:0%;transform: translateY(-50%);font: var(--fa-font-solid);content:'\f095';font-size:16px;}
	footer #cta_sp a:hover{background: #243555;}
}


/*ヘッダー*/
header{position:fixed;top:0;left:0;width:100%;box-sizing:border-box;z-index:100;color:#1a1a1a;font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;background:rgba(255,255,255,0);transition:background-color 0.4s ease, height 0.4s ease;}
header.scroll-nav,header.nav_open{background:rgba(255,255,255,1);}
header a{text-decoration:none;color:inherit;}
header button{margin:0;padding:0;border:0;background:none;font-family:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-appearance:none;appearance:none;}
header a:focus-visible,header button:focus-visible{outline:2px solid #3652BF;outline-offset:2px;}

/*ロゴ*/
header #logo{margin:0;padding:0;line-height:0;}
header #logo a{display:block;transition:opacity 0.3s ease;}
header #logo a:hover{opacity:0.5;}
header #logo img{width:100%;vertical-align:top;}

/*メインナビのホバー色*/
#nav_main > div > a,#nav_main > div > button{transition:color 0.3s ease;}
#nav_main > div > a:hover,#nav_main > div > button:hover{color:#3b55a9;}

/*電話ボタン*/
header .tel{display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:#3652BF;color:#fff;border-radius:5px;transition:background-color 0.3s ease;font-family: "hiragino-mincho-pron", sans-serif;font-weight: 100;font-style: normal;}
header .tel i{font-size:0.6em;margin-right:5px;}

/*SNSアイコン*/
header .sns{color:#3652BF;line-height:1;transition:opacity 0.3s ease;}
header .sns:hover{opacity:0.6;}
header .sns img{vertical-align: top;}

@media (min-width:1051px) {
	/*ヘッダー全体　通常時130px／スクロール時90px*/
	header{display:flex;align-items:center;height:130px;padding:0 4%;}
	header.scroll-nav{height:90px;}

	header #logo{width:20.3%;min-width:205px;max-width:274px;}

	.button{display:none;}

	#nav_menu{display:flex;align-items:center;height:100%;margin-left:auto;}

	/*メインナビ*/
	#nav_main{display:flex;height:100%;}
	#nav_main > div{position:relative;display:flex;align-items:center;height:100%;margin:0 1.2vw;}
	#nav_main > div > a,#nav_main > div > button{font-size:14px;letter-spacing:0.12em;white-space:nowrap;}

	/*「当院について」の▼*/
	.sp_pull_down > button::after{content:"";display:inline-block;vertical-align:middle;margin-left:6px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #3652BF;}

	/*サブメニュー（ホバー／フォーカスで表示）*/
	.secondary_group{position:absolute;top:90px;left:50%;width:250px;background:#5578D2;border-radius:5px;overflow:hidden;opacity:0;visibility:hidden;transform:translate(-50%,-12px);transition:opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease;}
	.sp_pull_down:hover .secondary_group,.sp_pull_down:focus-within .secondary_group{opacity:1;visibility:visible;transform:translate(-50%,0);}
	.secondary_group a{display:flex;align-items:center;height:60px;box-sizing:border-box;padding:0 27px 0 32px;color:#fff;font-size:14px;letter-spacing:0.12em;border-top:1px solid #3656AD;transition:background-color 0.3s ease;}
	.secondary_group a:first-child{border-top:none;}
	.secondary_group a:hover{background:#4667CB;color:#fff;}
	.secondary_group a::after{content:"";width:6px;height:6px;margin-left:auto;flex-shrink:0;border-top:2px solid #142A78;border-right:2px solid #142A78;transform:rotate(45deg);}

	/*SNS・電話　※電話番号はJSでリンクを無効化している*/
	#nav_contact{display:flex;align-items:center;margin-left:2vw;}
	header .sns{font-size:31px;margin-right:12px;}
	header .sns img{width:31px;}
	header .tel{width:180px;height:50px;margin-left:6px;font-size:20px;}

	/*SPのみの要素*/
	#nav_sub, #nav_copy{display:none;}
}

@media (max-width: 1050px) {
	/*ヘッダー全体　高さは常に90px（上下移動なし）*/
	header{display:flex;align-items:center;height:90px;padding:0 5% 0 4.7%;}

	header #logo{width:44.3vw;max-width:219px;position:relative;z-index:2;}

	/*ハンバーガーボタン（3本線⇔バツ）
	　当たり判定はヘッダーと同じ90pxの高さを取り、線は上下中央に配置する
	　線の幅・間隔はタブレット基準。スマホ（700px以下）で上書きする*/
	.button{display:block;position:relative;z-index:2;margin-left:auto;width:80px;height:90px;}
	.button span{position:absolute;left:0;width:100%;height:2px;background:#3652BF;transition:transform 0.4s ease, opacity 0.2s ease;}
	.button span:nth-child(1){top:calc(50% - 12px);}
	.button span:nth-child(2){top:calc(50% - 1px);}
	.button span:nth-child(3){top:calc(50% + 10px);}
	.button.open_navigation span:nth-child(1){transform:translateY(11px) rotate(-45deg);}
	.button.open_navigation span:nth-child(2){opacity:0;}
	.button.open_navigation span:nth-child(3){transform:translateY(-11px) rotate(45deg);}

	/*ナビ全体（ドロワー・フェードで開閉）
	　スクロール領域をヘッダーの下(90px)から始めることで、
	　中をスクロールしてもロゴ・ハンバーガーに文字が重ならないようにする*/
	#nav_menu{position:fixed;top:90px;left:0;z-index:1;width:100%;height:calc(100% - 90px);overflow-y:auto;background:#fff;opacity:0;visibility:hidden;transition:opacity 0.4s ease, visibility 0.4s ease;}
	#nav_menu.open_navigation{opacity:1;visibility:visible;}
	body.fixed{position:fixed;left:0;width:100%;}

	/*メインナビ（グレーの塊）*/
	#nav_main{background:#F2F2F2;}
	#nav_main > div{position:relative;}
	#nav_main > div + div{border-top:1px solid #CDCDCD;}
	#nav_main > div > a,#nav_main > div > button{display:flex;align-items:center;width:100%;height:76.75px;box-sizing:border-box;padding:0 8.67%;font-size:19px;letter-spacing:0.12em;}

	/*行末の「＞」*/
	#nav_main > div > a::after,.secondary_group a::after{content:"";width:8px;height:8px;margin-left:auto;flex-shrink:0;border-top:2px solid #1a1a1a;border-right:2px solid #1a1a1a;transform:rotate(45deg);}

	/*「当院について」の＋／−*/
	.sp_pull_down > button{position:relative;}
	.sp_pull_down > button::before,.sp_pull_down > button::after{content:"";position:absolute;top:50%;background:#1a1a1a;transition:opacity 0.3s ease;}
	.sp_pull_down > button::before{right:8.67%;width:14px;height:2px;margin-top:-1px;}
	.sp_pull_down > button::after{right:calc(8.67% + 6px);width:2px;height:14px;margin-top:-7px;}
	.sp_pull_down.active > button::after{opacity:0;}

	/*サブメニュー（タップでスライド開閉）*/
	.secondary_group{display:none;padding-bottom:32px;}
	.secondary_group a{display:flex;align-items:center;height:65px;box-sizing:border-box;padding:0 8.67% 0 12.17%;font-size:19px;letter-spacing:0.12em;transition:color 0.3s ease;}
	.secondary_group a:hover{color:#3b55a9;}
	.secondary_group a::before{content:"";width:14px;height:2px;margin-right:14px;flex-shrink:0;background:#1a1a1a;}

	/*サブナビ*/
	#nav_sub{padding-top:25px;}
	#nav_sub a{display:flex;align-items:center;height:53.5px;box-sizing:border-box;padding:0 8.67%;font-size:17px;letter-spacing:0.12em;color:#3652BF;transition:color 0.3s ease;}
	#nav_sub a:hover{color:#0f194f;}
	#nav_sub a::before{content:"";width:11px;height:11px;margin-right:14px;flex-shrink:0;border-radius:50%;background:#3652BF;transition:background-color 0.3s ease;}
	#nav_sub a:hover::before{background:#0f194f;}

	/*SNS・電話*/
	#nav_contact{padding-top:30px;text-align:center;font-size:0;}
	header .sns{display:inline-block;vertical-align:middle;font-size:32px;margin:0 8px;}
	header .sns img{width:32px;}
	header .tel{width:83.3%;max-width:500px;height:71px;margin:28px auto 0;font-size:28px;}
	header .tel:hover{background:#d29165;}

	/*コピーライト*/
	#nav_copy{margin:28px 0 50px;text-align:center;font-size:13px;color:#9AA6D4;}
}

@media (max-width: 700px) {
	/*ハンバーガーボタン　線を短く・間隔をさらに狭く*/
	.button{width:60px;}
	.button span:nth-child(1){top:calc(50% - 10px);}
	.button span:nth-child(3){top:calc(50% + 8px);}
	.button.open_navigation span:nth-child(1){transform:translateY(9px) rotate(-45deg);}
	.button.open_navigation span:nth-child(3){transform:translateY(-9px) rotate(45deg);}

	/*メニューの文字サイズを約2割小さく*/
	#nav_main > div > a,#nav_main > div > button{font-size:15px;}
	.secondary_group a{font-size:15px;}
	#nav_sub a{font-size:14px;}
}