@charset "utf-8";

/* ==========================================================================
   page-promise
   ========================================================================== */
body#page__promise{
  background: #F8F8F8;
}

#page__promise .contents__wrap{
  background: #FFF;
  padding: 0 0 0 0;
}
@media (min-width: 415px){
#page__promise .contents__wrap{
  padding: 120px 0 0 0;
}
}
@media (min-width: 960px){
#page__promise .contents__wrap{
  padding: 200px 0 0 0;
}
}
@media (min-width: 2000px){
#page__promise .contents__wrap{
  padding: 320px 0 0 0;
}
}

#page__promise .nav__wrap ul.nav li a{
  color: #FFF;
  fill: #FFF;
}

#page__promise .nav__wrap ul.nav:hover li a{
	color: #a3a7a8;
  fill: #a3a7a8;
}

#page__promise .nav__wrap ul.nav li.menu a:hover{
	color: #FFF;
  fill: #FFF;
}

#page__promise .nav__wrap ul.nav li a:hover{
	color: #FFF;
  fill: #FFF;
}

#page__promise .logo a svg{
	fill: #fff;
  transition: all 0.8s ease;
}

#page__promise .logo a svg.opacity{
	fill: #5B767B;
}

#page__promise header ul.g_nav li p,
#page__promise header ul.g_nav li a{
  color: #FFF;
}

#page__promise.page #message{
	opacity: 1;
  background: #FFF;
}

#page__promise #promise__mv{
	width: 100vw;
  display: flex;
	align-items: center;
	justify-content: center;
  background-size: cover;
  background-position: center 30%;
	background-repeat: no-repeat;
}
@media (min-width: 415px){
#page__promise #promise__mv{
  background-size: cover;
}
}

#page__promise .promise__title__shoulder{
  color: #FFF;
  font-size: 2.2rem;
  font-size: clamp(1.4rem, 1.0vw, 2.3rem);
  font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1em;
	text-align: center;
  padding-left: 2%;
}
@media (min-width: 415px){
#page__promise .promise__title__shoulder{
	letter-spacing: 0.4em;
  padding-left: 2.5%;
}
}

#page__promise .promise__title{
  color: #FFF;
  font-size: 17.8rem;
  font-size: clamp(5.0rem, 8.8vw, 22.2rem);
	font-family: 'Montserrat', sans-serif;
  font-weight: 200;
	line-height: 1em;
}

#page__promise #promise__mv .title__block,
#page__promise #strong .title__block{
	width: 100%;
	height: auto;
	display: flex;
	justify-content: center;
  position: relative;
  z-index: 0;
}

#page__promise #promise__mv .title__wrap,
#page__promise #strong .title__wrap{
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

#page__promise #promise__mv .promise__title,
#page__promise #strong .section__title{
	text-align: center;
	margin-top: 10px;
}
@media (min-width: 415px){
#page__promise #promise__mv .promise__title,
#page__promise #strong .section__title{
	margin-top: 16px;
}
}
@media (min-width: 2000px){
#page__promise #promise__mv .promise__title,
#page__promise #strong .section__title{
	margin-top: 16px;
}
}

/* promise__message ============================== */
#page__promise #message{
  z-index: 0;
  position: relative;
  overflow: hidden;
  z-index: 4;
}
@media (min-width: 960px){
#page__promise #message{
	padding: 0 0 900px 0;
}
}
@media (min-width: 2000px){
#page__promise #message{
	padding: 0 0 780px 0;
}
}

#page__promise #message::after{
	content: "";
	width: 100vw;
	height: 120px;
  background-color: #F8F8F8;
	position: absolute;
  bottom: 0;
  left: 0;
	z-index: -1;
}
@media (min-width: 415px){
#page__promise #message::after{
	content: "";
	width: 100vw;
	height: 210px;
  background-color: #F8F8F8;
	position: absolute;
  bottom: 0;
  left: 0;
	z-index: -1;
}
}
@media (min-width: 960px){
#page__promise #message::after{
	height: 680px;
}
}
@media (min-width: 1500px){
#page__promise #message::after{
	height: 410px;
}
}
@media (min-width: 2000px){
#page__promise #message::after{
	height: 470px;
}
}

#page__promise #message .text_block{
	margin: 50px 0 0 0;
	z-index: 10;
}
@media (min-width: 415px){
#page__promise #message .text_block{
  margin: 0 0 600px 12vw;
}
}
@media (min-width: 960px){
#page__promise #message .text_block{
	margin: 0 0 850px 27.4vw;
  margin: 0 0 0 27.4vw;
}
}
@media (min-width: 2000px){
#page__promise #message .text_block{
	margin: 0 0 780px 23%;
  margin: 0 0 0 23%;
}
}

