@charset "UTF-8";

body {
	background: #eaedf2;
	color: #333;
	margin: 0;
	padding: 0;
	line-height: 1;
	font-size: 1.2rem;
	overflow-x: hidden;
}

img {
	display: block;
	width: 100%;
	height: auto;
}

a {
	display: inline;
}

/*----- 共有 -----*/
/*########
l-flex-[justify-content]-[align-items]
########*/
/*
最初と最後の子要素を両端に配置し、
残りの要素は均等に間隔をあけて配置
*/
/*-- 上揃え --*/
.l-flex-between-start {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-webkit-justify-content: space-between;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: start;
	-webkit-align-items: start;
	-ms-flex-align: start;
	align-items: flex-start;
}

/*-- 中央揃え --*/
.l-flex-between-center {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-webkit-justify-content: space-between;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
}

/*-- 下揃え --*/
.l-flex-between-end {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-webkit-justify-content: space-between;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: end;
	-webkit-align-items: end;
	-ms-flex-align: end;
	align-items: flex-end;
}

/*
行の開始位置から配置。
左揃え。
*/
/*-- 上揃え --*/
.l-flex-start-start {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: start;
	-webkit-align-items: start;
	-ms-flex-align: start;
	align-items: flex-start;
}

/*-- 中央揃え --*/
.l-flex-start-center {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
}

/*-- 下揃え --*/
.l-flex-start-end {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: end;
	-webkit-align-items: end;
	-ms-flex-align: end;
	align-items: flex-end;
}

/*
中央揃え
*/
/*-- 上揃え --*/
.l-flex-center-start {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: start;
	-webkit-align-items: start;
	-ms-flex-align: start;
	align-items: flex-start;
}

/*-- 中央揃え --*/
.l-flex-center-center {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
}

/*-- 下揃え --*/
.l-flex-center-end {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: end;
	-webkit-align-items: end;
	-ms-flex-align: end;
	align-items: flex-end;
}

/*-- 子要素を折り返し、複数行に上から下へ並べる --*/
.l-flex-wrap {
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

/* modal 共通部分 */
.lock {
	overflow: hidden;
}

.modal-overlay {
	z-index: 99998;
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 120%;
	background-color: rgba(0, 0, 0, 0.75);
}

.modal-wrap {
	z-index: 99999;
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	padding: 10% 0;
}

.modal-wrap>section#flow {
	width: 95%;
	margin: 0 auto;
	position: relative;
	border-radius: 8px;
	padding: 13.28vw 0 2.9vw;
	background: #fff;
}

.modal-wrap>section .modal-close {
	position: absolute;
	top: 20px;
	right: 20px;
	cursor: pointer;
	font-size: 25px;
}

.modal-content {
	position: relative;
}

.modal-open {
	cursor: pointer;
}

.modal-close.btn_main {
	width: 216px;
	margin: auto;
	cursor: pointer;
}

.modal-content .btn_sub {
	position: absolute;
	top: -22px;
	right: -22px;
}

/* ここまで modal 共通部分 */

/*----- header -----*/
#header {
	background: #efefef;
	width: 100%;
	padding: 4.5vw 0;
}

#header h1 {
	width: 53.1vw;
	margin: 0 auto;
}


/*----- fv -----*/
#fv {
	background: #efefef url(../images/fv_background.png) no-repeat bottom right;
	background-size: 100%;
	padding: 0 6.25vw 1vw;
}

#fv h2 {
	margin-bottom: 5.93vw;
}

#fv .l-main-text {
	width: 67.5vw;
	margin-bottom: 3.12vw;
}

#fv .fv-catch {
	margin-bottom: 3.12vw;
}

/* start banner */
.banner {
	background: #17516C;
}

.banner .l-inner {
	background: #fff;
	padding: 10px 0 5px;
}

.banner p {
	text-align: center;
	color: #df563d;
	font-weight: 600;
	font-size: 15.3px;
	font-family: 'Noto Sans JP', sans-serif;
	max-width: 750px;
	display: block;
	margin: 0 auto;
}

.banner img {
	margin: 0 auto;
	display: block;
	text-align: center;
	width: 70%;
	padding: 8px 0;
}

/* end banner */


/*--- attempt ---*/
#attempt {
	padding: 8.87vw 0 6.25vw;
}

#attempt h2 {
	width: 90.62vw;
	margin: 0 auto 5.31vw;
}

#attempt .point_img {
	width: 90.62vw;
	margin: 25.93vw auto 3.12vw;
	position: relative;
}

