@charset "UTF-8";


/* ========================================================
  
  common

======================================================== */

/*---------------------------------------------------------
anime
---------------------------------------------------------*/
.anm_path {
	position: absolute;
	display: block;
	opacity: 0;
	transition: opacity .5s;
	pointer-events: none;
}
.anm_path mask {
	fill: none;
	stroke: #FFF;
	stroke-width: 210px;
	stroke-dasharray: 1600px;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.anm_path.anime_on {
	opacity: 1;
}
.anm_path.anime_on mask {
    animation: pathAnm1 2s .5s both;
}

.m_img .anm_path {
	width: min(61vw,908px);
	left: 0;
	top: 0;
	translate: -18% -5%;
}

#endoscopy .obj_zero {
	position: absolute;
	width: min(38vw,570px);
	right: 8%;
	top: 0;
	translate: 0 -5%;
}
#endoscopy .anm_path {
	position: relative;
}
#endoscopy .anm_path mask {
	stroke-dasharray: 1500px;
}
#endoscopy .anm_path.anime_on mask {
    animation-name: pathAnm2;
}

#feature .anm_path {
	width: min(91vw,1360px);
	left: 0;
	top: 0;
	translate: 0 -30%;
}

#doctor .anm_path {
	width: min(93vw,1383px);
	left: 65%;
	top: 0;
	translate: -50% -5%;
}
#doctor .anm_path mask {
	stroke-width: 500px;
}

@keyframes pathAnm1 {
	0% {stroke-dashoffset: 1600px;	}
	100% {	stroke-dashoffset: 0px;	}
}
@keyframes pathAnm2 {
	0% {stroke-dashoffset: 1500px;	}
	100% {	stroke-dashoffset: 0px;	}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.m_img .anm_path {
	width: 110vw;
	translate: -26% -3%;
}

#endoscopy .obj_zero {
	width: 55vw;
	right: -8%;
	translate: 0 -12%;
}

#feature .anm_path {
	width: 100vw;
}

#doctor .anm_path {
	width: 120vw;
	left: 55%;
	translate: -50% -8%;
}
}


/*---------------------------------------------------------
com_obj
---------------------------------------------------------*/
#concept .com_obj,
#endoscopy .obj_zero .com_obj {
    width: 45%;
	left: 0;
	top: 50%;
	translate: -16% -34%;
	z-index: 1;
	animation: none;
}
#concept .cpt_img::before,
#concept .cpt_img .com_obj,
#endoscopy .obj_zero .com_obj {
	opacity: 0;
	transition: opacity 2s 1.2s;
}
#concept .cpt_img.anime_on::before,
#concept .cpt_img.anime_on .com_obj,
#endoscopy .obj_zero.anime_on .com_obj {
	opacity: 1;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#news .com_obj {
	left: 0;
	bottom: 0;
	translate: -20% 30%;
}
#reason .com_obj {
    width: min(58vw,860px);
	left: 40%;
	top: 0;
	translate: 0 -50%;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#news .com_obj {
	left: -15%;
	top: 85%;
}
#reason .com_obj {
	right: -10%;
	top: 0;
	translate: 0 -40%;
}
}



/* ========================================================
  
  FV

======================================================== */

/*---------------------------------------------------------
m_img
---------------------------------------------------------*/
.m_img_area {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100vh;
	min-height: min(calc(100vw * 0.8), 1120px);
	/* max-height: calc(100vw * 0.9); */
	box-sizing: border-box;
	padding-bottom: 15px;
}
/*m_img*/
.m_img {
	position: relative;
	width: calc(100% - 30px);
	max-width: 2000px;
	flex: 1;
	margin: auto;
}
.m_img::before {
	position: absolute;
	content: "";
	background: radial-gradient(rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.6) 55%, rgba(255,255,255,0) 70%);
	border-radius: 50%;
	width: min(40vw,600px);
	height: min(40vw,600px);
	left: 6%;
	top: 2%;
	transition: opacity 1s .5s;
	opacity: 0;
}
/*m_copy*/
.m_copy {
	position: absolute;
	width: 33%;
	max-width: max-content;
	left: 12%;
	top: 12%;
	transition: opacity 1s .5s;
	opacity: 0;
	z-index: 1;
}
/*m_point*/
.m_point {
	position: absolute;
	display: flex;
	justify-content: center;
	column-gap: 2.5%;
	width: 60%;
	max-width: 780px;
	right: 2%;
	bottom: 3%;
	transition: opacity 1s .5s;
	opacity: 0;
	z-index: 1;
}
.m_point > li {
	width: 31%;
}