#page__promise #message .img01{
	width: 76%;
	height: auto;
	padding: 30px 0 10px 24%;
}
@media (min-width: 415px){
#page__promise #message .img01{
	width: 50%;
	height: auto;
	position: absolute;
	top: 200px;
	right: 0;
	z-index: -1;
}
}
@media (min-width: 960px){
#page__promise #message .img01{
	width: 50%;
	height: auto;
	position: absolute;
	top: 200px;
	right: 0;
}
}
@media (min-width: 1550px){
#page__promise #message .img01{
	top: 270px;
}
}
@media (min-width: 2000px){
#page__promise #message .img01{
	top: 350px;
}
}

#page__promise #message .img02{
	width: 54%;
	height: auto;
	padding: 70px 0 70px 0;
	float: right;
}
@media (min-width: 415px){
#page__promise #message .img02{
	width: 20.8%;
	height: auto;
	position: absolute;
	top: 780px;
	left: 22.4%;
	z-index: -1;
}
}
@media (min-width: 960px){
#page__promise #message .img02{
	width: 20.8%;
	height: auto;
	top: 1180px;
	left: 22.4%;
}
}
@media (min-width: 2000px){
#page__promise #message .img02{
	top: 1200px;
}
}

#page__promise #message .img03{
	width: 30%;
	height: auto;
	padding: 30px 0 0 8vw;
}
@media (min-width: 415px){
#page__promise #message .img03{
	width: 18.2%;
	height: auto;
	position: absolute;
	top: 540px;
	left: 0;
}
}
@media (min-width: 960px){
#page__promise #message .img03{
	width: 18.2%;
	height: auto;
	top: 640px;
	left: 0;
	z-index: -1;
}
}
@media (min-width: 2000px){
#page__promise #message .img03{
	top: 820px;
}
}

/* promise__promise ============================== */
#page__promise #promise{
  background: #F8F8F8;
  position: relative;
  overflow: hidden;
  z-index: 3;
}
@media (min-width: 415px){
#page__promise #promise{
  overflow: visible;
}
}

#page__promise #promise .text_block{
	margin: 0 0 0 0;
}
@media (min-width: 415px){
#page__promise #promise .text_block{
	margin: 0 0 0 20vw;
}
}
@media (min-width: 960px){
#page__promise #promise .text_block{
  margin: 0 0 0 44%;
}
}

#page__promise #promise .text{
  margin: 0;
	padding: 0 0 0 0;
	z-index: 10;
}
@media (min-width: 415px){
#page__promise #promise .text{
	padding: 0 0 380px 0;
}
}
@media (min-width: 960px){
#page__promise #promise .text{
	padding: 0 0 380px 0;
}
}
@media (min-width: 2000px){
#page__promise #promise .text{
	margin: 0;
  padding: 0 0 380px 0;
}
}

#page__promise #promise .img04{
	width: 64%;
	height: auto;
	padding: 30px 0 15px 0;
}
@media (min-width: 415px){
#page__promise #promise .img04{
	width: 32%;
	height: auto;
	position: absolute;
	top: 350px;
	left: 15.6%;
	z-index: -1;
}
}
@media (min-width: 960px){
#page__promise #promise .img04{
	top: 270px;
}
}
@media (min-width: 2000px){
#page__promise #promise .img04{
	top: 380px;
}
}

#page__promise #promise .img06{
	width: 32%;
	height: auto;
	float: right;
	padding: 0 8vw 60px 0;
}
@media (min-width: 415px){
#page__promise #promise .img06{
	width: 14.5%;
	height: auto;
	position: absolute;
	top: 400px;
	right: 9.0%;
	z-index: -1;
}
}
@media (min-width: 960px){
#page__promise #promise .img06{
	top: 680px;
}
}
@media (min-width: 2000px){
#page__promise #promise .img06{
	top: 780px;
}
}

/* promise__strong ============================== */
#page__promise #strong{
  background: #FFF;
}

#page__promise #strong .title__block::after{
  content: "";
	width: 100vw;
	height: 60%;
  background-color: #F8F8F8;
	position: absolute;
  top: 0;
  left: 0;
	z-index: -1;
}

#strong .section__title__shoulder{
	padding-left: 1.8%;
}
@media (min-width: 415px){
#strong .section__title__shoulder{
	padding-left: 1.8%;
}
}

#strong .wrap{
  width: 100%;
  padding: 0 8vw;
  margin: 0 auto;
  box-sizing: border-box;
  position: relative;
}
@media (min-width: 960px){
#strong .wrap{
	max-width: calc(1000px + 12vw + 12vw);
  padding: 0 12vw;
}
}