#attempt .point_img:before {
	content: "";
	position: absolute;
	width: 23.12vw;
	height: 20.62vw;
	background: url(../images/point_title02.png) center center / 100% no-repeat;
	top: -23.42vw;
	left: calc(50% - 11.56vw);
}

#attempt .el_point_arrow {
	max-width: fit-content;
	margin: 0 auto 7.8125vw;
}

#attempt .el_point_text {
	color: #123b54;
	font-size: 5.1vw;
	text-align: center;
	margin: 0 auto;
}

#attempt .el_point_text span {
	font-weight: bold;
	display: block;
}

/*--- attempt ---*/

/*--- price ---*/
.ly_price {
	padding-bottom: 6.25vw;
}

.el_price_title {
	margin-bottom: 3.90625vw;
}

.el_price_compare {
	width: 90.625vw;
	margin: 0 auto 3.125vw;
}

.el_price_feature {
	width: 90.625vw;
	margin: 0 auto 4.6875vw;
}

.el_price_menu {
	width: 90.625vw;
	margin: auto;
}

/*--- price ---*/


/*----- info -----*/
.info {
	background: #123b54;
	padding: 6.87vw 0 6.8vw;
}

.info h2 {
	width: 79.531vw;
	margin: 0 auto 4.68vw;
}

.info h3 {
	width: 85.9vw;
	margin: 0 auto 5.4vw;
}

.info ul {
	width: 85.9vw;
	margin: 0 auto;
}

.info ul li {
	margin-bottom: 4.6vw;
}


/*----- info_02 -----*/
.info.info_02 h2 {
	width: 84vw;
}

.info.info_02 .info-text {
	color: #fff;
	font-size: 4.5vw;
	text-align: center;
	margin-bottom: 4.68vw;
}

/*----- worries -----*/
#worries {
	padding: 15.6vw 0 4vw;
}

#worries h2 {
	margin-bottom: 4.6vw;
}

#worries ul {
	width: 85.9vw;
	margin: 0 auto 5vw;
}

#worries ul li {
	margin-bottom: 2.8vw;
}

#worries .l-arrow {
	width: 15vw;
	margin: 0 auto;
}

/*----- merit -----*/
#merit {
	padding-bottom: 6.25vw;
}

#merit h2 {
	margin-bottom: 6.25vw;
}

#merit ul {
	width: 85.9vw;
	margin: 0 auto;
	text-align: center;
}

#merit ul li {
	margin-bottom: 6vw;
}

#merit ul li figure {
	margin-bottom: 2vw;
}

#merit ul dl dt {
	font-size: 5.6vw;
	line-height: 7vw;
	font-weight: bold;
}

#merit ul dl dt span {
	color: #ff5e06;
	font-weight: bold;
}

#merit ul dl dd {
	font-size: 3.75vw;
}

#merit ul dl dd span {
	font-size: 4.6vw;
	font-weight: bold;
}


/*----- compare -----*/
#compare {
	background: #ecf2f5;
	padding-bottom: 7.8vw;
	margin-bottom: 12vw;
}

#compare h2 {
	margin-bottom: 5vw;
}

#compare .l-main {
	width: 75vw;
	margin: 0 auto;
}

#compare .cv-top {
	background: #fff;
	border: 2px solid rgb(14, 66, 98);
	border-radius: 20px;
	width: 71.09vw;
	padding: 0.46vw 3.12vw 2.5vw;
	margin: 5.62vw auto 10.15vw;
}

#compare .cv-top p {
	margin-top: 2.81vw;
	text-align: left;
	line-height: 1.5;
	padding: 0;
}

#compare .cv-top p span {
	color: rgb(255, 100, 15);
}

#compare .cv-info-title {
	width: 74.53vw;
	margin: 0 auto 5.46vw;
}

#compare .cv-info-area {
	margin: 0 auto;
	width: 84.37vw;
}

#compare .cv-info-area a+a {
	margin-top: 5.93vw;
}

/*----- reason -----*/
#reason {
	padding: 0 4.68vw 0.1vw;
}

#reason h2 {
	width: 82vw;
	margin: 0 auto 16vw;
}

#reason dl {
	margin-bottom: 15vw;
	border: solid 1.56vw #285a79;
	padding: 0.2vw 0 3vw;
}

#reason dl dt {
	width: 100%;
	margin: -10.5vw 0 4vw;
	position: relative;
	z-index: 2;
}

#reason dl dd {
	font-size: 3.8vw;
	padding: 0 6vw;
	margin-bottom: 3.5vw;
}

