@charset "utf-8";

/*--------------------------------------------------
	common
--------------------------------------------------*/
a:link { color: #b777db; text-decoration: none; }
a:visited { color: #b777db; text-decoration: none; }
a:hover { color: #b777db; text-decoration: none; }
@media screen and (min-width: 768px) {
a[href^="tel:"] { pointer-events: none; color: inherit; }
}

.bold {	font-weight: 700; }

::selection {background: #151F40; color:#fff; }
::-moz-selection {background: #151F40; color:#fff; }

.mgt05 { margin-top: 5px; }
.mgt10 { margin-top: 10px; }
.mgt15 { margin-top: 15px; }
.mgt20 { margin-top: 20px; }
.mgt25 { margin-top: 25px; }
.mgt30 { margin-top: 30px; }
.mgt35 { margin-top: 35px; }
.mgt40 { margin-top: 40px; }
.mgt45 { margin-top: 45px; }

.right { text-align: right; }
.left { text-align: left; }
.center { text-align: center; }

.sp { display: none !important; }
@media screen and (max-width: 767px) {
.pc { display: none !important; }
.sp { display: inherit !important; }
}

/*--------------------------------------------------
	layout
--------------------------------------------------*/
html {
	font-size: 62.5%;
}
body {
	max-width: 2560px;
	min-width: 1280px;
	line-height: 1;
	font-family: "Noto Serif JP", serif;
	font-size: 1.0rem;
	font-weight: 500;
	overflow-wrap: break-word;
	word-wrap: break-word;
	-webkit-text-size-adjust: none;
	color: #151f40;
	margin: 0 auto;
}
body#index {
	background: url(../images/index_bg.jpg) no-repeat center top;
	background-size: contain;
}
body#subPage {
	background: url(../images/subPage_bg.jpg) no-repeat center top;
	background-size: contain;
}
img {
	max-width: 100%;
	height: auto;
}
.wrap {
	text-align: left;
	font-size: 1.6rem;
}
.inner {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding-left: 40px;
	padding-right: 40px;
}
.shadow {
	box-shadow: 10px 10px 0 rgba(21, 31, 64, 0.1);
}
.sec_skyArch {
	padding-top: 8.33%;
	background: url(../images/arch.png) no-repeat center top;
}
.sec_ttl {
	text-align: center;
}
#subPage .sec_ttl {
	padding: 7.29% 0 1.56%;
}
.sec_ttlKrkr {
	width: 24px;
	margin: 0 auto;
}
.sec_ttlTxt {
	font-size: 4rem;
	font-weight: 700;
	margin-top: 30px;
}
.sec_subTtl {
	font-size: 2rem;
}
.sec_tableWrap {
}
.sec_table {
	width: 100%;
	line-height: 1.5;
	background: rgba(21, 31, 64, 0.1);
	border: 1px rgba(21, 31, 64, 0.15) solid;
	border-radius: 30px;
	border-collapse: separate;
	overflow: hidden;
}
.sec_table th,
.sec_table td {
	padding: 15px 5px;
	/* border: 1px rgba(21, 31, 64, 0.15) solid; */
}
.sec_table th {
	font-weight: 700;
	background: #a2c8fa;
}
.sec_table th + th,
.sec_table td + td {
	border-left: 1px rgba(21, 31, 64, 0.15) solid;
}
.sec_table tbody th,
.sec_table tbody td,
.sec_table tr + tr td {
	border-top: 1px rgba(21, 31, 64, 0.15) solid;
}

@media screen and (max-width: 767px) {
	body {
		min-width: initial;
	}
	body#index {
		background: url(../images/index_bg_sp.jpg) no-repeat center 50px;
		background-size: contain;
	}
	body#subPage {
		background: url(../images/subPage_bg_sp.jpg) no-repeat center top;
		background-size: contain;
	}	
	.wrap {
		font-size: 1.4rem;
	}
	.content {
		padding-top: 50px;
	}
	.inner {
		width: 100%;
		padding-right: 4%;
		padding-left: 4%;
	}
	.shadow {
		box-shadow: none;
	}
	.sec_skyArch {
		padding-top: 16%;
		background: url(../images/arch_sp.png) no-repeat center top;
		background-size: 128% auto;
	}
	#subPage .sec_ttl {
		padding: 10.67% 0 8%;
	}
	.sec_ttlTxt {
		font-size: 2.4rem;
		margin-top: 15px;
	}
	.sec_subTtl {
		font-size: 1.6rem;
	}
	.sec_table {
		border-radius: 15px;
	}
	.sec_table th,
	.sec_table td {
		padding: 15px 5px;
	}
}