#page__promise #strong .text_block li{
  margin-top: 50px;
	text-align: center;
}
@media (min-width: 415px){
#page__promise #strong .text_block li{
  margin-top: 110px;
	text-align: center;
}
}

#page__promise #strong .text_block li:first-child{
  margin-top: 40px;
}
@media (min-width: 415px){
#page__promise #strong .text_block li:first-child{
  margin-top: 140px;
}
}

#page__promise #strong .text_block .no{
  color: #B0CDD3;
  font-size: 9.0rem;
  font-size: clamp(5.0rem, 6vw, 9.8rem);
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-style: italic;
  text-align: center;
  line-height: 1em;
  margin-left: -10px;
}

#page__promise #strong .title__line{
  width: 100%;
  height: 1px;
  background-color: #D0DEE0;
  margin: 16px 0 40px 0;
  position: relative;
}
@media (min-width: 415px){
#page__promise #strong .title__line{
  margin: 40px 0 80px 0;
}
}

#page__promise #strong .title__line::after{
  content: "";
	width: 10px;
	height: 10px;
	background: #2A5D69;
  border-radius: 50%;
	position: absolute;
  top: 0;
  left: 50%;
	margin: -4.5px 0 0 -5px;
}

#page__promise #strong .text_block .title{
  font-size: 3.0rem;
  font-size: clamp(1.8rem, 2.6vw, 3.2rem);
  font-weight: 500;
	line-height: 1.7em;
  margin: 0 0 20px 0;
}
@media (min-width: 415px){
#page__promise #strong .text_block .title{
  margin: 0 0 35px 0;
}
}

#page__promise #strong .text_block .text p{
  margin-bottom: 0;
}


/* ==========================================================================
   page__case
   ========================================================================== */
#page__case .page__title{
  margin: 0 0 0 -0.4vw;
}

#case .wrap,
#voice .wrap,
#flow .wrap,
#performance .wrap,
#privacy .wrap{
  width: 100%;
  padding: 0 8vw;
  margin: 0 auto;
  box-sizing: border-box;
  position: relative;
}
@media (min-width: 960px){
#case .wrap,
#voice .wrap,
#flow .wrap,
#performance .wrap,
#privacy .wrap{
	max-width: calc(1200px + 12vw + 12vw);
  padding: 0 12vw;
}
}

#case .wrap ul,
#voice .wrap ul,
#flow .wrap ul{
  display: flex;
	flex-direction: column;
	align-items: center;
  border-bottom: 1px solid #D0DEE0;
}

#case .wrap ul.list__2,
#voice .wrap ul.list__2{
  padding-top: 9%;
}

#case .wrap .note{
  font-size: 1.5rem;
  font-size: clamp(1.2rem, 0.7vw, 1.5rem);
  line-height: 1.6em;
  font-weight: 300;
  margin-top: 3.5%;
}

#case .wrap .note a{
  font-weight: 300;
  position: relative;
}

@media (min-width: 415px){
#case .wrap .note a::after{
  content: "";
  width: 100%;
	height: 1px;
  background-color: #D0DEE0;
  position: absolute;
  bottom: -2px;
  left: 0;
  transition: 0.2s ease-in-out;
}
}

#case .wrap .note a:hover::after{
  background-color: #2A5D69;
}

#case .wrap ul .case__title,
#voice .wrap ul .case__title{
  font-size: 3.0rem;
  font-size: clamp(2.0rem, 2.6vw, 3.2rem);
	font-family: 'Montserrat', sans-serif;
  line-height: 1em;
  font-weight: 500;
  text-align: center;
  display: inline-block;
  margin-bottom: 6%;
  padding: 1.6% 0 0.4% 0;
  border-bottom: 1px solid #2A5D69;
}
@media (min-width: 415px){
#case .wrap ul .case__title,
#voice .wrap ul .case__title{
  margin-bottom: 4.8%;
  padding: 1.6% 0 0.4% 0;
}
}

#case .wrap ul li{
  width: 100%;
  display: flex;
	flex-direction: column;
	align-items: center;
  justify-content: center;
  border-top: 1px solid #D0DEE0;
  padding: 12% 0 10% 0;
}
@media (min-width: 415px){
#case .wrap ul li{
	flex-direction: row;
	align-items: center;
  justify-content: space-between;
  padding: 5% 0 2.8% 0;
}
}

#case .wrap ul li .text__block .age{
  font-size: 3.0rem;
  font-size: clamp(1.8rem, 2.6vw, 3.2rem);
  text-align: center;
}
@media (min-width: 415px){
#case .wrap ul li .text__block .age{
  text-align: left;
  margin: -12% 0 0 0;
}
}