#reason dl dd.sub-title {
	font-size: 4.37vw;
	font-weight: bold;
	border-left: solid 2vw #f72b15;
	padding-left: 2vw;
	margin-left: 6vw;
}

#reason dl dd p {
	font-size: 2.7vw;
}


/*----- cause -----*/
#cause {
	padding: 1vw 4.6vw 6.3vw;
	width: 90vw;
	margin: 20.5vw auto 25.5vw;
	position: relative;
}

#cause h2 {
	padding-top: 0.2vw;
	margin: -11.5vw -4.6vw 5vw;
}

#cause .l-box {
	background: #fff;
	padding: 5.6vw;
}

#cause .l-box dl {
	background: #fff;
	margin-bottom: 9vw;
}

#cause .l-box dl dt {
	margin-bottom: 1.5vw;
}

#cause .l-box dl dd {
	font-size: 3.8vw;
	line-height: 4.7vw;
}

#cause .l-box dl.bottom-box {
	border: solid 0.63vw #fb6e21;
	border-radius: 3vw;
	padding: 1vw 1vw 10vw 1vw;
	margin-bottom: 2vw;
}

#cause .l-box dl.bottom-box dd {
	padding: 2vw 2vw 0 3vw;
}

#cause .l-arrow {
	width: 18.7vw;
	margin: 0 auto;
	position: absolute;
	bottom: -8vw;
	z-index: 2;
	left: 50%;
	transform: translate(-50%, 0);
	-webkit-transform: translate(-50%, 0);
	-ms-transform: translate(-50%, 0);
}

/*----- six_reason -----*/
.six_reason {
	width: 100%;
	background: #fff;
	padding: 12.5vw 0 6.25vw;
}

.six_reason img {
	width: 90.6vw;
	margin: 0 auto;
}

/*----- medicine -----*/
#medicine {
	padding: 10vw 0 0.7vw;
}

#medicine h2 {
	width: 65.7vw;
	margin: 0 auto 4vw;
}

#medicine .top-text {
	font-size: 3.75vw;
	text-align: center;
	color: #000;
	line-height: 1.2;
	margin-bottom: 6.25vw;
}

#medicine .relief {
	background: #fff;
	width: 90.6vw;
	margin: 0 auto 9.15vw;
	padding: 7.8vw;
}

#medicine .relief .title {
	margin: 0 auto 6.25vw;
}

#medicine .relief_01 .title {
	width: 69.3vw;
}

#medicine .relief_02 .title {
	margin: 0 -2.5vw 6.25vw;
}

#medicine .relief_03 .title {
	width: 47vw;
}

#medicine .relief ul {
	padding-right: 7.34vw;
	margin-bottom: 3.59vw;
}

#medicine .relief ul li {
	color: #000;
	padding-left: 7vw;
	position: relative;
	font-size: 4.21vw;
	line-height: 1.3;
}

#medicine .relief ul li+li {
	margin-top: 1.56vw;
}

#medicine .relief ul li:before {
	content: "";
	position: absolute;
	display: block;
	width: 3vw;
	height: 3vw;
	border-radius: 50%;
	background: rgb(18 59 84);
	top: 1vw;
	left: 2vw;
}

#medicine .relief .note {
	line-height: 1.3;
	width: 74.21vw;
	margin: 0 auto;
	background: #f6ecfa;
	padding: 2.65vw 4.68vw 2.56vw;
}

#medicine .relief .note span {
	font-weight: bold;
}


/* feature */
#feature {
	background-color: #ecf2f5;
	padding: 13.75vw 4.68vw 2vw;
}

#feature h2 {
	width: 64vw;
	margin: 0 auto 7vw;
}

#feature .feature_box {
	background-color: #fff;
	padding: 8.75vw 7.8vw 6.5vw;
}

#feature .feature_box h3 {
	margin-bottom: 5.7vw;
}

#feature .merit {
	background: #fff;
	border: 0.8vw solid rgb(14, 66, 98);
	border-radius: 4vw;
	width: 71.09vw;
	padding: 0.46vw 2.52vw 2.5vw;
	margin: 0 auto;
}

#feature .merit p {
	margin: 2.81vw auto 0;
	width: 63.43vw;
}

/*----- point -----*/
#point {
	background: url(../images/point_doctor_background.jpg) no-repeat top center;
	background-size: contain;
}

#point h2 {
	width: 80vw;
	margin: 0 auto 4vw;
}

#point .top-text {
	width: 67.5vw;
	margin: 0 0 10vw auto;
}

#point h3 {
	width: 77vw;
	margin: 0 auto 7vw;
}

#point ul {
	width: 78vw;
	margin: 0 auto 11vw;
}