.m_img_area.anime_on .m_img::before,
.m_img_area.anime_on .m_copy,
.m_img_area.anime_on .m_point {
	opacity: 1;
}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.m_img_area {
	height: 100svh;
}
/*m_point*/
.m_point {
	width: 65%;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.m_img_area {
	height: calc(100svh - 15vw);
	min-height: calc(100vw * 1.4);
	max-height: calc(100vw * 1.8);
	padding-bottom: 10px;
}

/*m_img*/
.m_img {
	width: calc(100% - 20px);
}
.m_img::before {
	width: 65vw;
	height: 65vw;
	left: 2%;
	top: 5%;
}
/* m_copy */
.m_copy {
	width: 62%;
	left: 5%;
	top: 8%;
}
/*m_point*/
.m_point {
	width: 96%;
	column-gap: 0;
	right: 50%;
	bottom: 15px;
	translate: 50% 0;
}
.m_point > li {
	width: 35%;
}
.m_point > li:nth-of-type(n+2) {
	margin-left: -2.5%;
}
}
/*m_img:m_slider
---------------------------------------------------------*/
.m_slider {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	right: 0;
	overflow: hidden;
	z-index: -1;
}
.m_slider li {
	position: relative;
}
.m_slider li::before {
	position: absolute;
	display: block;
	content: "";
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	transform: translateZ(0);
	translate: 0 0;
	/* transition: translate 10s cubic-bezier(1, 0.8, 1, 1); */
}
/* .m_slider li[class*=-active]::before,
.m_slider li[class*=-prev]::before {
	translate: -16vw 0;
} */
.m_slider .slide1::before {background-image: url("../images/top/m_img1@2x.jpg");}
.m_slider .slide2::before {background-image: url("../images/top/m_img2@2x.jpg");}
.m_slider .slide3::before {background-image: url("../images/top/m_img3@2x.jpg");}
.m_slider .slide4::before {background-image: url("../images/top/m_img4@2x.jpg");}

/* Tablet,Mobile (Portrait)
------------------------------------------*/
@media screen and (orientation: portrait) {

}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.m_slider .slide1::before {background-image: url("../images/top/m_img1_sp@2x.jpg");}
.m_slider .slide2::before {background-image: url("../images/top/m_img2_sp@2x.jpg");}
.m_slider .slide3::before {background-image: url("../images/top/m_img3_sp@2x.jpg");}
.m_slider .slide4::before {background-image: url("../images/top/m_img4_sp@2x.jpg");}
}




/* ========================================================
  
  main

======================================================== */

/*---------------------------------------------------------
info
---------------------------------------------------------*/
#info address {
	font-size: 88%;
	margin: 1em 0 1.2em;
}
/* #info .com_ctc_btn.btn_web {
	max-width: max-content;
	margin-top: 1em;
}
#info .com_ctc_btn.btn_web dl {
	display: flex;
	align-items: center;
}
#info .com_ctc_btn.btn_web dl dt {
	font-size: 66%;
	margin-right: 1em;
	margin-bottom: 0;
} */
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#info .inbox {
	display: grid;
	justify-content: space-between;
	grid-template-columns: 40% 56%;
}
#info .box_r {
	position: relative;
	padding-right: 40%;
}
#info .map {
	position: absolute;
	width: 36%;
	right: 0;
	top: 0;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#info {
	text-align: center;
	padding-top: 3%;
}
#info .box_l {
	margin-bottom: 8%;
}
#info .logo {
	width: 90%;
	margin-inline: auto;
}
#info address {
	margin-top: .6em;
}
#info .map {
	margin-bottom: 8%;
}
}

/*---------------------------------------------------------
WP
---------------------------------------------------------*/
.wp_list a {
	position: relative;
	display: block;
}
.wp_list .date {
	font: var(--font_fut);
	font-size: 94%;
	letter-spacing: .1em;
}
.wp_list .title {
	position: relative;
	line-height: 1.6;
}
.wp_list .title::before {
	position: absolute;
	display: block;
	font-family: 'fontello';
	content: '\e804';
	color: var(--color_dgrn);
	top: 0;
	transition: scale .5s;
}
.wp_list a:hover .title::before {
	scale: 1.5;
}
.wp_list .img_wrap {
	position: relative;
	border-radius: 8.6% / 14.7%;
	overflow: hidden;
	margin-bottom: 1em;
}
.wp_list .img_wrap::before {
	display: block;
	content: "";
	padding-top: 60%;
}
.wp_list .img_wrap img {
	position: absolute;
	display: block;
	object-fit: cover;
	width: 100%;
	height: 100%;
	inset: 0;
	margin: auto;
	transition: scale .5s;
}