#case .wrap ul li .text__block .period{
  font-size: 2.0rem;
  font-size: clamp(1.6rem, 0.95vw, 2.0rem);
  margin: 5% 0 26% 0;
}
@media (min-width: 415px){
#case .wrap ul li .text__block .period{
  font-size: 2.0rem;
  font-size: clamp(1.6rem, 0.95vw, 2.0rem);
  margin: 8% 0 0 0;
}
}

#case .wrap ul li .img__block{
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
@media (min-width: 415px){
#case .wrap ul li .img__block{
  width: 65%;
}
}

#case .wrap ul li .img__block .block{
  width: 48%;
}
@media (min-width: 415px){
#case .wrap ul li .img__block .block{
  width: 45%;
}
}

#case .wrap ul li .img__block .block p{
  font-size: clamp(1.4rem, 0.95vw, 2.0rem);
  text-align: center;
  padding-top: 4%;
}

#voice{
  margin-top: 18%;
}
@media (min-width: 415px){
#voice{
  margin-top: 12%;
}
}
@media (min-width: 960px){
#voice{
  margin-top: 9.2%;
}
}

#voice .wrap ul li{
  width: 100%;
  display: flex;
	flex-direction: column;
	align-items: center;
  justify-content: space-between;
  border-top: 1px solid #D0DEE0;
  padding: 13% 0 10% 0;
}
@media (min-width: 415px){
#voice .wrap ul li{
  width: 100%;
	flex-direction: row;
	align-items: center;
  justify-content: space-between;
  border-top: 1px solid #D0DEE0;
  padding: 30px 0 30px 0;
}
}

#voice .wrap ul li .data__block{
  width: 100%;
  display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
  box-sizing: border-box;
}
@media (min-width: 415px){
#voice .wrap ul li .data__block{
  width: 29%;
  height: 180px;
  display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
  box-sizing: border-box;
  border-right: 1px solid #D0DEE0;
}
}

#voice .wrap ul li .data__block img{
  width: 20%;
}
@media (min-width: 415px){
#voice .wrap ul li .data__block img{
  width: 30%;
}
}
@media (min-width: 960px){
#voice .wrap ul li .data__block img{
  width: 22%;
}
}

#voice .wrap ul li .data__block .data{
  font-size: 2.0rem;
  font-size: clamp(1.6rem, 1vw, 2.2rem);
  font-weight: 500;
  line-height: 1em;
  margin: 14px 0 24px 0;

}
@media (min-width: 415px){
#voice .wrap ul li .data__block .data{
  margin: 20px 0 0 0;
}
}

#voice .wrap ul li .text__block{
  width: 100%;
  display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
  box-sizing: border-box;
}
@media (min-width: 415px){
#voice .wrap ul li .text__block{
  width: 71%;
	padding: 0 3% 0 6%;
}
}

#voice .wrap ul li .text__block p{
  margin: 0;
}


/* ==========================================================================
   page__doctor
   ========================================================================== */
#page__doctor .page__title{
  margin: 0 0 0 -0.8vw;
}

.page #doctor{
  position: relative;
  overflow: visible;
}

.page #doctor .img01{
	width: 70%;
	height: auto;
	padding: 5px 0 0 30%;
}
@media (min-width: 415px){
.page #doctor .img01{
	width: 25.9%;
	height: auto;
	position: absolute;
	top: 0;
	left: 15.6%;
  padding: 0;
	z-index: -1;
}
}
@media (min-width: 960px){
.page #doctor .img01{
	width: 25.9%;
	top: 0;
	left: 15.6%;
}
}
@media (min-width: 2000px){
.page #doctor .img01{
	top: 0;
  left: 10.6%;
}
}

.page #doctor .img02{
	width: 60.0%;
	height: auto;
	padding: 0px 40% 40px 0;
}
@media (min-width: 415px){
.page #doctor .img02{
	width: 29.8%;
	height: auto;
	position: absolute;
	top: 984px;
	left: 0;
  padding: 0;
	z-index: -1;
}
}
@media (min-width: 2000px){
.page #doctor .img02{
	top: 1150px;
  left: 0;
}
}

.page #doctor .img03{
	width: 40%;
	height: auto;
	float: right;
	padding: 0 8vw 70px 0;
}
@media (min-width: 415px){
.page #doctor .img03{
	width: 20.5%;
	height: auto;
	position: absolute;
	top: 1356px;
	right: 10%;
  padding: 0;
	z-index: -1;
}
}
@media (min-width: 2000px){
.page #doctor .img03{
	top: 1500px;
  right: 10%;
}
}