#point ul li {
	margin-bottom: 1.7vw;
}

#point .point-box {
	padding: 7.1vw 6.56vw 10vw 6.56vw;
	background: linear-gradient(180deg, #ecf2f5 0%, #ecf2f5 35vw, #fff 35vw, #fff 100%);
	border-top: solid 0.62vw #123b54;
}

#point .point-box h4 {
	margin-bottom: 6vw;
}

#point .point-box figure {
	margin-bottom: 2vw;
}

#point .point-box p {
	font-size: 3.75vw;
	line-height: 4.7vw;
}

#point .point-box .l-btn {
	border: solid 0.8vw #fb6e21;
	border-radius: 7vw;
	text-align: center;
	padding: 2vw 7vw;
	margin-top: 3vw;
}

#point .point-box .l-btn a {
	font-size: 5vw;
	color: #ff5e06;
	font-weight: bold;
	border-bottom: solid 1px;
}


/*----- voice -----*/
#voice {
	margin-bottom: 18vw;
}

#voice h2 {
	margin-bottom: 6.7vw;
}

#voice h3 {
	width: 40.6vw;
	margin: 0 auto 6vw;
}

#voice .voice-box {
	width: 91.4vw;
	margin: 0 auto 6vw;
	background: #ffe6e6;
	padding: 6.25vw;
	border-radius: 3vw;
}

#voice .voice-box p {
	border-top: dashed #fc8ba2 0.3vw;
	padding: 4.8vw 2vw 3vw;
	line-height: 4.7vw;
}

#voice .voice-box p+p {
	border-top: none;
	border-bottom: dashed #fc8ba2 0.3vw;
	padding: 0 2vw 2vw;
	font-size: 5.3vw;
	font-weight: bold;
	color: #ed5b78;
	text-align: right;
}

#voice .voice-box p+p span {
	font-size: 3.75vw;
}


/*----- flow -----*/
#flow {
	background: #ecf2f5;
	padding: 17vw 0 13vw;
}

#flow h2 {
	width: 61vw;
	margin: 0 auto 8vw;
}

#flow ul {
	width: 90.6vw;
	margin: 0 auto;
}

#flow ul li {
	background: #fff;
	padding-bottom: 6vw;
}

#flow ul .step-title {
	margin-bottom: 3vw;
}

#flow ul figure {
	width: 69.5vw;
	margin: 0 auto 3vw;
}

#flow ul .step-text {
	width: 69.5vw;
	margin: 0 auto 4vw;
	font-size: 3.75vw;
	line-height: 4.68vw;
}

#flow ul .note-txt {
	padding: 0 4.5vw;
}

#flow ul span {
	color: #ff5e06;
	font-weight: bold;
}

#flow ul .bottom-img {
	width: 69.5vw;
	margin: 0 auto 3vw;
	border: solid #346e92 0.62vw;
	padding: 5.68vw 15.6vw;
	border-radius: 3vw;
}

#flow .cv {
	display: none;
	padding-top: 5.46vw;
}

#flow .cv-top {
	background: #fff;
	border: 2px solid rgb(14, 66, 98);
	border-radius: 20px;
	width: 71.09vw;
	padding: 0.46vw 3.12vw 2.5vw;
	margin: 0 auto;
}

#flow .cv-top p {
	margin: 2.81vw auto 0;
	width: 63.43vw;
}

#flow .cv-info-title {
	width: 70.71vw;
	margin: 0 auto 5.46vw;
	display: none;
}

#flow .cv-info-area {
	margin: 0 auto;
	width: 84.37vw;
	display: none;
}

.modal-wrap #flow .cv {
	padding-top: 0;
}

.modal-wrap #flow .cv-top {
	margin-bottom: 3.21vw;
}

.modal-wrap #flow .cv-info-title,
.modal-wrap #flow .cv-info-area {
	display: block;
}

#flow .cv-info-area a+a {
	margin-top: 5.93vw;
}

/*modalでは表示*/
.modal-wrap #flow .cv {
	display: block;
}

.modal-wrap #flow .cv .cv-top {
	margin-bottom: 7vw;
}

.modal-wrap #flow .cv .cv-info-title {
	display: block;
}

/*----- clinic -----*/
#clinic {
	padding: 12.5vw 0 10vw;
	background: #fff;
}

#clinic h2 {
	width: 53.1vw;
	margin: 0 auto 5vw;
}

#clinic .top-img {
	width: 90vw;
	margin: 0 auto 4vw;
}

