﻿@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=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Kosugi+Maru&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");


/*========================
２カラムレイアウト
========================*/
#column {
  width:100%;
  height: auto;
  margin: 0 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:stretch;
}
#column .navbar {
  width: 360px;
  height: 100%;
  position: sticky;
  top: 0;
  margin: 0 auto;
  padding:0;
  z-index: 1;
}
#column .main {
  height: auto;
  box-sizing: border-box;
  flex: 1;
  margin:0 auto;
  padding: 64px 32px 0;
}
@media screen and (max-width: 1240px) {
#column .navbar {
  width:320px;
  }
}
@media screen and (max-width: 960px) {
#column {
  flex-direction: column;
  display:block;
  }
#column .navbar {
  width:100%;

  }
#column .main {
  padding: 48px 32px 0;
  }
}
@media screen and (max-width: 640px) {
#column .main {
  padding: 48px 24px 0;
  }
}
@media screen and (max-width: 480px) {
#column .main {
  padding: 38px 18px 0;
  }
}

/*========================
ナビゲーション枠 (右カラム)
========================*/
nav {
  width: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
  position: relative;
  overflow-y: auto;
}
nav::-webkit-scrollbar {
  background: #5F70A9;
  width: 5px;
  height: 5px;
}
nav::-webkit-scrollbar-thumb {
  background-color: #B4BBD6;
  border-radius: 9999px;
  -webkit-border-radius: 9999px;
  -moz-border-radius: 9999px;
}
nav h1 img {
  width: 100%;
  max-width: 300px;
  margin: 36px 0;
}
@media screen and (max-width: 1240px) {
nav {
  padding: 0 12px;
  }
nav h1 img {
  max-width: 240px;
  margin: 24px 0;
  }
}
@media screen and (max-width: 960px) {
nav {
  padding: 0;
  }
nav h1 {
  display: none;
  }
}

/*リンクボタン*/
.navbtn {
  width: 100%;
  max-width: 320px;
  height: auto;
  margin: 0 auto;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  justify-content: flex-start;
  align-items:stretch;
  flex-wrap: wrap;
}
.navbtn li{
  width: 50%;
  max-width:50%;
  width: calc(100% / 2);
  background-color: #122A88;
  padding: 1em 0.5em;
  text-align: center;
  border-bottom: 1px solid #EFF2F8;
  border-left: 1px solid #EFF2F8;
}
.navbtn li a{
	display: block;
  color: #FFF;
  text-align: center;
	text-decoration: none;
  line-height: 1;
  white-space: nowrap;
  font-weight: 500;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 1240px) {
.navbtn {
  font-size: 0.9em;
  }
}
@media screen and (max-width: 960px) {
.navbtn {
  max-width: 100%;
  font-size: 0.95em;
  }
.navbtn li{
  width: 25%;
  max-width:25%;
  width: calc(100% / 4);
  padding: 0.9em 0.3em;
  }
}
@media screen and (max-width: 640px) {
.navbtn {
  font-size: 0.85em;
  }
.navbtn li{
  padding: 0.9em 0.2em;
  }
.navbtn li a{
  letter-spacing: 0.05em;
  }
}

/*-------------------------
クリニック概要
--------------------------*/
.navinfo {
  margin-top: 24px;
  font-size: 0.9em;
  line-height: 1.6;
  padding-bottom: 24px;
}
.navinfo h3{
  font-family: "Kosugi Maru", sans-serif;
  font-size: 1.2em;
  color: #222;
  white-space: nowrap;
  margin-bottom: 12px;
}
@media screen and (max-width: 960px) {
.navinfo {
  display: none;
  }
}

/*リンクボタン*/
.navinfobtn {
	display: inline-block;
	color: #122A88;
	background-color: #FFF;
  border: 1px solid #122A88;
	text-decoration: none;
  border-radius: 9999px;
  -webkit-border-radius: 9999px;
  -moz-border-radius: 9999px;
	padding: 0.6em 2em 0.6em 1em;
	transition: 0.3s;
	position: relative;
  line-height: 1;
  white-space: nowrap;
  font-size: 0.9em;
  font-weight: 600;
  letter-spacing: 0.08em;
  margin: 0 0.3em 0.3em 0;
}
.navinfobtn:after {
	position: absolute;
  top: 50%;
  right: 5px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  font-size: 1.4em;
  font-family:"Material Symbols Rounded";
	content: "\e5c8"; /*矢印*/
  font-variation-settings:
  'FILL' 0,
  'wght' 300
}