.page #doctor .text_block{
	margin: 50px 0 50px 0;
	padding: 0 8vw;
}
@media (min-width: 415px){
.page #doctor .text_block{
	width: 39.4%;
	float: right;
	margin: 30px 11.4vw 254px 0;
}
}
@media (min-width: 960px){
.page #doctor .text_block{
	width: 39.4vw;
	margin: 30px 12.4vw 254px 0;
  padding: 0;
}
}
@media (min-width: 2000px){
.page #doctor .text_block{
	width: 55.6%;
	margin: 30px 0 254px 0;
}
}

.page #doctor table{
	width: 100%;
	font-size: clamp(1.3rem, 0.95vw, 2.2rem);
	letter-spacing: 0;
	line-height: 1.9em;
	border-collapse: collapse;
	margin: 40px 0 0 0;
}
@media (min-width: 415px){
.page #doctor table{
	width: 100%;
	letter-spacing: 0.05em;
	line-height: 2.3em;
	margin: 90px 0 0 0;
}
}
@media (min-width: 960px){
.page #doctor table{
	line-height: 2.3em;
	margin: 90px 0 0 0;
}
}

.page #doctor table:last-child th{
	width: 34%;
	font-weight: normal;
	vertical-align: top;
	text-align: left;
}
@media (min-width: 415px){
.page #doctor table:last-child th{
	width: 15%;
}
}

.page #doctor .text p{
font-size: 2.1rem;
font-size: clamp(1.4rem, 1.04vw, 2.3rem);
padding: 30px 0 0 0;
}
@media (min-width: 415px){
.page #doctor .text p{
  padding: 80px 0 80px 0;
}
}
@media (min-width: 960px){
.page #doctor .text p{
  padding: 80px 0 80px 0;
}
}


/* performance ============================== */
#performance .text{
  text-align: center;
}

/* tab ============================== */
.tab__block{
  width: 100%;
  margin: 40px 0 0 0;
}
@media (min-width: 415px){
.tab__block{
  width: 100%;
  margin: 120px 0 0 0;
}
}

.tab-group{
  display: flex;
  justify-content: center;
}
@media (min-width: 415px){
.tab-group{
  padding: 0 16%;
}
}

.tab-group li{
  width: 20%;
  display: flex;
  justify-content: center;
}

.tab{
	font-size: 2.0rem;
  font-size: clamp(1.3rem, 1.0vw, 2.0rem);
  text-align:center;
  flex-grow: 1;
  list-style:none;
  border-bottom: solid 1px #CCC;
  padding: 0 0 14px 0;
  cursor:pointer;
  box-sizing: border-box;
}
@media (min-width: 415px){
.tab{
  padding: 0 0 16px 0;
}
}

.tab.is-active{
  transition: all 0s ease-out;
  border-bottom: solid 3px #2A5D69;
}

.panel-group{
  width: 100%;
  height: auto;
  margin: 40px 0 0 0;
}
@media (min-width: 415px){
.panel-group{
  width: 100%;
  height: auto;
  margin: 80px 0 0 0;
}
}

.panel{
  display:none;
}

.panel.is-show{
  display:block;
}

/* entry__list ============================== */
#performance .panel.book .entry ul,
#performance .panel.thesis .entry ul{
  width: 100%;
  display: flex;
	flex-direction: row;
  flex-wrap: wrap;
	justify-content: space-between;
}

@media (min-width: 415px){
#performance .panel.book .entry ul:after,
#performance .panel.thesis .entry ul:after{
  content:"";
  width: 31.0%;
  display: block;
}
}

#performance .panel.book .entry ul li,
#performance .panel.thesis .entry ul li{
  width: 48.0%;
  display: flex;
	flex-direction: column;
  margin-bottom: 30px;
}
@media (min-width: 415px){
#performance .panel.book .entry ul li,
#performance .panel.thesis .entry ul li{
  width: 31.0%;
  margin-bottom: 50px;
}
}

#performance .panel .entry ul li p.headline{
  margin-top: 20px;
}

#performance .panel .entry ul li p{
  font-size: clamp(1.2rem, 0.8vw, 1.6rem);
  line-height: 1.7em;
  font-family: 'Shippori Mincho', serif;
  margin-top: 6px;
}

#performance .panel.book .entry ul li a,
#performance .panel.thesis .entry ul li a{
  font-size: clamp(1.2rem, 0.8vw, 1.6rem);
  font-family: 'Shippori Mincho', serif;
  display: inline-block;
  margin-top: 10px;
  padding: 0 0 4px 0;
  border-bottom: 1px solid #D0DEE0;
}

#performance .panel.book .entry ul li a:hover,
#performance .panel.thesis .entry ul li a:hover{
  border-bottom: 1px solid #2A5D69;
}