.wp_list > li > a:hover {
	color: var(--color_dgrn);
}
.wp_list > li > a:hover img {
	scale: 1.05;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.wp_list .date {
	font-size: 85%;
}
.wp_list .title {
	font-size: 90%;
}
}
/*WP:news
---------------------------------------------------------*/
#news {
	background-color: var(--color_bei);
}
#news .wp_list {
	border-top: 1px solid #dad9d9;
}
#news .wp_list > li {
	border-bottom: 1px solid #dad9d9;
}
#news .wp_list .date {
	width: 7.5em;
}
#news .wp_list .title {
	position: static;
	padding-right: 2em;
}
#news .wp_list .title::before {
	right: 1em;
	top: 50%;
	translate: 0 -50%;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#news .inbox {
	display: grid;
	justify-content: space-between;
	align-items: flex-start;
	grid-template-columns: 20% 77%;
	grid-template-rows: 140px;
}
#news .com_title1 {
	align-self: flex-start;
	grid-column: 1/2;
	grid-row: 1/2;
	margin-bottom: 0;
}
#news .com_btn1 {
	align-self: flex-start;
	grid-column: 1/2;
	grid-row: 2/3;
	margin-top: 0;
}
#news .wp_list {
	grid-row: 1/3;
}
#news .wp_list a {
	display: flex;
	align-items: center;
	padding: 2em 1em;
}
#news .wp_list .title {
	flex: 1;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#news .com_title1 {
	text-align: center;
}
#news .wp_list a {
	padding: .8em 2% 1em;
}
}
/*WP:column
---------------------------------------------------------*/
#column .com_title1 {
	margin-bottom: 2.5em;
}
#column .wp_list {
	display: grid;
	justify-content: space-between;
	grid-template-columns: repeat(4,23%);
}
#column .wp_list .title {
	padding-left: 1.4em;
}
#column .wp_list .title::before {
	left: 0;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#column .inbox {
	position: relative;
}
#column .com_btn1 {
	position: absolute;
	right: 4.5%;
	top: 0;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#column .com_title1 {
	text-align: center;
	margin-bottom: 2em;
}
#column .scl_area {
	overflow-x: scroll;
}
#column .wp_list {
	width: max-content;
	column-gap: 1em;
}
#column .wp_list > li {
	width: 58vw;
}
#column .com_btn1 {
	margin-top: 10%;
}
}


/*---------------------------------------------------------
concept
---------------------------------------------------------*/
#concept .com_title1 {
	z-index: 1;
}
#concept .com_h__min {
	position: absolute;
	text-align: left;
	left: 0;
	top: 55%;
	translate: -2em -50%;
	z-index: 1;
	transition-delay: 1.2s;
}
#concept .img_wrap,
#concept .cpt_img {
	position: relative;
}
#concept .cpt_img .anm_path {
	position: relative;
	width: 100%;
}
#concept .cpt_img .anm_path mask {
	stroke-width: 200px;
}
#concept .cpt_img::before {
	position: absolute;
	content: "";
	background: url(../images/top/cpt_zero@2x.png) no-repeat left top;
	background-size: 100% 100%;
	width: 101%;
	height: 100%;
	left: -0.5%;
	top: 0;
	z-index: 1;
}
/* #concept .cpt_img {
	opacity: 0;
	scale: 0.8 1;
	transition: opacity 1s .5s, scale 1s .5s;
}
#concept .cpt_img::before {
	position: absolute;
	content: "";
	background: url(../images/top/cpt_zero@2x.png) no-repeat left top;
	background-size: 100% 100%;
	width: 101%;
	height: 100%;
	left: -0.5%;
	top: 0;
	z-index: 1;
}
#concept .cpt_img img {
	-webkit-mask-image: url("../images/top/cpt_mask.svg");
	mask-image: url("../images/top/cpt_mask.svg");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: cover;
    mask-size: cover;
}
#concept .cpt_img.anime_on {
	opacity: 1;
	scale: 1 1; 
}
*/
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#concept {
	padding-bottom: 0;
}
#concept .cpt_inbox {
	position: relative;
	display: grid;
	justify-content: space-between;
	grid-template-columns: 18% 45% 31%;
}
#concept .cpt_inbox p {
	align-self: center;
	font-size: 112%;
	line-height: 2.1;
}
#concept .cpt_img {
	margin-bottom: -10%;
	z-index: 1;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#concept .img_wrap {
	width: 80%;
	margin: -25vw 0 5% auto;
}
#concept .com_h__min {
	font-size: 180%;
}
}

