@charset "UTF-8";



/* 施術共通：医師メッセージ
---------------------------------------------------------*/
.menu_dr {
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
}
.menu_dr .img_box {
	width: 19%;
	max-width: 200px;
	position: relative;
	z-index: 1;
}
.menu_dr .fukiadshi {
	width: 79%;
	max-width: 960px;
	position: relative;
	z-index: 0;
}
.menu_dr .img_box p {
	text-align: center;
	font-size: min(135%,2.2vw);
	letter-spacing: .15em;
	line-height: 1.3em;
	position: absolute;
	margin: auto;
	left: 0;
	right: 0;
	bottom: 0;
}
.menu_dr .img_box span {
	display: block;
	font-size: 80%;
	letter-spacing: .1em;
	line-height: 1.3em;
	margin-bottom: .2em;
}
.menu_dr .fukiadshi {
	box-sizing: border-box;
	background: #f2ebdd;
	padding: 40px 4%;
}
.menu_dr .fukiadshi::before {
	content: "";
	position: absolute;
	width: 3vw;
	max-width: 40px;
	aspect-ratio: 4 / 3;
	background: url("../images/menu/fukidashi@2x.png") no-repeat right center;
	background-size: 100% 100%;
	right: calc(100% - 1px);
	top: 3.0em;
}
.menu_dr .fukiadshi .dr_index {
	letter-spacing: .1em;
	line-height: 1.4em;
	padding-bottom: .8em;
	border-bottom: solid 1px #d5bd8f;
	margin-bottom: 1.0em;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.menu_dr .img_box p {
	font-size: 2.4vw;
	letter-spacing: .05em;
}
.menu_dr .img_box span {
	letter-spacing: .05em;
}
.menu_dr .fukiadshi {
	padding: 4% 4%;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
.menu_dr {
	display: block;
	background: #f2ebdd;
	padding: 3% 6% 6%;
}
.menu_dr .img_box {
	width: 100%;
	max-width: 100%;
	margin: 0 auto -3vw;
	display: flex;
    justify-content: center;
    align-items: center;
}
.menu_dr .fukiadshi {
	width: 100%;
	max-width: 100%;
}
.menu_dr .img_box div {
	width: 25vw;
}
.menu_dr .img_box p {
	text-align: left;
	font-size: 130%;
	letter-spacing: .1em;
	position: static;
	margin: 0;
}
.menu_dr .fukiadshi {
	background: none;
	padding: 0;
}
.menu_dr .fukiadshi::before {
	display: none;
}
}



/* 施術共通：診療ページの症例
---------------------------------------------------------*/
#case .contentpage_bg2 {
	position: relative;
}
#case .contentpage_bg2 .btm_btn {
	position: absolute;
	margin: auto;
	left: 0;
	right: 0;
	bottom: 0;
	transform: translateY(50%);
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
#case {
	margin-bottom: 20%;
}
}