#performance .panel.lecture .entry ul li,
#performance .panel.patent .entry ul li{
  list-style-type: decimal;
  font-size: clamp(1.2rem, 0.8vw, 1.6rem);
  margin-left: 1.4em;
}

#performance .panel.announcing .entry ul li{
  list-style-type: disc;
  font-size: clamp(1.2rem, 0.8vw, 1.6rem);
  margin-left: 1.4em;
}

#performance .panel .entry h4{
  font-size: clamp(1.4rem, 0.95vw, 2.0rem);
  font-family: 'Shippori Mincho', serif;
  margin: 0 0 24px 0;
  padding-left: 14px;
  border-left: 4px solid #2A5D69;
}

#performance .panel .entry:last-child h4{
  margin-top: 40px;
}

#performance .panel.lecture img{
  width: 31.0%;
  height: auto;
  margin-top: 20px;
}


/* ==========================================================================
   page__flow
   ========================================================================== */
#page__flow .page__title{
  margin: 0 0 0 -0.8vw;
}

#flow .wrap ul li{
  width: 100%;
  display: flex;
	flex-direction: column;
	align-items: center;
  justify-content: flex-start;
  border-top: 1px solid #D0DEE0;
  padding: 0 0 50px 0;
}
@media (min-width: 415px){
#flow .wrap ul li{
  width: 100%;
	flex-direction: row;
	align-items: center;
  justify-content: space-between;
  padding: 30px 0 30px 0;
}
}
@media (min-width: 960px){
#flow .wrap ul li{
  padding: 50px 0 50px 0;
}
}

#flow .wrap ul li .data__block{
  width: 100%;
  display: flex;
	flex-direction: row;
	align-items: center;
  box-sizing: border-box;
  padding: 50px 16vw 5px;
  margin-bottom: 20px;
}
@media (min-width: 415px){
#flow .wrap ul li .data__block{
  width: 40%;
  height: 170px;
  display: flex;
	flex-direction: row;
	align-items: center;
  box-sizing: border-box;
  border-right: 1px solid #D0DEE0;
  padding: 0;
  margin-bottom: 0;
}
}
@media (min-width: 960px){
#flow .wrap ul li .data__block{
  width: 34%;
  height: 220px;
}
}

#flow .wrap ul li:first-child .data__block{
  height: auto;
}
@media (min-width: 415px){
#flow .wrap ul li:first-child .data__block{
  height: 300px;
}
}
@media (min-width: 960px){
#flow .wrap ul li:first-child .data__block{
  height: 380px;
}
}

#flow .wrap ul li .data__block .no{
  width: 18%;
  color: #B0CDD3;
  font-size: 9.0rem;
  font-size: clamp(4.0rem, 6.4vw, 9.4rem);
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-style: italic;
  text-align: center;
  line-height: 1em;
  margin-right: 3%;
  margin-left: 1%;
}
@media (min-width: 415px){
#flow .wrap ul li .data__block .no{
  width: 18%;
  margin-right: 3%;
  margin-left: 2%;
}
}
@media (min-width: 960px){
#flow .wrap ul li .data__block .no{
  width: 18%;
  margin-right: 9%;
  margin-left: 5%;
}
}

#flow .wrap ul li .data__block .title{
  width: 70%;
  font-size: 2.0rem;
  font-size: clamp(1.9rem, 1.2vw, 2.5rem);
  font-weight: 500;
  line-height: 1em;
  text-align: center;
}
@media (min-width: 415px){
#flow .wrap ul li .data__block .title{
  width: 60%;
}
}
@media (min-width: 960px){
#flow .wrap ul li .data__block .title{
  width: 52%;
}
}

#flow .wrap ul li .text__block{
  width: 100%;
  display: flex;
	flex-direction: column;
	align-items: center;
}
@media (min-width: 415px){
#flow .wrap ul li .text__block{
  width: 66%;
	padding: 0 2% 0 7%;
}
}

#flow .wrap ul li .text__block .text p{
	margin: 0;
}

#flow .wrap ul li .text__block .text{
	display: flex;
	flex-direction: column;
	align-items: center;
}
@media (min-width: 415px){
#flow .wrap ul li .text__block .text{
	align-items: flex-start;
}
}

#flow .wrap ul li .text__block .text p.th{
	font-size: clamp(1.5rem, 1.1vw, 2.4rem);
  margin-bottom: 6px;
  font-weight: 500;
}
@media (min-width: 415px){
#flow .wrap ul li .text__block .text p.th{
  margin-bottom: 16px;
}
}