/*--------------------------------------------------
	header
--------------------------------------------------*/
header {
	position: fixed;
	top: 0;
	left: 0;
	display: flex;
	width: 100%;
	z-index: 100;
}
header a,
header a:link,
header a:visited {
	color: initial;
}
.header_bar {
	display: flex;
	align-items: center;
	width: 100%;
	height: 60px;
	white-space: nowrap;
	padding: 0 1.56% 0 0;
	background: rgba(255,255,255,0.8);
}
.header_label {
	flex-shrink: 0;
	align-self: flex-start;
	width: 23.44%;
	min-width: 350px;
	padding: 1.5em 4em 1em 2.5em;
	background: #151f40;
	border-bottom-right-radius: 60px;
}
.header_subTxt {
	font-size: clamp(8px, 0.6vw, 12px);
	letter-spacing: 0.2em;
	color: #fff;
	margin-left: 17%;
}
.header_logo {
	margin-top: 3px;
}
.header_logo img {
	width: 100%;
	max-width: initial;
}

.header_hamburger {
	display: none;
}
.header_menu {
	display: flex;
	font-size: clamp(10px, 1.2vw, 16px);
	font-weight: 700;
	margin: 0 2em;
}
.header_menu li + li {
	margin-left: 2em;
}
.header_menuCurrent {
	color: #b777db;
}

.header_tel {
	text-align: right;
	font-size: clamp(18px, 0.9vw, 24px);
	font-weight: 700;
	margin-left: auto;
}
.header_tel a {
	font-size: clamp(24px, 1.6vw, 32px);
	margin-left: 10px;
}

@media screen and (max-width: 767px) {
	header a,
	header a:link,
	header a:visited {
		color: #fff;
	}
	.header_bar {
		height: 50px;
		padding: 0 4% 0 0;
		background: #151f40;
	}
	.header_label {
		width: 254px;
		min-width: initial;
		padding: 8px 0 0 4%;
		border-bottom-right-radius: initial;
	}
	.header_subTxt {
		display: none;
	}
	.header_logo {
		margin-top: 3px;
	}

	.header_hamburger {
		position: fixed;
		top: 10px;
		right: 4%;
		display: block;
		width: 30px;
		cursor: pointer;
		z-index: 300;
	}
	.header_hamburger span {
		display: block;
		height: 3px;
		width: 100%;
		margin: 5px 0;
		background-color: #fff;
		transition: 0.4s;
	}
	.header_nav {
		position: fixed;
		top: 0;
		right: 0;
		width: 66.67%;
		height: 100%;
		padding: 16% 6%;
		background: rgba(21, 31, 64, 0.9);
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.5s ease;
		z-index: 200;
	}
	.header_nav.open {
		opacity: 1;
		pointer-events: auto;
	}
	.header_hamburger.active span:nth-child(1) {
		transform: rotate(45deg) translate(5px, 5px);
	}
	.header_hamburger.active span:nth-child(2) {
		opacity: 0;
	}
	.header_hamburger.active span:nth-child(3) {
		transform: rotate(-45deg) translate(6px, -6px);
	}
	.header_menu {
		display: block;
		font-size: 2rem;
		margin: initial;
	}
	.header_menu li + li {
		margin-top: 20px;
		margin-left: initial;
		padding-top: 20px;
		border-top: 1px rgba(255, 255, 255, 0.1) solid;
	}

	.header_tel {
		position: fixed;
		bottom: 0;
		left: 0;
		display: block;
		width: 100%;
		text-align: center;
		font-size: 24px;
		color: #fff;
		margin-left: initial;
		padding: 10px 0 12px;
		background: linear-gradient(to bottom,  rgba(135,119,219,1) 0%,rgba(183,119,219,1) 100%);
		box-shadow: 0 0 40px rgba(21,31,64,0.3); 
		z-index: 100;
	}
	header .header_tel a,
	header .header_tel a:link,
	header .header_tel a:visited {
		font-size: 32px;
		color: #fff;
	}
}