/*---------------------------------------------------------
reason
---------------------------------------------------------*/
#reason {
	background-color: var(--color_lgrn);
}
#reason .com_h__min {
	color: #FFF;
	margin-bottom: .5em;
}
#reason .com_h__min > span {
	position: relative;
	display: inline-block;
	color: #000;
	font-size: 115%;
	letter-spacing: .08em;
}
#reason .com_h__min > span > span {
	font-size: 128%;
}
#reason .com_h__min > span::before {
	position: absolute;
	content: "Reason";
	font: var(--font_fut);
	font-size: 30%;
	letter-spacing: .02em;
	line-height: 1;
	right: .5em;
	top: 0.8em;
}
#reason .fw_bold {
	text-align: center;
	font-size: min(2.2vw,141%);
	font-weight: bold;
	line-height: 1.7;
}
#reason .com_h__min + .fw_bold {
	margin-bottom: 1.5em;
}
#reason .data_list + .fw_bold {
	margin-top: 1.8em;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#reason .com_h__min {
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: .5em;
}
#reason .com_h__min > span {
	font-size: 200%;
}
#reason .com_h__min + p {
	text-align: left;
}
#reason .fw_bold {
	font-size: 100%;
}
}
/*reason:data_list
---------------------------------------------------------*/
#reason .data_list > dl {
	position: relative;
	background-color: rgba(250,246,245,0.07);
	box-sizing: border-box;
	border-radius: 1.5em;
	padding: 60px 5%;
	margin-top: 15px;
}
#reason .data_list .title {
	font-size: min(258%,3.2vw);
	letter-spacing: .12em;
	line-height: 1.2;
	white-space: nowrap;
}
#reason .data_list .title .index {
	margin-top: .2em;
}
#reason .data_list .year {
	color: #FFF;
	font-size: 88%;
	margin-top: 1em;
}
#reason .data_list .year span {
	font-size: 126%;
}
#reason .data_list cite {
	display: block;
	color: rgba(8,2,2,0.5);
	font-size: 82%;
	line-height: 1.4;
	margin-top: 12%;
}
/* graph_wrap */
#reason .data_list .graph_wrap > figure {
	position: relative;
	max-width: 370px;
	color: #FFF;
}
#reason .data_list figcaption {
	position: relative;
	font-size: min(123%,1.8vw);
	font-weight: bold;
	letter-spacing: .1em;
	line-height: 1.3;
	padding-left: 1.2em;
}
#reason .data_list figcaption::before {
	position: absolute;
	font-family: 'fontello';
	content: '\e803';
	color: #65bacf;
	font-weight: normal;
	left: 0;
	top: 0;
}
#reason .data_list .graph_female figcaption::before {color: #D09291;}

#reason .data_list .graph {
	position: relative;
	display: block;
	max-width: 380px;
	aspect-ratio: 38/36;
}
/* #reason .data_list > dl:nth-of-type(2) .graph {
	aspect-ratio: 38/32;
} */
#reason .data_list canvas {
	display: block;
	height: 100% !important;
}
#reason .bar-labels {
	position: absolute;
	font-size: min(1.4vw,112%);
	top: 0;
	left: 0;
	pointer-events: none;
	opacity: 0;
	transition: opacity .5s 1s;
}
#reason .graph.anime_on .bar-labels {
	opacity: 1;
}

#reason .bar-label {
	position: absolute;
	font: var(--font_fut_m);
	letter-spacing: normal;
	white-space: nowrap;
}
#reason .bar-label.special {
	font-size: 157%;
	translate: 0 -0.3em;
}
#reason .bar-label .big {
	font-size: 1.3em;
}
/* PC
------------------------------------------*/
@media only screen and (min-width: 960px) {
#reason .data_list > dl {
	display: grid;
	justify-content: space-between;
	grid-template-columns: 32% 68%;
}
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#reason .data_list .graph_wrap {
	display: grid;
	justify-content: space-between;
	grid-template-columns: 50% 50%;
}
}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
#reason .data_list > dl {
	padding: 5% 5% 6%;
}
#reason .data_list .title {
	text-align: center;
	font-size: 2.8vw;
}
/* graph_wrap */
#reason .data_list .graph_wrap {
	margin-top: 5%;
}
#reason .data_list .graph_wrap .ft_min {
	font-size: 2vw;
}
#reason .data_list .number > li {
	font-size: 1.4vw;
}
}
/* Tablet,Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 959px) {
#reason .data_list dt {
	text-align: center;
}
#reason .data_list cite {
	text-align: center;
	margin-top: .5em;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#reason .data_list > dl {
	background-color: rgba(250,246,245,0.12);
}
#reason .data_list dt {
	margin-bottom: 1.5em;
}
#reason .data_list .title {
	text-align: center;
	font-size: 145%;
}
#reason .data_list .year {
	font-size: 88%;
	margin-top: .5em;
}
#reason .data_list > dl {
	padding: 8% 5%;
}
/* graph_wrap */
#reason .graph_wrap {
	padding-left: 5%;
}
#reason .data_list figcaption {
	font-size: 100%;
}
#reason .bar-labels {
	font-size: 80%;
}
}