#flow .wrap ul li .text__block a{
	width: 160px;
	margin-top: 30px;
  display: block;
  transition: 0.2s ease-in-out;
}
@media (min-width: 415px){
#flow .wrap ul li .text__block a{
	width: 180px;
	margin-top: 30px;
}
}
@media (min-width: 960px){
#flow .wrap ul li .text__block a{
	width: 200px;
	margin-top: 40px;
}
}

#flow .wrap ul li .text__block a:hover{
  opacity: 0.7;
}

#flow .wrap ul li .text__block a img{
  width: 160px;
}
@media (min-width: 415px){
#flow .wrap ul li .text__block a img{
  width: 180px;
}
}
@media (min-width: 960px){
#flow .wrap ul li .text__block a img{
  width: 200px;
}
}


/* ==========================================================================
   page-contact
   ========================================================================== */
#page__contact .page__title{
  margin: 0 0 0 -0.4vw;
}

#contact .wrap{
  width: 100%;
  margin: 0 auto;
  position: relative;
  box-sizing: border-box;
  padding: 0 8vw;
}
@media (min-width: 960px){
#contact .wrap{
	max-width: 1000px;
  padding: 0;
  max-width: calc(1000px + 12vw + 12vw);
  padding: 0 12vw;
}
}
@media (min-width: 2000px){
#contact .wrap{
	max-width: 1200px;
  max-width: calc(1200px + 12vw + 12vw);
  padding: 0 12vw;
}
}

#contact .text-wrap p.note{
  margin: 60px 0 0 0;
  display: block;
}

#contact .text-wrap p.note a{
  text-decoration: underline;
  line-height: 2.0em;
}

.contact-form{
  width: 100%;
  overflow: hidden;
}

input[type="text"],
input[type="tel"],
input[type="email"],
textarea{
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  color: #2A5D69;
}

select{
  -webkit-appearance: none;
  appearance: none;
  border: 0px solid #000;
  border-radius: 0px;
  background: #fff;
  color: #2A5D69;
}

.contact-form dl{
  width: 100%;
  font-size: 1.8rem;
  font-size: clamp(1.4rem, 0.95vw, 1.8rem);
  line-height: 1em;
  font-weight: 500;
	letter-spacing: 0.06em;
  display: block;
  float: left;
  margin: 0 0 30px 0;
  display: flex;
	flex-direction: column;
}
@media (min-width: 415px){
.contact-form dl{
  margin: 0 0 50px 0;
}
}

.contact-form dt{
  width: 100%;
  display: flex;
	flex-direction: row;
  align-items: center;
  position: relative;
  padding: 2px 0 2px 47px;
  margin: 0 0 4px 0;
}

.contact-form dt .required{
  color: #fff;
  font-size: 1.2rem;
  line-height: 1em;
  text-align: center;
  font-weight: 400;
	letter-spacing: 0.04em;
  background-color: #e1728e;
  padding: 5px;
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
}

.contact-form dd{
  display: block;
  padding: 5px 0 0 0;
	box-sizing: border-box;
	margin-inline-start: 0;
}
@media (min-width: 415px){
.contact-form dd{
  padding: 5px 0 0 0;
}
}
@media (min-width: 960px){
.contact-form dd{
  margin: 6px 0 0 0;
}
}

.contact-form dl:nth-child(3) dd{
  margin: 15px 0 0 0;
  padding-bottom: 15px;
  border-bottom: 1px solid #D0DEE0;
}
@media (min-width: 415px){
.contact-form dl:nth-child(3) dd{
  margin: 25px 0 0 0;
  padding-bottom: 20px;
}
}

.contact-form dl:nth-child(6) dd{
  margin: 15px 0 0 0;
  padding-bottom: 15px;
  border-bottom: 1px solid #D0DEE0;
}
@media (min-width: 415px){
.contact-form dl:nth-child(6) dd{
  margin: 25px 0 0 0;
  padding-bottom: 20px;
}
}

.contact-form dd input[type="text"],
.contact-form dd input[type="email"],
.contact-form dd input[type="tel"],
.contact-form dd select{
  width: 100%;
  height: 50px;
  resize: vertical;
  font-size: 1.4rem;
  font-size: clamp(1.4rem, 0.9vw, 1.7rem);
  border: 1px solid #D0DEE0;
  box-sizing: border-box;
  margin: 0;
  outline: none;
  appearance: none;
  font-family: 'Noto+Serif+JP', serif;
  letter-spacing: 0.06em;
  padding: 0 16px;
}
@media (min-width: 415px){
.contact-form dd input[type="text"],
.contact-form dd input[type="email"],
.contact-form dd input[type="tel"],
.contact-form dd select{
  height: 60px;
  padding: 0 20px;
}
}
@media (min-width: 960px){
.contact-form dd input[type="text"],
.contact-form dd input[type="email"],
.contact-form dd input[type="tel"],
.contact-form dd select{
  height: 70px;
  padding: 0 20px;
}
}