/*========================
フッター
========================*/
footer {
  width: 100%;
  padding: 0;
  text-align: center;
  margin: 48px 0 24px;
  line-height: 1.6;
  font-size: 0.9em;
}
footer h1 img{
  width: 100%;
  max-width: 260px;
  margin-bottom: 18px;
}
footer h3{
  font-family: "Kosugi Maru", sans-serif;
  font-size: 1.1em;
  color: #222;
  white-space: nowrap;
  line-height: 1;
  margin-bottom: 12px;
}
footer .copyright {
  color: #AAA;
  font-size: 0.85em;
  font-family: "Roboto", sans-serif;
  font-weight: 300;
  margin-top: 18px;
  white-space: nowrap;
}
@media screen and (max-width: 960px) {
footer h1 img{
  max-width: 224px;
  }
}
@media screen and (max-width: 640px) {
footer {
  margin: 32px 0 18px;
  padding-bottom: 64px;
  }
}
@media screen and (max-width: 480px) {
footer h1 img{
  max-width: 184px;
  }
}


/*========================
固定フッター (スマホでのみ表示)
========================*/
.footfixbtn {
  display: none;
}
@media screen and (max-width: 640px) {
.footfixbtn {
  position: fixed;
  bottom: 0;
  left: 0;
  width:100%;
  height: 64px;
  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:stretch;
  }
.footfixbtn a{
  height: 100%;
  display: block;
  text-decoration: none;
  }
.footfixbtn li:first-child{
  width: 75%;
  height: 100%;
  background: #122A88;
  text-align: center;
  padding: 9px 0 0;
  }
.footfixbtn li:first-child p{
  font-size: 0.8em;
  line-height: 1;
  white-space: nowrap;
  margin-bottom: 6px;
  letter-spacing: 0.1em;
  color: #FFF;
  font-weight: 400;
  }
.footfixbtn li:last-child{
  width: 25%;
  height: 100%;
  background: #B4BBD6;
  text-align: center;
  }

/*電話リンク*/
.fb_tel {
  position:relative;
  display: inline-block;
  font-size: 1.7em;
  line-height: 1;
  padding: 0;
  color: #FFF;
  white-space: nowrap;
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  margin: 0 auto;
  letter-spacing: 0.06em;
  }
.fb_tel:before{
  content:"";
  display:inline-block;
  width:0.85em;
  height:0.85em;
  background:url(../img/tel_white.png) no-repeat;
  background-size:contain;
  vertical-align: middle;
  margin-bottom: 5px;
  }

/*ジャンプトップ*/
.fb_jump {
	display: block;
	color: #122A88 !important;
	text-decoration: none;
	position: relative;
  padding: 3.1em 0 0;
  line-height: 1;
  white-space: nowrap;
  font-size: 0.85em;
  font-weight: 600;
  letter-spacing: 0.08em;
  margin: 0 auto;
  text-align: center;
  }
.fb_jump:before {
	display: block;
	position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  font-size: 6em;
  line-height: 0.6;
  font-family:"Material Symbols Rounded";
	content: "\e316"; /*矢印*/
  font-variation-settings:
  'FILL' 0,
  'wght' 200
  }
}


/*========================
汎用パーツ
========================*/
/*-------------------------
白枠
--------------------------*/
section {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 42px 48px 36px;
  background-color: #FFF;
  border-radius: 18px;
  -webkit-border-radius: 18px;
  -moz-border-radius: 18px;
  box-shadow: 0px 0px 12px 0px rgba(0,0,0,0.3);
}
@media screen and (max-width: 1240px) {
section {
  padding: 32px 42px 24px;
  }
}
@media screen and (max-width: 960px) {
section {
  padding: 42px 48px 36px;
  }
}
@media screen and (max-width: 767px) {
section {
  padding: 32px 32px 24px;
  }
}
@media screen and (max-width: 640px) {
section {
  border-radius: 12px;
  -webkit-border-radius: 12px;
  -moz-border-radius: 12px;
  }
}
@media screen and (max-width: 480px) {
section {
  padding: 32px 24px 24px;
  }
}

/*-------------------------
見出し
--------------------------*/
/*各セクションタイトル*/
section h2{
  display: block;
  font-size: 2em;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: 0.06em;
  color: #222;
  margin-bottom: 42px;
}
section h2 span{
  font-size: 0.55em;
  color: #A7A7B7;
  display: block;
  font-weight: 400;
  letter-spacing: 0.15em;
  margin-bottom: 0.6em;
}
@media screen and (max-width: 767px) {
section h2{
  font-size: 1.8em;
  }
}
@media screen and (max-width: 640px) {
section h2{
  margin-bottom: 32px;
  }
}
@media screen and (max-width: 480px) {
section h2{
  font-size: 1.5em;
  margin-bottom: 32px;
  }
}

/*サブタイトル (文頭ブルー縦線)*/
section h3{
  width: 100%;
  padding: 0.3em 0.8em 0.2em 0.8em;
  margin: 0 auto;
  font-weight: 600;
  font-size: 1.2em;
  line-height: 1.5;
  margin: 42px 0 18px;
  color: #222;
  border-left: 6px solid #122A88;
}
@media screen and (max-width: 480px) {
section h3{
  padding: 0.3em 0.6em 0.2em 0.6em;
  font-size: 1.1em;
  margin: 32px 0 15px;
  border-left: 6px solid #122A88;
  }
}