/* 施術一覧：カテゴリー一覧
---------------------------------------------------------*/
.menu_cat_list {
	display: flex;
    flex-wrap: wrap;
}
.menu_cat_list li {
	width: 31.2%;
	margin-right: 3.2%;
	margin-top: 40px;
	position: relative;
}
.menu_cat_list li:nth-child(3n),
.menu_cat_list li:last-child {
	margin-right: 0;
}
.menu_cat_list li:nth-child(-n+3) {
	margin-top: 0;
}
.menu_cat_list li::after {
	content: "";
	position: absolute;
	width: 100%;
	height: 6vw;
	max-height: 50px;
	left: 0;
	top: 100%;
	background: url(../images/common/shadow1@2x.png) no-repeat top left;
    background-size: 100% 100%;
}
.menu_cat_list a {
	display: block;
	background: #f1f0ee;
	position: relative;
	font-size: min(100%,1.5vw);
	letter-spacing: .1em;
	line-height: 1.4em;
	height: 8.5em;
}
.menu_cat_list a::before {
	content: "";
	position: absolute;
	z-index: 0;
	width: 2.0em;
	height: 2.0em;
	background: #d5bd8f url("../images/common/arrow1@2x.png") no-repeat center center;
	background-size: contain;
	border-radius: 50%;
	right: 7%;
	top: 50%;
	transform: translateY(-50%);
}
.menu_cat_list a:has(.cat_thm)::before {
	display: none;
}
.menu_cat_list a p {
	position: absolute;
	z-index: 2;
	width: 84%;
	margin: auto;
	left: 0;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	box-sizing: border-box;
	word-break: break-all;
	text-shadow: 0px 0px 10px rgba(241, 240, 238, 1),
		0px 0px 10px rgba(241, 240, 238, 1),
		0px 0px 10px rgba(241, 240, 238, 1),
		0px 0px 10px rgba(241, 240, 238, 1),
		0px 0px 10px rgba(241, 240, 238, 1);
}
.menu_cat_list a p .cat_ttl,
.menu_cat_list a p .cat_txt {
	display: block;
}
.menu_cat_list a p .cat_ttl {
	font-size: 135%;
	letter-spacing: .05em;
	line-height: 1.3em;
	padding-right: 3.0em;
}
.menu_cat_list a p .cat_txt {
	font-size: 95%;
	margin-top: .4em;
}
.menu_cat_list a p .com_clinic_sub {
	font-size: 85%;
	text-shadow: none;
	margin: 0 0 .4em;
}
.menu_cat_list .cat_thm {
	position: absolute;
	z-index: 1;
	right: 0;
	top: 0;
	height: 100%;
	aspect-ratio: 1 / 1;
	/*background: pink;*/
}
.menu_cat_list .cat_thm::before {
	content: "";
	position: absolute;
	width: 30%;
	height: 100%;
	left: 0;
	top: 0;
	background: linear-gradient(90deg,rgba(241, 240, 238, 1) 5%, rgba(241, 240, 238, 0) 100%);
}
.menu_cat_list .cat_thm img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: right center;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.menu_cat_list li {
	width: 32%;
	margin-right: 2%;
	margin-top: 4%;
}
.menu_cat_list a {
	font-size: 1.6vw;
	letter-spacing: normal;
}
.menu_cat_list a::before {
	width: 1.5em;
	height: 1.5em;
	right: 5%;
}
.menu_cat_list a p .cat_ttl {
	font-size: 140%;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
.menu_cat_list {
	display: block;
}
.menu_cat_list li {
	width: 85%;
	margin: 4% auto 0 !important;
}
.menu_cat_list li:nth-child(-n+1) {
	margin-top: 0 !important;
}
.menu_cat_list a {
	font-size: 90%;
	letter-spacing: normal;
	line-height: 1.5em;
	height: 7.0em;
}
.menu_cat_list a::before {
	width: 1.5em;
	height: 1.5em;
	right: 3%;
}
.menu_cat_list a p {
	width: 90%;
}
}