.contact-form dd textarea{
  width: 100%;
  resize: vertical;
  font-size: 1.4rem;
  font-size: clamp(1.4rem, 0.9vw, 1.7rem);
  border: 1px solid #D0DEE0;
  box-sizing: border-box;
  margin: 0;
  outline: none;
  appearance: none;
  font-family: 'Noto+Serif+JP', serif;
  letter-spacing: 0.06em;
  padding: 17px 15px;
}

.contact-form dd.name p{
  display: flex;
  flex-direction: row;
	justify-content: space-between;
  box-sizing: border-box;
}

.contact-form dd.name p span{
  width: 49.5%;
}

.contact-form dd.birth span{
  position: relative;
}

.contact-form dd.birth span::after{
  content: "";
	width: 8px;
	height: 5px;
  background-image: url(../img/icon_arrow_3.svg);
	background-size: 8px 5px;
	background-repeat: no-repeat;
	position: absolute;
  top: 50%;
  right: 12px;
	margin: -2.5px 0 0 0;
}

.contact-form dd.birth p{
  display: flex;
  flex-direction: row;
	justify-content: flex-start;
  box-sizing: border-box;
}

.contact-form dd.birth p span:nth-child(1){
  width: 50%;
}
@media (min-width: 415px){
.contact-form dd.birth p span:nth-child(1){
  width: 22%;
}
}

.contact-form dd.birth p span:nth-child(2),
.contact-form dd.birth p span:nth-child(3){
  width: 25%;
  margin-left: 1.5%;
}
@media (min-width: 415px){
.contact-form dd.birth p span:nth-child(2),
.contact-form dd.birth p span:nth-child(3){
  width: 13%;
  margin-left: 1%;
}
}

.contact-form .subject .wpcf7-list-item{
  width: 100%;
  display: block;
  padding: 0 0 8px 0;
}
@media (min-width: 415px){
.contact-form .subject .wpcf7-list-item{
  width: auto;
  display: inline-block;
}
}

.contact-form .subject .wpcf7-list-item:last-child{
  padding: 0;
}

.submit__block{
  width: 280px;
	height: 60px;
	margin: 0 auto;
}
@media (min-width: 415px){
.submit__block{
  width: 330px;
	height: 70px;
}
}

.wpcf7-submit{
  color: #FFF;
  width: 280px;
	height: 60px;
  line-height: 58px;
	font-size: 2.0rem;
  font-size: clamp(1.6rem, 1vw, 2.1rem);
  font-family: 'Shippori Mincho', serif;
  text-align: center;
  display: block;
  background: #2A5D69;
  transition: 0.3s;
  outline: none;
  border: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
@media (min-width: 415px){
.wpcf7-submit{
  width: 330px;
	height: 70px;
  line-height: 68px;
}
}

.wpcf7-submit:hover{
	color: #2A5D69;
  background: #B0CDD3;
}

div.wpcf7 .ajax-loader{
  display: none !important;
}

.grecaptcha-badge {
	visibility: hidden;
}


/* ==========================================================================
   page__privacy
   ========================================================================== */
#privacy{
  padding: 0 0 0 0;
}
@media (min-width: 960px){
#privacy{
  padding: 150px 0 0 0;
}
}

#privacy h2{
  font-size: 2.2rem;
  font-size: clamp(1.8rem, 1.25vw, 2.6rem);
  font-family: 'Shippori Mincho', serif;
  font-weight: 500;
  margin: 40px 0 10px 0;
  padding-left: 14px;
  border-left: 4px solid #2A5D69;
}
@media (min-width: 960px){
#privacy h2{
  margin: 80px 0 30px 0;
}
}

#privacy h2:first-child{
  margin: 30px 0 10px 0;
}
@media (min-width: 960px){
#privacy h2:first-child{
  margin: 0 0 30px 0;
}
}

#privacy p{
  font-size: 2.0rem;
  font-size: clamp(1.4rem, 0.9vw, 2.0rem);
  line-height: 2.2em;
  margin: 0 0 24px 0;
}

#privacy p.note{
  font-size: 1.6rem;
  font-size: clamp(1.4rem, 0.85vw, 1.8rem);
  margin: 0 0 24px 0;
}

#privacy ul{
  margin: 0 0 24px 0;
}

#privacy ul li{
  font-size: 2.0rem;
  font-size: clamp(1.4rem, 1.0vw, 2.0rem);
  line-height: 2.2em;
  list-style-type: disc;
  margin-left: 1.6em;
}