/*---------------------------------------------------------
endoscopy
---------------------------------------------------------*/
#endoscopy {
	padding-top: 0;
}
#endoscopy .sco_bg {
	position: relative;
	color: #FFF;
	padding: min(15vw,200px) 7.5% 3%;
}
#endoscopy .sco_bg::before {
	position: absolute;
	content: "";
	background: url(../images/top/sco_bg@2x.jpg) no-repeat center top;
	background-size: cover;
	width: 100vw;
	height: calc(100% + 170px);
	left: 0;
	top: 0;
	margin-left: calc(50% - 50vw);
	z-index: -1;
}
#endoscopy .com_h__min {
	text-align: left;
	color: #FFF;
}
#endoscopy .com_h__min span:first-of-type {
	display: block;
	font-size: 75%;
	margin-bottom: .3em;
}
#endoscopy .sco_bg p {
	position: relative;
}
/* sco_col2 */
#endoscopy .sco_col2 > li {
	background: url(../images/top/sco_col_bg1@2x.png) no-repeat right top;
	background-size: 62% auto;
	background-color: #FAF6F5;
	border-radius: 1.4em;
}
#endoscopy .sco_col2 > li:nth-of-type(2) {
	background-image: url(../images/top/sco_col_bg2@2x.png);
}
#endoscopy .sco_col2 dl {
	padding: 15% 10% 2em;
}
#endoscopy .sco_col2 dt {
	text-align: center;
	font-size: min(311%,4vw);
	letter-spacing: .01em;
	line-height: 1.3;
	margin-bottom: .5em;
}
#endoscopy .sco_col2 dt .ft_fut {
	font-size: 22%;
	letter-spacing: .25em;
}
/* sco_price */
#endoscopy .sco_price {
	color: #FFF;
	background-color: #63A665;
	border-radius: inherit;
	border-top-left-radius: 0;
	border-top-right-radius: 0;
	padding-top: 1.4em;
}
#endoscopy .sco_price table {
	width: 100%;
	text-align: left;
	font-size: 117%;
	line-height: 1.4;
	letter-spacing: .1em;
}
#endoscopy .sco_price caption {
	text-align: center;
	font-size: 120%;
	letter-spacing: .1em;
	margin-bottom: .8em;
}
#endoscopy .sco_price table tr:nth-of-type(odd) {
	background-color: rgba(193,214,86,0.12);
}
#endoscopy .sco_price table tr:nth-of-type(even) {
	background-color: rgba(193,214,86,0.05);
}
#endoscopy .sco_price table th,
#endoscopy .sco_price table td {
	font-weight: bold;
	padding: 1.5em;
}
#endoscopy .sco_price table th {
	padding-right: .5em;
}
#endoscopy .sco_price table th::before {
	font-family: 'fontello';
	content: '\e803';
	color: #C1D656;
	font-size: 95%;
	margin-right: .2em;
}
#endoscopy .sco_price table td {
	text-align: right;
	padding-left: 0;
}
#endoscopy .sco_price table td span {
	font: var(--font_fut);
	font-size: 135%;
	letter-spacing: .1em;
	vertical-align: -0.05em;
	margin-right: .1em;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

#endoscopy .sco_bg p {
	position: relative;
	font-size: 112%;
	line-height: 2.1;
}
#endoscopy .sco_col2 {
	display: grid;
	justify-content: space-between;
	grid-template-columns: repeat(2,48.5%);
}
/* sco_col2 */
#endoscopy .sco_col2 > li {
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 2;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#endoscopy .sco_bg {
	color: #000;
	padding: 40% 2% 4%;
}
#endoscopy .sco_bg::before {
	height: 76vw;
	/* height: calc(100% + 40px); */
}
#endoscopy .com_h__min {
	font-size: 185%;
	margin-bottom: 1.8em;
}
/* sco_col2 */
#endoscopy .sco_col2 dl {
	padding: 15% 10% 2em;
	margin-top: 4%;
}
#endoscopy .sco_col2 dt {
	font-size: 150%;
}
#endoscopy .sco_col2 dt .ft_fut {
	font-size: 35%;
}
/* sco_price */
#endoscopy .sco_price table {
	font-size: 105%;
}
#endoscopy .sco_price caption {
	font-size: 120%;
}
#endoscopy .sco_price table th,
#endoscopy .sco_price table td {
	display: block;
	padding: 1em 1.5em;
}
#endoscopy .sco_price table td {
	text-align: left;
	padding-top: 0;
}
}

/*---------------------------------------------------------
feature
---------------------------------------------------------*/
#feature {
	background-color: var(--color_bei);
}
#feature .com_h__min span {
	color: var(--color_grn);
	font: var(--font_fut_m);
	font-size: 221%;
	vertical-align: -0.1em;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#feature .com_h__min {
	margin-bottom: 12%;
}
}
/*feature:fea_list
---------------------------------------------------------*/
#feature .fea_list {
	list-style: none;
	counter-reset: mycounter;
}
#feature .fea_list > li {
	position: relative;
}
#feature .fea_index {
	font: var(--font_min);
	font-size: min(217%,3vw);
	letter-spacing: .1em;
	line-height: 1.4;
	word-break: keep-all;
	overflow-wrap: break-word;
	margin-bottom: .4em;
}
#feature .fea_index span {
	color: var(--color_grn);
}
#feature .fea_list .box_img {
	position: relative;
	max-width: max-content;
}
#feature .fea_list .box_img img {
	border-radius: 6.2% / 6.7%;
}
#feature .fea_list .box_txt {
	position: relative;
}
#feature .fea_list .box_txt::before {
	position: absolute;
	display: block;
	counter-increment: mycounter;
	content: counter(mycounter, decimal-leading-zero);
	background: radial-gradient(rgba(227,219,9,0.45), rgba(227,219,9,0) 70%);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 0 0;
	color: #FFF;
	font: var(--font_fut_m);
	font-size: min(10vw,911%);
	letter-spacing: -0.02em;
	line-height: 1.2;
	width: 1.2em;
	border-radius: 50%;
	top: 0.2em;
	transition: background-size 1s .5s;
}
#feature .fea_list .anime_on .box_txt::before {
	background-size: 100% 100%;
}
#feature .fea_list .box_txt > * {
	position: relative;
}
#feature .fea_list .com_ccl_txt {
	position: absolute;
	right: 7%;
	bottom: 6%;
}
#feature .fea_list .com_ccl_txt span {
	font-size: 66%;
	margin-bottom: .3em;
}
#feature .fea_list .fea2 .com_ccl_txt {background: radial-gradient(rgba(103,118,173,0.7), rgba(103,118,173,0.95));}
#feature .fea_list .fea3 .com_ccl_txt {background: radial-gradient(rgba(173,126,103,0.7), rgba(173,126,103,0.95));}
#feature .fea_list .fea5 .com_ccl_txt {background: radial-gradient(rgba(130,173,103,0.7), rgba(130,173,103,0.95));}
#feature .fea_list .fea6 .com_ccl_txt {background: radial-gradient(rgba(103,173,129,0.7), rgba(103,173,129,0.95));}
#feature .fea_list .fea7 .com_ccl_txt {background: radial-gradient(rgba(196,187,76,0.7), rgba(196,187,76,0.95));}
#feature .fea_list .fea8 .com_ccl_txt {background: radial-gradient(rgba(103,170,173,0.7), rgba(103,170,173,0.95));}