#clinic dl {
	width: 83vw;
	margin: 0 auto 2vw;
	border-bottom: dashed 1px #767676;
	font-size: 4.3vw;
	padding: 1vw 0;
}

#clinic dl dt {
	color: #123b54;
	font-weight: bold;
	width: 23.4vw;
	padding-left: 3vw;
	margin-right: 2vw;
}

#clinic dl dd {
	width: 58vw;
}

#clinic dl dd p {
	font-size: 4.2vw;
	line-height: 5.7vw;
	letter-spacing: -0.1vw;
	margin-bottom: 4vw;
}

#clinic dl dd p span {
	font-weight: bold;
}

#clinic dl dd p a {
	color: #0096ff;
	text-decoration: underline;
}

#clinic .table-box {
	border: solid 1px #333;
	padding: 2vw 4vw;
	width: 78.1vw;
	margin: 0 auto 5vw;
	border-radius: 2vw;
}

#clinic .table-box table {
	width: 100%;
}

#clinic .table-box table th {
	font-size: 3.4vw;
	width: 24vw;
	text-align: center;
	font-weight: bold;
	border-bottom: solid 1px #666;
}

#clinic .table-box table th.time {
	font-size: 2.8vw;
	font-weight: normal;
}

#clinic .table-box table td {
	font-size: 3.4vw;
	font-weight: bold;
	width: 5vw;
	text-align: center;
	border-bottom: solid 1px #666;
}

#clinic .table-box table td:last-child {
	width: 6.2vw;
}

#clinic .table-box table td.check {
	font-size: 5vw;
}

#clinic .table-box table tr:last-child th,
#clinic .table-box table tr:last-child td {
	border-bottom: none;
}

#clinic dl+dl {
	border-bottom: none;
}

#clinic .table-box+dl {
	border-top: dashed 1px #767676;
}

#clinic .map {
	margin-top: 4vw;
}

#clinic .map iframe {
	width: 100%;
	height: 46.8vw;
}


/*----- faq -----*/
#faq {
	background: #ecf2f5;
	padding: 13vw 0 11vw;
}

#faq h2 {
	width: 75vw;
	margin: 0 auto 6.25vw;
}

#faq dl {
	margin-bottom: 1.8vw;
}

#faq dl dt {
	background: #123b54 url(../images/faq_icon_Q.png) no-repeat left 3vw center;
	background-size: 8vw;
	padding: 1vw 12vw 1vw 15vw;
	color: #fff;
	font-size: 3.75vw;
	line-height: 5vw;
	position: relative;
	height: 17.5vw;
	display: flex;
	align-items: center;
}

#faq dl dt:after {
	content: "";
	display: inline-block;
	width: 3.5vw;
	height: 3.5vw;
	background: url(../images/faq_icon_arrow.png) no-repeat center center;
	background-size: contain;
	position: absolute;
	top: 40%;
	right: 4vw;
}

#faq dl dt.active:after {
	transform: translateY(-50%) rotate(180deg);
	top: 45%;
}

#faq dl dd {
	font-size: 3.75vw;
	line-height: 4.8vw;
	padding: 2vw 13vw 4vw 8vw;
	display: none;
}

#faq dl dd a {
	display: inline;
	color: #0096ff;
	text-decoration: underline;
}

#faq dl dd span.orange {
	color: #ff5e06;
	font-weight: bold;
}


/*----- project -----*/
#project {
	background: url(../images/project_pattern.png);
	background-size: 30vw;
	padding: 20vw 8vw 14vw;
}

#project .top-text {
	text-align: center;
	font-size: 4.4vw;
	color: #123b54;
	margin-bottom: 0;
}

#project h2 {
	text-align: center;
	font-size: 6.7vw;
	color: #123b54;
	letter-spacing: -0.4vw;
	margin-bottom: 3vw;
	font-weight: bold;
}

#project p {
	font-size: 3.75vw;
	margin-bottom: 4vw;
	font-weight: bold;
}

#project .bottom-img {
	width: 81vw;
	margin: 6vw auto 0;
}


/*----- footer -----*/
#footer {
	padding: 6.7vw 0;
	margin-bottom: 16vw;
	background: #fff;
}

#footer h2 {
	width: 53.1vw;
	margin: 0 auto;
	margin-bottom: 5vw;
}

#footer small {
	display: block;
	text-align: center;
	font-size: 3.4vw;
}

/*----- fixed -----*/
#fixed {
	background: rgba(20, 20, 20, 0.8);
	padding: 2vw 4vw;
	width: 100%;
	position: fixed;
	bottom: 0;
	left: 0;
	z-index: 99;
}