/*--------------------------------------------------
	content
--------------------------------------------------*/
/*---- .fv ----*/
.fv {
	text-align: center;
}
.fv_logomark {
	padding-top: 9.38%;
}
.fv_catch {
	font-size: 4rem;
	font-weight: 700;
	padding: 1.04% 0 9.38%;
}
.fv_intro {
	padding-top: 8.33%;
	background: url(../images/arch.png) no-repeat center top;
}
.fv_lead {
	line-height: 2.2;
	font-size: 2rem;
}
.fv_lead p + p {
	margin-top: 1em;
}
.fv_photo {
	display: flex;
	justify-items: center;
	margin-top: 80px;
}
.fv_photo li {
	width: 25%;
}
.fv_photo li img {
	width: 100%;
	max-width: initial;
}

@media screen and (max-width: 767px) {
	.fv_logomark {
		width: 22.13%;
		margin: 0 auto;
		padding-top: 10.67%;
	}
	.fv_catch {
		line-height: 1.8;
		font-size: 2rem;
		padding: 0 0 32%;
	}
	.fv_intro {
		padding-top: 21.33%;
		background: url(../images/arch_sp.png) no-repeat center top;
		background-size: 128% auto;
	}
	.fv_lead {
		line-height: 1.8;
		text-align: left;
		font-size: 1.4rem;
	}
	.fv_photo {
		flex-wrap: wrap;
		margin-top: 40px;
	}
	.fv_photo li {
		width: 50%;
	}
}


/*---- .sec_area ----*/
.sec_area {
	padding-top: 100px;
}
.area_block {
	display: flex;
	justify-content: center;
	align-items: center;
	line-height: 1.8;
	margin-top: 40px;
}
.area_figure {
	width: 50%;
	padding: 0 10px;
}
.area_detail {
	width: 50%;
	padding-left: 40px;
}
.area_lead {
	font-size: 2.4rem;
}
.area_txt {
	margin-top: 40px;
	padding-top: 40px;
	border-top: 1px rgba(21, 31, 64, 0.2) solid;
}

@media screen and (max-width: 767px) {
	.sec_area {
		padding-top: 60px;
	}
	.area_block {
		display: block;
		margin-top: 20px;
	}
	.area_figure {
		width: 100%;
		padding: initial;
	}
	.area_detail {
		width: 100%;
		padding-left: initial;
	}
	.area_lead {
		font-size: 1.6rem;
	}
	.area_txt {
		margin-top: 20px;
		padding-top: 20px;
		border-top: 1px rgba(21, 31, 64, 0.15) solid;
	}
}