#feature .fea_list .type_s .com_ccl_txt span {
	font-size: 118%;
}
#feature .fea_list .fea5 .com_ccl_txt span {
	font-size: 136%;
}
#feature .fea_list .fea8 .com_ccl_txt span {
	font: var(--font_fut);
	font-size: 150%;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#feature .fea_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
#feature .fea_list > li:nth-of-type(n+2) {
	margin-top: 7%;
}
#feature .fea_list .box_txt {
	padding-top: 10%;
}
/* type_w */
#feature .fea_list .type_w {
	display: flex;
	column-gap: 6%;
	width: 100%;
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
}
#feature .fea_list .type_w .box_img {
	width: 50%;
}
#feature .fea_list .type_w .box_img img {
	border-radius: 3.9% / 4.2%;
}
#feature .fea_list .type_w .box_txt {
	width: 45%;
	max-width: 450px;
}
#feature .fea_list .type_w .box_txt::before {
	right: -0.2em;
}
#feature .fea_list .type_w.row_rev {
	flex-direction: row-reverse;
	margin-top: 0;
}
#feature .fea_list .type_w.row_rev .box_img {
	margin-top: -9%;
}
#feature .fea_list .type_w.row_rev .box_txt::before {
	left: -0.2em;
}
/* type_s */
#feature .fea_list .type_s {
	width: 30%;
}
#feature .fea_list .type_s .fea_index {
	font-size: min(170%,2.6vw);
}
#feature .fea_list .type_s .fea_index + p {
	font-size: 88%;
	font-feature-settings: "halt";
}
#feature .fea_list .type_s .box_img {
	margin: 0 auto 5%;
}
#feature .fea_list .type_s .box_txt::before {
	left: -0.3em;
	top: -0.2em;
	font-size: min(7vw,482%);
}
#feature .fea_list .type_s .com_ccl_txt {
	font-size: min(1.8vw,129%);
	line-height: 1.3;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#feature .fea_list > li:not(:last-of-type) {
	padding-bottom: 10%;
	margin-bottom: 12%;
	border-bottom: 1px solid rgba(8,2,2,0.2);
}
#feature .fea_index {
	text-align: center;
	font-size: 140%;
}
#feature .fea_list .box_img {
	width: 90%;
	margin: 0 auto 7%;
}
#feature .fea_list .box_txt {
	position: static;
	padding: 0 2%;
}
#feature .fea_list .box_txt::before {
	font-size: 18vw;
	background-size: 100% 100%;
	left: auto;
	right: 0;
	top: -0.4em;
}
#feature .fea_list .com_ccl_txt {
	font-size: 5.4vw;
	right: -3%;
	bottom: -4%;
}
/* type_s */
#feature .fea_list .type_s .box_img {
	width: 70%;
}
#feature .fea_list .type_s .box_txt::before {
	font-size: 15vw;
	right: 5%;
}
#feature .fea_list .type_s .com_ccl_txt {
	font-size: 4.4vw;
	right: -7%;
	bottom: -7%;
}
}


/*---------------------------------------------------------
medical
---------------------------------------------------------*/
#medical {
	background-color: var(--color_lgrn);
}
#medical .com_h__min {
	color: #FFF;
	margin-bottom: .4em;
}
#medical .com_h__min + p {
	text-align: center;
	color: #FFF;
	margin-bottom: 5%;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#medical .com_medmenu {
	grid-template-columns: repeat(4, 23.5%);
}
#medical .com_medmenu > li > a {
	height: 12.6em;
	font-size: min(1.8vw,112%);
}
#medical .com_medmenu > li > a::before {
	width: 6.8em;
	height: 6.8em;
}
#medical .com_medmenu > li > a::after {
	font-size: 70%;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
}