/* 施術詳細：メインイメージ
---------------------------------------------------------*/
.m_img.type_menu .m_title .ft_no {
	margin: 0;
}
.m_img.type_menu .m_title .com_clinic_sub {
	font-size: 115%;
	padding: .3em 1.5em;
	margin-bottom: .8em;
}
.m_img.type_menu .m_title .m_catchcopy {
	font-size: 145%;
	letter-spacing: .1em;
	line-height: 1.2em;
	margin-bottom: .4em;
}
.m_img.type_menu .m_title .m_name {
	font-size: 350%;
	letter-spacing: .1em;
	line-height: 1.2em;
}
.m_img.type_menu .m_title .m_point {
	font-size: 105%;
	letter-spacing: .1em;
	line-height: 1.4em;
	word-break: break-all;
	margin-top: 1.0em;
    justify-content: center;
	gap: 0 2%;
}
.m_img.type_menu .m_title .m_point li {
	width: 32%;
	max-width: 14em;
	height: 4.5em;
	position: relative;
	background: #C9AB71;
	background: linear-gradient(90deg,rgba(201, 171, 113, 0) 0%, rgba(201, 171, 113, 1) 30%, rgba(201, 171, 113, 1) 70%, rgba(201, 171, 113, 0) 100%);
}
.m_img.type_menu .m_title .m_point li::before {
	content: "";
	position: absolute;
	z-index: 0;
	width: 2.5em;
	height: 2.5em;
	background: url("../images/common/check1@2x.png") no-repeat center center;
	background-size: contain;
	left: 3%;
	top: 0;
	transform: translateY(-40%);
}
.m_img.type_menu .m_title .m_point li p {
	position: absolute;
	z-index: 1;
	margin: auto;
	left: 0;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.m_img.type_menu .m_title .m_catchcopy {
	letter-spacing: .05em;
}
.m_img.type_menu .m_title .m_name {
	letter-spacing: .05em;
}
.m_img.type_menu .m_title .m_point {
	font-size: 120%;
	letter-spacing: .05em;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
.contentpage .m_img.type_menu .m_title {
	position: static;
	transform: none;
}
.m_img.type_menu .m_title .m_txt {
	width: 94%;
	position: absolute;
	margin: auto;
	left: 0;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}
.m_img.type_menu .m_title .m_point {
	width: 96%;
	position: absolute;
	margin: auto;
	left: 0;
	right: 0;
	top: 100%;
}
.m_img_area:has(.m_point) {
	margin-bottom: 30vw;
}

.m_img.type_menu .m_title .com_clinic_sub {
	font-size: 90% !important;
}
.m_img.type_menu .m_title .m_catchcopy {
	font-size: 110%;
	letter-spacing: normal;
}
.m_img.type_menu .m_title .m_name {
	font-size: 165%;
	letter-spacing: normal;
}
.m_img.type_menu .m_title .m_point {
	margin-top: 5%;
	font-size: 95%;
	line-height: 1.2em;
	letter-spacing: normal;
}
.m_img.type_menu .m_title .m_point li {
	background: #C9AB71;
	height: 5em;
}
}



/* 施術詳細：目次、共通
---------------------------------------------------------*/
.menu_single .box1:not(:has(.menu_anchor li)) {
	display: none;
}
.menu_anchor {
	box-sizing: border-box;
	border: solid 1px #c6c6c6;
	background: #fff;
	padding: 50px 3%;
}
.menu_anchor ul {
	width: 100%;
	max-width: 1110px;
	margin-left: auto;
	margin-right: auto;
    justify-content: space-between;
    flex-wrap: wrap;
}
.menu_anchor ul li {
	width: 48.5%;
	border-bottom: solid 1px #cccccc;
	letter-spacing: .05em;
	line-height: 1.4em;
	margin-top: .8em;
}
.menu_anchor ul li:nth-child(-n+2) {
	margin-top: 0;
}
.menu_anchor ul a {
	display: block;
	padding-left: 2.5em;
	padding-bottom: 1.0em;
	position: relative;
}
.menu_anchor ul a::before {
	content: "";
	position: absolute;
	width: 1.7em;
	height: 1.7em;
	background: #d5bd8f url("../images/common/arrow1@2x.png") no-repeat center center;
	background-size: 120% auto;
	border-radius: 50%;
	transform: rotate(90deg);
	left: 0;
	top: -.2em;
}

.menu_index1 {
	font-size: min(145%,2.2vw);
	letter-spacing: .15em;
	line-height: 1.5em;
	margin-bottom: .5em;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.menu_anchor {
	padding: 5% 3%;
}
.menu_anchor ul a {
	padding-left: 2.0em;
}
.menu_anchor ul a::before {
	width: 1.4em;
	height: 1.4em;
	top: 0;
}

.menu_index1 {
	font-size: 2.7vw;
	letter-spacing: .1em;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
.menu_anchor {
	padding: 5% 4% 3%;
}
.menu_anchor ul {
	display: block;
}
.menu_anchor ul li {
	width: 100%;
	letter-spacing: normal;
	margin-top: .8em !important;
}
.menu_anchor ul li:last-child {
	border-bottom: none;
}
.menu_anchor ul li:nth-child(-n+1) {
	margin-top: 0 !important;
}
.menu_anchor ul a {
	padding-bottom: .5em;
	padding-left: 1.8em;
}
.menu_anchor ul a::before {
	width: 1.4em;
	height: 1.4em;
	left: 0;
	top: .1em;
}

.menu_index1 {
	font-size: 130%;
	letter-spacing: normal;
	margin-bottom: .3em;
}
}



/* about
---------------------------------------------------------*/
.menu_single .box1 .about_index {
	text-align: center;
	font-size: min(295%,4.5vw);
	letter-spacing: .1em;
	line-height: 1.4em;
	padding-bottom: .8em;
	margin-bottom: 1.0em;
	position: relative;
}
.menu_single .box1 .about_index::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 1px;
	left: 0;
	bottom: 0;
	background: #756159;
	background: linear-gradient(90deg,rgba(117, 97, 89, 0) 0%, rgba(114, 94, 87, 1) 50%, rgba(117, 97, 89, 0) 100%);
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.menu_single .box1 .about_index {
	letter-spacing: .05em;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
.menu_single .box1 .about_index {
	font-size: 160%;
	letter-spacing: normal;
	padding-bottom: .8em;
	margin-bottom: 1.0em;
}
}



/* recommend
---------------------------------------------------------*/
#recommend .bg {
	background: rgba(167,149,100,0.2) url("../images/menu/bg1@2x.png") no-repeat left top;
	background-size: 532px auto;
	position: relative;
	overflow: hidden;
	padding: 70px 3%;
}
#recommend .abs_txt {
	font-size: min(590%,9.0vw);
	letter-spacing: .05em;
	line-height: 1.0em;
	position: absolute;
	z-index: 0;
	right: 4%;
	top: -.1em;
}
#recommend .ttl,
#recommend .list {
	position: relative;
	z-index: 1;
}
#recommend .ttl {
	font-size: min(265%,4.2vw);
	letter-spacing: .15em;
	line-height: 1.5em;
	margin-left: 4%;
	margin-bottom: .8em;
}
#recommend .list {
	width: 100%;
	max-width: 1120px;
	margin-left: auto;
	margin-right: auto;
	font-size: min(130%,2.2vw);
	letter-spacing: .1em;
	line-height: 1.4em;
	column-count: 2;
}
#recommend .list li {
	box-sizing: border-box;
	display: inline-block;
	width: 100%;
	border-bottom: solid 1px #fff;
	padding: 1.2em 0;
	padding-left: 2.2em;
	position: relative;
}
#recommend .list li::before {
	content: "";
	position: absolute;
	width: 2.1em;
	height: 2.1em;
	background: url("../images/common/check2@2x.png") no-repeat center top;
	background-size: contain;
	left: 0;
	top: .7em;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