/*-------------------------
汎用テーブル
--------------------------*/
.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9em;
}
.table th{
  font-weight: normal;
  line-height: 100%;
  text-align: left;
  padding: 0.5em 0.8em;
  line-height: 1.65;
  border: 1px solid #999;
  background-color: #F3F3F3;
}
.table td{
  font-weight: normal;
  line-height: 100%;
  text-align: right;
  padding: 0.5em 0.8em;
  line-height: 1.65;
  border: 1px solid #999;
}
@media screen and (max-width: 480px) {
.table {
  font-size: 0.9em;
  }
.table th{
  padding: 0.3em 0.5em;
  }
.table td{
  padding: 0.3em 0.5em;
  }
}

/*-------------------------
アイコン付き電話リンクテキスト
--------------------------*/
/*ブルー*/
.tel_blue {
  position:relative;
  display: inline-block;
  font-size: 1.7em;
  line-height: 1;
  padding: 0 0 0 1em;
  color: #122A88;
  white-space: nowrap;
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  margin: 10px 0;
  letter-spacing: 0.06em;
}
.tel_blue: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/tel_blue.png) no-repeat;
  background-size:contain;
}

/*-------------------------
ボタン・テキストリンク
--------------------------*/
/*文末矢印アイコン付きボタン*/
.btn {
	display: inline-block;
	color: #FFF;
	background-color: #48B0AE;
	text-decoration: none;
	padding: 0.8em 2.4em 0.8em 1.2em;
	transition: 0.3s;
	position: relative;
  line-height: 1;
  white-space: nowrap;
  font-size: 0.9em;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin: 0 0.3em 0.3em 0;
}
.btn:after {
	position: absolute;
  top: 50%;
  right: 6px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  font-size: 1.4em;
  font-family:"Material Symbols Rounded";
	content: "\e5c8"; /*矢印*/
  font-variation-settings:
  'FILL' 0,
  'wght' 300
}
.btn:hover{
	background-color: #5878B8;
	transition: 0.3s;
}

/*-------------------------
ページ上部へジャンプ
--------------------------*/
#jumptop{
  position:fixed;
  right: 32px;
  bottom:32px;
  z-index: 2;
}
.jumpbtn {
  width:5em;
  height:5em;
  cursor:pointer;
  border-radius: 9999px;
  -webkit-border-radius: 9999px;
  -moz-border-radius: 9999px;
  cursor:pointer;
  background:#122A88;
  box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.4);
  position: relative;
}
.jumpbtn:before {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  display: block;
  font-size: 3em;
  color: #FFF;
  font-family:"Material Symbols Rounded";
	content: "\e5d8"; /*上向き矢印*/
  font-variation-settings:
  'FILL' 0,
  'wght' 400
}
@media(max-width:1240px){
#jumptop{
  right: 24px;
  bottom:24px;
  }
.jumpbtn {
  width: 4.2em;
  height: 4.2em;
  }
.jumpbtn:before {
  font-size: 2.4em;
  }
}
@media(max-width:640px){
.jumpbtn {
  display: none;
  }
}


/*========================
予備パーツ
========================*/
/*-------------------------
横並びflexbox
--------------------------*/
/* 幅可変横並び*/
.column {
  width:100%;
  margin: auto;
  padding: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:flex-start;
}
.column li{
  margin:0 15px 0 0;
}
.column li:last-child{
  margin:0 0 0 0;
}

/* 画像320px ＋ テキスト*/
.column320 {
  width:100%;
  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;
}
.column320_img {
  max-width: 320px;
  margin: 0 30px 0 0;
}
.column320_text {
  flex: 1;
}
@media screen and (max-width: 1000px) {
.column320_img {
  max-width: 240px;
  margin: 0 20px 0 0;
  }
}
@media screen and (max-width: 767px) {
.column320 {
  flex-direction: column;
  display:block;
  }
.column320_img {
  max-width: 100%;
  margin: 0 0 15px 0;
  text-align: center;
  }
}

/* 均等2列(767px以下で縦列切り替え) */
.col2 {
  width:100%;
  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;
}
.col2 li{
  width: 50%;
  max-width:50%;
  width: calc(100% / 2);
  margin:0 30px 0 0;
}
.col2 li:last-child{
  margin:0 0 0 0;
}
@media screen and (max-width: 1000px) {
.col2 li{
  margin:0 20px 0 0;
  }
}
@media screen and (max-width: 767px) {
.col2 {
  flex-direction: column;
  display:block;
  }
.col2 li {
  width:100%;
  max-width:100%;
  margin:0 0 20px 0;
  }
.col2 li:last-child{
  margin:0 0 0 0;
  }
}