/*---- .sec_about ----*/
.about_intro {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.about_message {
	width: 75%;
	line-height: 1.8;
	padding-right: 3.33%;
}
.about_messageTtl {
	font-size: 2.4rem;
}
.about_messageTxt {
	margin-top: 30px;
}
.about_messageTxt p:not([class]) + p:not([class]) {
	margin-top: 1em;
}
.about_doctor {
	width: 25%;
	border-radius: 60px;
	overflow: hidden;
}

.about_prof {
	display: flex;
	justify-content: space-between;
	line-height: 1.5;
	margin-top: 60px;
	padding-top: 60px;
	border-top: 1px rgba(21, 31, 64, 0.15) solid;
}
.about_profCol {
	width: 50%;
}
.about_license li {
	margin-top: 10px;
	text-indent: -1em;
	padding-left: 1em;
}
.about_history li {
	display: flex;
	margin-top: 10px;
}
.about_historyYear {
	width: 6em;
}
.about_historyCont {
	width: calc(100% - 6em);
}

.about_block {
	line-height: 1.5;
	margin-top: 80px;
	padding: 60px 80px;
	background: rgba(21, 31, 64, 0.1);
	border-radius: 60px;
}
.about_blockRow + .about_blockRow {
	margin-top: 60px;
}
.about_blockTtl {
	font-size: 2rem;
	font-weight: 700;
}
.about_designate {
	margin-top: 10px;
}
.about_designate li {
	position: relative;
	padding-left: 1.5em;
}
.about_designate-1 li + li,
.about_designate-3 li + li {
	margin-top: 10px;
}
.about_designate li::before {
	content: "\f14a";
	position: absolute;
	left : 0;
	font-family: "Font Awesome 6 Free";
}
.about_designate-2 {
	display: flex;
	flex-wrap: wrap;
}
.about_designate-2 li {
	width: 50%;
}
.about_designate-2 li:nth-child(n+3) {
	margin-top: 10px;
}

@media screen and (max-width: 767px) {
	.about_intro {
		display: block;
	}
	.about_message {
		width: 100%;
		padding-right: initial;
	}
	.about_messageTtl {
		text-align: center;
		font-size: 1.6rem;
	}
	.about_messageTxt {
		margin-top: 20px;
	}
	.about_doctor {
		width: 57.97%;
		margin: 20px auto 0;
		border-radius: 30px;
	}

	.about_prof {
		display: block;
		margin-top: 40px;
		padding-top: 30px;
	}
	.about_profCol {
		width: 100%;
	}
	.about_profCol + .about_profCol {
		margin-top: 30px;
	}

	.about_block {
		margin-top: 40px;
		padding: 30px 4%;
		border-radius: 30px;
	}
	.about_blockRow + .about_blockRow {
		margin-top: 30px;
	}
	.about_blockTtl {
		font-size: 1.6rem;
	}
	.about_designate-2 {
		display: block;
		flex-wrap: initial;
	}
	.about_designate-2 li {
		width: 100%;
	}
	.about_designate-2 li + li {
		margin-top: 10px;
	}
}


/*---- .sec_service ----*/
.service_block {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.service_detail {
	width: 61.67%;
	line-height: 1.8;
	padding-right: 5%;
}
.service_cont + .service_cont {
	margin-top: 40px;
}
.service_tableWrap {
	text-align: center;
	margin-top: 5px;
}
.service_table thead th:nth-child(n+2) {
	width: 10.5%;
}
.saturday {
	color: #1b41e2;
}
.sunday {
	color: #e21c26;
}
.service_tableWrap + p {
	margin-top: 20px;
}
.service_note {
	font-size: 1.2rem;
	margin-top: 10px;
	text-indent: -1em;
	padding-left: 1em;
}
.service_photo {
	width: 38.33%;
	border-radius: 60px;
	overflow: hidden;
}

@media screen and (max-width: 767px) {
	.service_block {
		display: block;
	}
	.service_detail {
		width: 100%;
		padding-right: initial;
	}
	.service_table {
		font-size: 1.1rem;
	}
	.small {
		font-size: 0.8rem;
	}
	.service_note {
		font-size: 1.1rem;
	}
	.service_photo {
		width: 100%;
		margin-top: 20px;
		border-radius: 30px;
	}
}


/*---- .sec_price ----*/
.price_block {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.price_detail {
	width: 61.67%;
	line-height: 1.8;
	padding-right: 5%;
}
.price_list {
	line-height: 1.5;
	margin-top: 20px;
}
.price_list li {
	text-indent: -1.5em;
	padding-left: 1.5em;
	list-style-type: decimal;
	list-style-position: inside;
}
.price_list li + li {
	margin-top: 5px;
}
.price_tableWrap {
	text-align: center;
	margin-top: 20px;
}
.price_table {
	font-size: 1.8rem;
}
.price_table th {
	width: 50%;
}
.price_note {
	font-size: 1.2rem;
	margin-top: 10px;
	text-indent: -1em;
	padding-left: 1em;
}
.price_note + p {
	margin-top: 20px;
}
.price_photo {
	width: 38.33%;
	border-radius: 60px;
	overflow: hidden;
}

@media screen and (max-width: 767px) {
	.price_block {
		display: block;
	}
	.price_detail {
		width: 100%;
		padding-right: initial;
	}
	.price_table {
		font-size: 1.4rem;
	}
	.price_note {
		font-size: 1.1rem;
	}
	.price_photo {
		width: 100%;
		margin-top: 20px;
		border-radius: 30px;
	}
}


/*---- .sec_faq ----*/
.faq_list .faq_item + .faq_item {
	margin-top: 60px;
}
.faq_question {
	position: relative;
	line-height: 1.5;
	font-size: 2rem;
	font-weight: 700;
	padding: 20px 30px 20px 80px;
	background: rgba(21, 31, 64, 0.1);
	border-radius: 60px;
}
.faq_question::before,
.faq_answer::before {
	position: absolute;
	top: 0;
	left: 30px;
	line-height: 1;
	height: 1em;
	font-size: 3.2rem;
	font-weight: 700;
}
.faq_question::before {
	content: "Q.";
	bottom: 0;
	margin: auto;
}
.faq_answer {
	position: relative;
	line-height: 1.8;
	margin-top: 20px;
	padding: 0 30px 0 80px;
}
.faq_answer::before {
	content: "A.";
	color: #e21c26;
}

@media screen and (max-width: 767px) {
	.faq_list .faq_item + .faq_item {
		margin-top: 30px;
	}
	.faq_question {
		font-size: 1.6rem;
		padding: 15px 4% 15px 13.04%;
		border-radius: 30px;
	}
	.faq_question::before,
	.faq_answer::before {
		left: 4%;
		font-size: 2rem;
	}
	.faq_question::before {
		top: 15px;
		bottom: initial;
	}
	.faq_answer {
		margin-top: 15px;
		padding: 0 4% 0 13.04%;
	}
}


/*--------------------------------------------------
	footer
--------------------------------------------------*/
footer {
	color: #fff;
	margin-top: 120px;
	padding: 80px 0 40px;
	background: linear-gradient(to bottom,  rgba(21,31,64,1) 0%,rgba(71,66,111,1) 100%);
}
.footer_wrap {
	display: flex;
	justify-content: space-between;
}
.footer_info {
	width: 50%;
	line-height: 1.8;
}
.footer_name {
	font-size: 2rem;
}
.footer_ad {
	margin-top: 20px;
}
.footer_sns {
	display: flex;
	align-items: center;
	font-size: 3.2rem;
	margin-top: 20px;
}
.footer_sns li + li {
	margin-left: 20px;
}
.footer_sns li a {
	color: #fff;
}
.footer_designate {
	margin-top: 60px;
}
.footer_gmap {
	width: 50%;
	padding-left: 40px;
}
.footer_gmapWrap {
	position: relative;
	width: 100%;
	padding-top: 66.66%;
	height: 0;
}
.footer_gmapWrap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: 60px;
}
.footer_copy {
	text-align: center;
	font-size: 1.2rem;
	color: rgba(255,255,255,0.6);
	margin-top: 40px;
}

@media screen and (max-width: 767px) {
	footer {
		margin-top: 60px;
		padding: 40px 0 74px;
	}
	.footer_wrap {
		display: block;
	}
	.footer_info {
		width: 100%;
	}
	.footer_name {
		font-size: 1.6rem;
	}
	.footer_ad {
		margin-top: initial;
	}
	.footer_sns {
		font-size: 3.2rem;
		margin-top: 10px;
	}
	.footer_designate {
		margin-top: 10px;
	}
	.footer_gmap {
		width: 100%;
		margin-top: 30px;
		padding-left: initial;
	}
	.footer_gmapWrap iframe {
		border-radius: 30px;
	}
	.footer_copy {
		font-size: 1rem;
		margin-top: 20px;
	}
}