#recommend .bg {
	background-size: 50% auto;
	padding: 6% 3%;
}
#recommend .ttl {
	letter-spacing: .05em;
	margin-left: 2%;
	margin-bottom: .5em;
}
#recommend .list {
	font-size: 2.4vw;
	letter-spacing: .05em;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
#recommend .bg {
	background-position: -10vw top;
	background-size: 70% auto;
	padding: 7% 4% 5%;
}
#recommend .abs_txt {
	font-size: 300%;
	letter-spacing: normal;
}
#recommend .ttl {
	font-size: 140%;
	letter-spacing: normal;
	margin-left: 0;
	margin-bottom: .5em;
}
#recommend .list {
	font-size: 105%;
	letter-spacing: normal;
	column-count: 1;
}
#recommend .list li {
	padding: .8em 0;
	padding-left: 2.0em;
}
#recommend .list li:last-child {
	border-bottom: none;
}
#recommend .list li::before {
	width: 2.1em;
	top: .5em;
}
}



/* downtime
---------------------------------------------------------*/
#downtime .com_index2 {
	margin-bottom: 1.5em;
}
#downtime .ready_box {
	padding: 60px 4%;
}
#downtime .ready_box .ttl {
	text-align: center;
	font-size: min(180%,3.0vw);
	letter-spacing: .1em;
	line-height: 1.5em;
}
#downtime .ready_box .in_box {
	margin-top: 50px;
	border-top: solid 1px #cccccc;
	padding-top: 50px;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
#downtime .com_index2 {
	margin-bottom: 1.0em;
}
#downtime .ready_box {
	padding: 5% 4%;
}
#downtime .ready_box .ttl {
	letter-spacing: .05em;
}
#downtime .ready_box .in_box {
	margin-top: 4%;
	padding-top: 4%;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
#downtime .com_index2 {
	margin-bottom: 1.0em;
}
#downtime .ready_box {
	padding: 8% 6%;
}
#downtime .ready_box .ttl {
	font-size: 140%;
	letter-spacing: normal;
}
#downtime .ready_box .in_box {
	margin-top: 8%;
	padding-top: 8%;
}
}