/*---------------------------------------------------------
search
---------------------------------------------------------*/
#search .btn_list {
	max-width: 1170px;
	display: grid;
	justify-content: space-between;
	row-gap: 1.5em;
	grid-template-columns: repeat(3,min(370px,32.5%));
	margin: 0 auto;
}
#search .btn_list > li {
	margin: 0;
}
#search .btn_list a {
	width: 100%;
	height: 4.2em;
	min-width: 0;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
.com_btn1.col_grn a {
	font-size: min(1.9vw,1.12rem);
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#search > div {
	padding: 0 3%;
}
#search .btn_list {
	row-gap: .6em;
	grid-template-columns: repeat(2,49%);
}
#search .btn_list a {
	font-size: 3.4vw;
	font-feature-settings: "halt";
	padding-left: 1.8em;
}
}

/*---------------------------------------------------------
doctor
---------------------------------------------------------*/
#doctor {
	background-color: var(--color_bei);
}
#doctor .com_title1 {
	z-index: 1;
}
#doctor .dr_img {
	position: relative;
	max-width: max-content;
	margin-top: -10%;
}
#doctor .dr_img::after {
	position: absolute;
	content: "";
	background: linear-gradient(to top, rgba(0,0,0,0.5), rgba(0,0,0,0));
	width: 100%;
	height: 35%;
	left: 0;
	bottom: 0;
}
#doctor .dr_name {
	position: absolute;
	display: flex;
	align-items: center;
	color: #FFF;
	font-size: min(117%,2vw);
	letter-spacing: .15em;
	line-height: 1.5;
	right: 2em;
	bottom: 3em;
	z-index: 1;
}
#doctor .dr_name dt {
	margin-right: 1em;
}
#doctor .dr_name dd {
	font-size: 185%;
	letter-spacing: .15em;
}
#doctor .dr_name dd.ft_fut {
	position: absolute;
	display: block;
	color: #C1D656;
	font-size: 100%;
	letter-spacing: .02em;
	right: 0;
	top: 105%;
}
#doctor .message dt {
	font-size: min(294%,4.2vw);
	letter-spacing: .06em;
	line-height: 1.6;
	word-break: keep-all;
	overflow-wrap: break-word;
	margin-bottom: .7em;
}
#doctor .message dt span {
	color: var(--color_grn);
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#doctor .com_flt {
	max-width: 1120px;
	padding: 0 3%;
	margin: 0 auto;
}
#doctor .dr_img {
	width: 45%;
	margin-top: -12%;
	margin-bottom: 5%;
}
#doctor .message dd {
	line-height: 2;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#doctor .com_title1 {
	text-align: center;
	margin-bottom: 8%;
}
#doctor .dr_img {
	width: 62%;
	margin: 0 auto 6%;
}
#doctor .dr_name {
	width: 100%;
	justify-content: center;
	font-size: 80%;
	right: 50%;
	translate: 50% 0;
}
#doctor .dr_name dd.ft_fut {
	right: 50%;
	translate: 50% 0;
}
#doctor .message dt {
	text-align: center;
	font-size: 140%;
}
#doctor .message dd {
	line-height: 1.8;
}
}

/*---------------------------------------------------------
clinic
---------------------------------------------------------*/
#clinic {
	position: relative;
	padding-top: min(10vw,150px);
}
#clinic .com_deco_txt {
	position: absolute;
	font-size: min(11.4rem,12vw);
	left: 0.5em;
	top: 0.3em;
	z-index: 1;
}
.cln_slide li {
	width: 41vw;
	max-width: max-content;
	margin-right: min(4vw,50px);
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#clinic .com_btn1 {
	text-align: right;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#clinic {
	padding-top: 20vw;
}
#clinic .com_deco_txt {
	font-size: 18vw;
	left: 0.2em;
	top: 0.6em;
}
.cln_slide li {
	width: 60vw;
}
}