/* reason
---------------------------------------------------------*/
#reason .bg {
	position: relative;
}
#reason .bg::before {
	content: "";
	position: absolute;
	z-index: 0;
	width: 100%;
	height: 30vw;
	max-height: 420px;
	left: 0;
	top: 0;
	transform: translateY(-10%);
	background: url("../images/menu/bg2@2x.png") no-repeat left top;
	background-size: contain;
}
#reason .title_box .ft_no,
#reason .item_list {
	position: relative;
	z-index: 1;
}
#reason .title_box {
	text-align: center;
}
#reason .title_box .ft_cin {
	font-size: min(590%,9.0vw);
	letter-spacing: .1em;
	line-height: 1.0em;
	position: relative;
}
#reason .title_box .ft_cin::before {
	content: "";
	position: absolute;
	z-index: -1;
	width: 100vw;
	height: 30vw;
	max-height: 330px;
	left: 50%;
	top: 50%;
	transform: translateX(-50%);
	background: linear-gradient(to bottom,  rgba(241,240,238,1) 0%,rgba(241,240,238,0) 100%); 
	background-size: 100% auto;
}
#reason .title_box .ft_no {
	letter-spacing: .1em;
	line-height: 1.5em;
	margin-top: .2em;
}
#reason .title_box .ft_no span {
	display: inline-block;
	vertical-align: middle;
}

#reason .item_list li {
	padding-bottom: 60px;
	border-bottom: solid 1px #ccc;
	margin-bottom: 60px;
	position: relative;
}
#reason .item_list li:last-child {
	padding-bottom: 0;
	border-bottom: none;
	margin-bottom: 0;
}
#reason .item_list li::before {
	content: "01";
	z-index: -1;
	display: block;
	position: absolute;
	margin: auto;
	left: 0;
	right: 0;
	top: -.1em;
	text-align: center;
	font-family: "Cinzel", serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	color: #f1f0ee;
	font-size: min(790%,12vw);
	letter-spacing: .1em;
	line-height: 1.0em;
}
#reason .item_list .item_ttl {
	text-align: center;
	letter-spacing: .1em;
	line-height: 1.5em;
	padding: .8em 0;
}
#reason .item_list li:nth-child(2)::before {content: "02";}
#reason .item_list li:nth-child(3)::before {content: "03";}
#reason .item_list li:nth-child(4)::before {content: "04";}
#reason .item_list li:nth-child(5)::before {content: "05";}
#reason .item_list li:nth-child(6)::before {content: "06";}
#reason .item_list li:nth-child(7)::before {content: "07";}
#reason .item_list li:nth-child(8)::before {content: "08";}
#reason .item_list li:nth-child(9)::before {content: "09";}
#reason .item_list li:nth-child(10)::before {content: "10";}
#reason .item_list li:nth-child(11)::before {content: "11";}
#reason .item_list li:nth-child(12)::before {content: "12";}
#reason .item_list li:nth-child(13)::before {content: "13";}
#reason .item_list li:nth-child(14)::before {content: "14";}
#reason .item_list li:nth-child(15)::before {content: "15";}
#reason .item_list li:nth-child(16)::before {content: "16";}
#reason .item_list li:nth-child(17)::before {content: "17";}
#reason .item_list li:nth-child(18)::before {content: "18";}
#reason .item_list li:nth-child(19)::before {content: "19";}
#reason .item_list li:nth-child(20)::before {content: "20";}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
#reason .title_box .ft_no {
	letter-spacing: .05em;
}

#reason .item_list li {
	padding-bottom: 5%;
	margin-bottom: 5%;
}
#reason .item_list .item_ttl {
	letter-spacing: .05em;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
#reason .title_box .ft_cin {
	font-size: 270%;
	letter-spacing: .05em;
}
#reason .title_box .ft_no {
	letter-spacing: normal;
	line-height: 1.3em;
	margin-top: .2em;
}

#reason .item_list li {
	padding-bottom: 6%;
	margin-bottom: 6%;
}
#reason .item_list li::before {
	font-size: 350%;
	letter-spacing: normal;
	top: -.3em;
}
#reason .item_list .item_ttl {
	letter-spacing: normal;
	line-height: 1.4em;
	padding: .5em 0;
}
}



/* 
---------------------------------------------------------*/

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
}