/*---------------------------------------------------------
data
---------------------------------------------------------*/
#data {
	padding-top: 50px;
}
#data .data_index {
	position: relative;
	font-size: min(152%,2.4vw);
	letter-spacing: .1em;
	line-height: 1.6;
	margin-bottom: .6em;
}
#data .data_index::before {
	position: absolute;
	content: "";
	background-color: currentColor;
	width: 1px;
	height: 2.1em;
	left: 0.5em;
	top: 100%;
}
#data .data_index::after {
	position: absolute;
	content: "";
	background-color: currentColor;
	width: .31em;
	height: .31em;
	left: 0.35em;
	top: calc(100% + 2.1em);
	border-radius: 50%;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#data {
	padding-top: 12%;
}
#data .data_index {
	font-size: 105%;
}
}
/*data:tabs
---------------------------------------------------------*/
#data .tab_area {
	position: relative;
	color: #FFF;
}
#data .tab_area::before {
	position: absolute;
	content: "";
	background-color: var(--color_lgrn);
	width: 100vw;
	height: 100%;
	left: 0;
	top: 0;
	margin-left: calc(50% - 50vw);
	z-index: -1;
}
#data .data-tabs {
	display: flex;
	column-gap: .8em;
}
#data .data-tabs button {
	position: relative;
	width: 7.6em;
	height: 3.4em;
	font-weight: bold;
	background-color: rgba(99,166,101,0.5);
	border-radius: .5em;
	margin-bottom: 1.2em;
	transition: color .4s, background-color .4s;
}
#data .data-tabs button span {
	font: var(--font_fut_m);
	font-size: 135%;
	letter-spacing: .02em;
	margin-right: .1em;
}
#data .data-tabs button::before {
	position: absolute;
	content: "";
	background-color: #fff;
	width: 0.35em;
	height: 0.35em;
	right: .6em;
	top: .6em;
	clip-path: polygon(0 0, 100% 0, 100% 100%);
}
#data .data-tabs button::after {
	position: absolute;
	content: "";
	background-color: #fff;
	width: 0.5em;
	height: 0.26em;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	left: 0;
	right: 0;
	top: calc(100% + 0.3em);
	margin: auto;
	opacity: 0;
	transition: opacity .5s;
}
#data .data-tabs button.active {
	pointer-events: none;
}
#data .data-tabs button.active,
#data .data-tabs button:hover {
	color: #63A665;
	background-color: #fff;
}
#data .data-tabs button.active::after,
#data .data-tabs button:hover::after {
	opacity: 1;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#data .data-select {
	display: none;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#data .data-tabs {
    display: none;
}
#data .data-select {
	position: relative;
	margin-bottom: 1em;
}
#data .data-select::after {
	position: absolute;
	content: "";
	background-color: #fff;
	width: 0.6em;
	height: 0.3em;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	right: 1em;
	top: 50%;
	translate: 0 -50%;
}
#data #yearSelect {
	width: 100%;
	font-size: 1rem;
	padding: 0.5rem;
}
#data #yearSelect {
	position: relative;
	width: 100%;
	box-sizing: border-box;
	appearance: none;
	background-color: rgba(99,166,101,0.5);
	border: none;
	color: #fff;
	font-size: 110%;
	letter-spacing: .08em;
	line-height: 1.2em;
	padding: .5em 1.0em;
	border-radius: .5em;
}
#data #yearSelect:focus {
	outline: none;
}
}
/*data:data-content
---------------------------------------------------------*/
#data .data-content {
	box-sizing: border-box;
	padding: 50px 5%;
	border-radius: 1.4em;
	box-shadow: 0 0 15px rgba(0,0,0,0.1);
}
#data .data-content .count {
	font: var(--font_min);
}
#data .data-content .count span {
	font: var(--font_fut);
	font-size: 183%;
}
/* total */
#data .data-content .total {
	max-width: max-content;
	text-align: center;
	font: var(--font_min);
	font-size: min(3vw,200%);
	letter-spacing: .1em;
	padding: 0 1em .6em;
	border-bottom: 1px solid #FFF;
	margin: 0 auto 1.5em;
}
#data .data-content .total .count {
	display: inline;
	vertical-align: -0.5em;
}
#data .data-content .total .count span {
	display: inline-block;
	width: 2.7em;
	font-size: 285%;
}
/* figure */
#data .data-content figure {
	position: relative;
	font-size: min(1.4vw,100%);
	max-width: 350px;
}

#data .data-content figcaption {
	position: relative;
	font: var(--font_min);
	font-size: 200%;
	letter-spacing: normal;
	margin-bottom: -1em;
	z-index: 1;
}
#data .data-content figcaption .count {
	font-size: 80%;
	margin-top: .4em;
}
#data .data-content .graph {
	position: relative;
	width: 66%;
	margin-left: auto;
	aspect-ratio: 1 / 1;
}
#data .data-content canvas {
	height: 100% !important;
}
#data .data-content .percent {
	position: absolute;
	font: var(--font_fut_m);
	font-size: 200%;
	letter-spacing: -0.04em;
	left: 50%;
	top: 50%;
	translate: -50% -50%;
}
#data .data-content .percent .intPart {
	font-size: 150%;
}
#data .data-content .percent .decPart {
	font-size: 117%;
}

#data .data-content .graph::before {
	position: absolute;
	content: "";
	background: url(../images/top/data_icon_gas.svg) no-repeat;
	background-size: contain;
	width: 70%;
	height: 61%;
	left: -56%;
	bottom: 0;
}
#data .data-content figure.graph_col .graph::before {	background-image: url(../images/top/data_icon_col.svg);}
#data .data-content figure.graph_pol .graph::before {	background-image: url(../images/top/data_icon_pol.svg);}

/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
#data .graph_wrap {
	display: grid;
	justify-content: space-between;
	grid-template-columns: repeat(3,31%);
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#data .data-content {
	padding: 10% 8%;
	border-radius: 1em;
}
/* total */
#data .data-content .total {
	font-size: 130%;
}
#data .data-content .total .count {
	display: block;
	margin-top: .4em;
}
#data .data-content .total .count span {
	font-size: 240%;
}
/* figure */
#data .data-content figure {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 70%;
	margin: 6% auto 0;
}
#data .data-content .graph {
	width: 45%;
}
}


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

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

/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

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

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


}