@charset "utf-8";

/*-- 
reset
====================================================== --*/
/*! destyle.css v2.0.2 | MIT License | https://github.com/nicolas-cusan/destyle.css */
*,:after,:before{box-sizing:border-box;border-style:solid;border-width:0}html{line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}main{display:block}h1,h2,h3,h4,h5,h6{line-height:inherit;font-weight:inherit;margin:0}address,blockquote,dl,figure,form,iframe,ol,p,pre,table,ul{margin:0}ol,ul{padding:0;list-style:none}dt{font-weight:400;font-weight:500}dd{margin-left:0}hr{box-sizing:content-box;height:0;overflow:visible;border-top-width:1px;margin:0;clear:both;color:inherit}pre{font-family:monospace;}address{font-style:inherit}a{background-color:transparent;text-decoration:none;color:inherit}abbr[title]{text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:400}code,kbd,samp{font-family:monospace;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.45em}embed,iframe,img,object{vertical-align:bottom}button,input,optgroup,select,textarea{-webkit-appearance:none;appearance:none;vertical-align:middle;color:inherit;font:inherit;background:transparent;padding:0;margin:0;outline:0;border-radius:0;text-align:inherit}[type=checkbox]{-webkit-appearance:checkbox;appearance:checkbox}[type=radio]{-webkit-appearance:radio;appearance:radio}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{cursor:pointer;-webkit-appearance:none;appearance:none}[type="button"][disabled],[type="reset"][disabled],[type="submit"][disabled],button[disabled]{cursor:default}[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}select::-ms-expand{display:none}fieldset,option{padding:0}fieldset{margin:0;min-width:0}legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}label[for]{cursor:pointer}details{display:block}summary{display:list-item}[contenteditable]{outline:0}table{border-collapse:collapse;border-spacing:0}caption{text-align:left}td,th{vertical-align:top;padding:0}th{text-align:left;font-weight:700}[hidden],template{display:none}

/*-- 
root
====================================================== --*/

:root{
	--c-mineo:#00a23f;
	--c-wester:#00499f;
	--c-overlay:rgba(43,46,56,0.9);
	--c-black:#212121;
	--c-white:#fff;
	--c-gray:#ccc;
	--c-gray2:#333;
	--c-gray3:#f5f7f8;
	--c-gray4:#e0e0e0;
	--c-gray5:#bdbdbd;
	--c-gray6:#999;
	--c-blue:#007daa;
	--c-light-green:#fafaf3;
	--c-yellow:#ffe100;
	--c-pink:#ff4081;
}

/*-- 
common
====================================================== --*/

/*-- html body --*/
html{
	font-size:62.5%;
}
body{
	font-size:1.6rem;
	color:var(--c-black);
	background:var(--c-white);
	word-wrap:break-word;
	overflow-wrap:break-word;
}

/*-- font-family --*/
body{
	font-family:"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ヒラギノ角ゴシック","Hiragino Sans","メイリオ",Meiryo,Osaka,"ＭＳ Ｐゴシック","MS PGothic","sans-serif";
}
#common_main{
}
.fw_db{
	font-weight: 600;
}
.fw_b{
	font-weight: 800;
}
/*-- font --*/

/* size */
.fs_note {
	font-size:clamp(1rem, 0.85vw, 1.2rem);
}
.fs_breakdown {
	font-size:clamp(1.2rem, 0.85vw, 1.6rem);
}
.fs_text {
	font-size:clamp(1.4rem, 1.2vw, 2.2rem);
}
.fs_explane {
	font-size:clamp(1.4rem, 1.2vw, 2rem);
}
.fs_summary {
	font-size:clamp(2rem, 1.6vw, 3rem);
}
.fs_headsmall {
	font-size:clamp(2rem, 1.35vw, 2.5rem);
}
.fs_headlarge {
	font-size:clamp(3.2rem, 3.7vw, 7rem);
}
/* size */

/* font-color */
.fc_black {
	color:var(--c-black);
}
.fc_green {
	color:var(--c-mineo);
}
.fc_white {
	color:#FFF;
}
.fc_yellow {
	color:var(--c-yellow);
}
.fc_pink {
	color:var(--c-pink);
}
.fc_blue {
	color:var(--c-wester);
}

/* text-animation */
.core {
	display: block;
	overflow: hidden;
	width: fit-content;
}
.core .in {
	display: block;
	width: fit-content;
	transform: translateY(100%);
	will-change: transform;
	transition: transform .4s ease;
}
.run .core .in,
.run_modal .core .in {
	transform: translateY(0);
}
.bounce {
	transform: scale(1.2);
	will-change: transform;
	transition: transform .4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.run .bounce,
.run_modal .bounce {
	transform: scale(1);
}

/*-- a --*/

a:link{
	text-decoration:underline;
	color:var(--c-blue);
}
a:visited{
	text-decoration:none;
	color:var(--c-blue);
}
a:hover{
	text-decoration:none;
	outline:none;
}
a:active{
	text-decoration:none;
}
a:focus{
	outline:none;
}

/* =responsive
-------------------------------------------------------------- */
@media screen and (min-width:1024px) {
	.tabletsp {
		display:none !important;
	}
	.tablet {
		display:none !important;
	}
	.sp {
		display:none !important;
	}
}
@media screen and (max-width:1023px) and (min-width:768px) {
	.pc {
		display:none;
	}
	.sp {
		display:none;
	}
}
@media screen and (max-width:767px) {
	.pc {
		display:none;
	}
	.pctablet {
		display:none;
	}
	.tablet {
		display:none;
	}
}

/*-- list --*/

.lst_disc,
.lst_decimal{
	line-height:2;
}
.lst_disc{
	margin-left:1.5em !important;
	text-indent:0 !important;
	list-style-type:disc !important;
}
.lst_decimal{
	margin-left:1.5em !important;
	text-indent:0 !important;
	list-style-type:decimal !important;
}
.lst_disc > li,
.lst_decimal > li{
	margin-bottom:.5em;
}
.lst_disc > li:last-child,
.lst_decimal > li:last-child{
	margin-bottom:0;
}

/*-- ti_lst --*/

.ti_1em,
.ti_1-5em,
.ti_2em,
.ti_3em,
.ti_item{
	font-size:1.4rem;
	margin-bottom:.5em;
	line-height:1.5;
}
.ico_dot{
	font-size:1.4rem;
}
.ti_item:last-child{
	margin-bottom:0;
}
p.ti_1em::before,
ul.ti_1em > .ti_item::before,
p.ti_1-5em::before,
ul.ti_1-5em > .ti_item::before,
p.ti_2em::before,
ul.ti_2em > .ti_item::before,
p.ti_3em::before,
ul.ti_3em > .ti_item::before,
.ico_mark{
	display:inline-block;
	text-indent:0;
}
.ti_1em ul,
.ti_1-5em ul,
.ti_2em ul,
.ti_3em ul{
	margin-top:.5em;
}
/* ti_1em */
p.ti_1em,
ul.ti_1em > .ti_item{
	text-indent:-1em;
	padding-left:1em;
}
p.ti_1em::before,
ul.ti_1em > .ti_item::before,
p.ti_1em > .ico_mark,
ul.ti_1em > .ti_item > .ico_mark{
	width:1em;
}
/* ti_1-5em */
p.ti_1-5em,
ul.ti_1-5em > .ti_item{
	text-indent:-1.5em;
	padding-left:1.5em;
}
p.ti_1-5em::before,
ul.ti_1-5em > .ti_item::before,
p.ti_1-5em > .ico_mark,
ul.ti_1-5em > .ti_item > .ico_mark{
	width:1.5em;
}
/* ti_2em */
p.ti_2em,
ul.ti_2em > .ti_item{
	text-indent:-2em;
	padding-left:2em;
}
p.ti_2em::before,
ul.ti_2em > .ti_item::before,
p.ti_2em > .ico_mark,
ul.ti_2em > .ti_item > .ico_mark{
	width:2em;
}
/* ti_3em */
p.ti_3em,
ul.ti_3em > .ti_item{
	text-indent:-3em;
	padding-left:3em;
}
p.ti_3em::before,
ul.ti_3em > .ti_item::before,
p.ti_3em > .ico_mark,
ul.ti_3em > .ti_item > .ico_mark{
	width:3em;
}
/* icon */
.ico_asterisk::before{
	content:"※";
}
.ico_circle::before{
	content:"○";
}
.ico_dot::before{
	content:"・";
}
.ico_arrow::before{
	content:"▼";
	transform:scale(0.8,0.8);
}

/*-- text-align --*/

.ta_left{text-align:left !important;}
.ta_right{text-align:right !important;}
.ta_center{text-align:center !important;}

/*-- vertical-align --*/

.va_middle{vertical-align:middle !important;}

/*-- margin --*/

.mb0{margin-bottom:0 !important;}
.mb10{margin-bottom:1rem !important;}
.mb15{margin-bottom:1.5rem !important;}
.mb20{margin-bottom:2rem !important;}

.mt0{margin-top:0 !important;}
.mt10{margin-top:1rem !important;}
.mt15{margin-top:1.5rem !important;}
.mt20{margin-top:2rem !important;}

/* sp */
@media screen and (max-width:767px){
	.sp_mb0{margin-bottom:0 !important;}
	.sp_mb10{margin-bottom:1rem !important;}
	.sp_mb15{margin-bottom:1.5rem !important;}
	.sp_mb20{margin-bottom:2rem !important;}

	.sp_mt0{margin-top:0 !important;}
	.sp_mt10{margin-top:1rem !important;}
	.sp_mt15{margin-top:1.5rem !important;}
	.sp_mt20{margin-top:2rem !important;}
}

/*-- img --*/

img{
	-webkit-backface-visibility:hidden; /* chrome */
}
.mw100{
	max-width:100%;
	height:auto;
}
.mw760{
	max-width:76rem;
}

/*-- other --*/

a{
	opacity:1;
	transition:opacity .3s ease;
	cursor:pointer;
}
a:hover{
	opacity:0.7;
}
a.td_none{
	text-decoration:none;
	color:var(--c-gray2);
}
.clearfix::after{
	content:'';
	display:block;
	clear:both;
}
.ws_nowrap{
	white-space:nowrap;
}
.for_pc{
	display:block;
}
.for_sp{
	display:none;
}
.pr{
	position:relative;
}
/* sp */
@media screen and (max-width:767px){
	.ti_1em,
	.ti_1-5em,
	.ti_2em,
	.ti_3em,
	.ti_item{
		font-size:1rem;
	}
	.mb10{
		margin-bottom:0.5rem !important;
	}
	a:hover{
		opacity:1;
	}
	.for_pc{
		display:none;
	}
	.for_sp{
		display:block;
	}
}

/*-- common --*/
.common_inner {
	width:clamp(60rem, 70%, 110rem);
	margin: 0 auto;
}
body img, body video {
	user-select: none;
}


/*-- icon --*/

.icon_base{
	width:1.01em;
	height:1em;
	vertical-align:middle;
	position:relative;
	margin-right:0.2em;
	margin-left:0.2em;
	background-repeat:no-repeat;
	display:inline-block;
}
.icon_base.icon_ex{
	background-image:url("../img/icon_exlink_blue.png");
	background-size:contain;
}
.icon_base.icon_ex._green{
	background-image:url("../img/icon_exlink_green.png");
	background-size:contain;
}
.icon_arrow{
	display:block;
	background:url("../img/icon_arrow.svg") no-repeat center center;
	background-size:contain;
	position:absolute;
	right:1.5rem;
	top:0;
	bottom:0;
	margin:auto;
	width:0.8rem;
	height:1.6rem;
}
a:hover .icon_arrow{
	background:url("../img/icon_arrow_white.svg") no-repeat center center;
	background-size:contain;
}
.icon_back{
	display:block;
	background:url("../img/icon_back.png") no-repeat center center;
	background-size:contain;
	position:absolute;
	right:1.5rem;
	top:0;
	bottom:0;
	margin:auto;
	width:1.5rem;
	height:1.3rem;
}

/*-- table --*/

.tbl_wrapper{
	border:0.1rem solid var(--c-gray4);
	background:var(--c-white);
	border-radius:0.6rem;
	overflow:hidden;
}
.tbl01{
	table-layout:auto;
	width:100%;
	line-height:1.5;
}
.tbl01 thead th{
	border-top:none;
	text-align:center;
	background-color:#e2e8ea;
	font-size:2.4rem;
	padding:2rem 0.5rem;
}
.tbl01 tbody th,
.tbl01 tbody td{
	padding:2rem;
}
.tbl01 tbody th{
	background-color:var(--c-gray3);
	border:0.1rem solid var(--c-gray4);
	border-left:none;
	border-bottom:none;
	width:16rem;
}
.tbl01 tbody td{
	border-top:0.1rem solid var(--c-gray4);
}
.tbl01 .th_title{
	border-right:none;
	width:auto;
	text-align:center;
	padding-top:1.3rem;
	padding-bottom:1.3rem;
}

/*-- btn --*/

.btn_wrapper{
	display:flex;
	align-items:center;
	justify-content:center;
}
.btn_cv{
	display:flex;
	align-items:center;
	justify-content:center;
	position:relative;
	background:var(--c-gray4);
	color:var(--c-gray6);
	max-width:51rem;
	width:100%;
	height:6rem;
	border-radius:3rem;
	font-size:1.6rem;
	border:0.2rem solid var(--c-gray5);
	transition:background .3s ease;
}
.btn_cv .icon_ex._green{
	position:absolute;
	right:1.5rem;
	top:0;
	bottom:0;
	margin:auto;
	height:1.2rem;
	background-image:url("../img/icon_exlink_gray.png");
	background-size:contain;
}
/* active */
.active.btn_cv{
	background:var(--c-white);
	color:var(--c-mineo);
	border:0.2rem solid var(--c-mineo);
	cursor:pointer;
}
.active.btn_cv .icon_ex._green{
	background-image:url("../img/icon_exlink_green.png");
	background-size:contain;
}
/* hover */
.active.btn_cv:hover{
	background:var(--c-mineo);
	color:var(--c-white);
}
.active.btn_cv:hover .icon_base.icon_ex._green{
	background-image:url("../img/icon_exlink_white.png");
	background-size:contain;
}
/* tb */
@media screen and (max-width:960px){
	.content_inner{
		padding:0 2rem;
	}
}
/* sp */
@media screen and (max-width:767px){
	.content_base{
		padding:3.5rem 0;
	}
	.headline01{
		font-size:2.2rem;
		margin-bottom:3rem;
	}
	.tbl01 thead th{
		font-size:1.4rem;
		padding:1rem 0.5rem;
	}
	.tbl01 tbody th,
	.tbl01 tbody td{
		padding:1rem 0.5rem;
		font-size:1.0rem;
	}
	.tbl01 tbody th{
		width:8rem;
	}
	.tbl01 .th_title{
		padding-top:1rem;
		padding-bottom:1rem;
	}
	.btn_cv{
		height:5rem;
		border-radius:2.5rem;
		font-size:1.5rem;
	}
}
/* sp 320 */
@media screen and (max-width:320px){
	.content_inner{
		padding:0 1rem;
	}
}



/*-- 

common_header

====================================================== --*/

#common_header{
	width:100%;
}
#header_inner .brand_logo {
	width:clamp(10rem, 9.5vw, 14rem);
	margin:0 auto;
	padding:1.5rem 0;
}
#header_inner .header_layout {
	width:100%;
	display: grid;
	grid-template-columns: 6fr 94fr;
}
#header_inner .header_layout .mainimage_left {
	background: var(--c-mineo);
	border-radius: 0 8rem 0 0;
}
#header_inner .header_layout .mainimage_right {
	width:100%;
	aspect-ratio: 58 / 25;
	overflow: hidden;
	position: relative;
}
#header_inner .header_layout .mainimage_right .mainimage {
	display: block;
	width:100%;
	height: 100%;
	position: relative;
	border-left:4rem solid #FFF;
	border-bottom:4rem solid #FFF;
}
#header_inner .header_layout .mainimage_right img {
	position: absolute;
	inset: 0;
	width:100%;
	height: 100%;
	aspect-ratio: 58 / 25;
	object-fit: cover;
	border-radius: 8rem 0 0 8rem;
}
#header_inner .header_layout .mainimage_right .icon_cm {
	position: absolute;
	bottom:8rem;
	right:4rem;
	width:clamp(12rem, 9.5vw, 18rem);
	height:clamp(12rem, 9.5vw, 18rem);
}


/*-- 
content_about
====================================================== --*/
#content_about {
	position: relative;
}
#content_about .icon_curve {
	position: absolute;
	top:-10rem;
	left:6%;
	width:10rem;
	height:10rem;
	fill:var(--c-mineo);
}
.content_about_bg {
	position: absolute;
	top:0;
	left:0;
	width:calc(100% - (6% + 4rem));
	height: 100%;
	background: var(--c-mineo);
	border-radius: 0 8rem 8rem 0;
	z-index:1;
}
.content_about_inner {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: clamp(3rem, 3.2vw, 6rem);
	position: relative;
	z-index:2;
	padding:clamp(7rem, 7.5vw, 14rem) 0;
}
.sp_cp_catch {
	display: none;
}
.content_about_inner h2 {
	font-weight: 900;
}
.content_about_inner p {
	font-weight: 400;
	line-height:2em;
}


/*-- 
content_card
====================================================== --*/
#content_card {
	padding:10rem 0 30rem;
	position: relative;
}
.content_card_bg {
	position: absolute;
	bottom: 15rem;
	right:0;
	width:80%;
	height:clamp(40rem, 32vw, 60rem);
	background: #bde0c9;
	border-radius: 9rem 0 0 9rem;
	z-index:1;
}
.content_card_wrap {
	width:clamp(36rem, 90%, 160rem);
	margin:0 auto;
}
.content_card_inner {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	column-gap: clamp(1.5rem, 2.7vw, 5rem);
	row-gap: clamp(1.5rem, 2.7vw, 5rem);
	position: relative;
	z-index:2;
}
.content_card_inner .medical_card {
	display: grid;
	grid-template-columns: 58fr 42fr;
	column-gap: 2rem;
	row-gap: 5rem;
	background: var(--c-mineo);
	border-radius: 3rem;
	padding:clamp(3rem, 3.8vw, 7rem);
	cursor: pointer;
	transform: scale(1);
	will-change: transform;
	transition: transform .4s ease;
}
.content_card_inner .medical_card:hover {
	transform: scale(1.03);
}
.content_card_inner .medical_name {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: clamp(1.5rem, 2.7vw, 5rem);
}
.medical_type {
	font-weight: 700;
}
.medical_summary {
	justify-self: end;
	writing-mode: vertical-rl;
}
.medical_summary span {
	display: block;
	width:fit-content;
	height: fit-content;
	background: #FFF;
	padding:clamp(0.5rem, 0.6vw, 1.5rem);
	margin:0 0 0 clamp(0.5rem, 0.6vw, 1.5rem);
}
.medical_excerpt {
	display: grid;
	grid-template-columns: 1fr;
}
.medical_excerpt p {
	align-self: start;
	line-height: 1.75em;
}
.content_card_inner .btn_medical_modal {
	align-self: end;
	width:100%;
	border:2px solid var(--c-yellow);
	display: flex;
	justify-content: center;
	align-items: center;
	padding:1.5rem 3rem;
	border-radius: 4rem;
	position: relative;
	transition: background .4s ease, color .4s ease;
	will-change: background, color;
}
.content_card_inner .btn_medical_modal .icon {
	position: absolute;
	top:50%;
	right:3rem;
	display: block;
	width:0.8rem;
	height:auto;
	transform: translateY(-50%);
}
.content_card_inner .btn_medical_modal .icon svg {
	fill:var(--c-yellow);
}
.content_card_inner .btn_medical_modal:hover {
	background:var(--c-yellow);
	color:var(--c-mineo);
}
.content_card_inner .btn_medical_modal:hover .icon svg {
	fill:var(--c-mineo);
}
.content_card_inner .medical_thumb {
	width:100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 50%;
	border:2px solid #FFF;
}
.content_card_inner .medical_thumb img {
	display: block;
	width:100%;
	height: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.content_card_inner .card_model {
	width: 100%;
	height: 100%;
}
.content_card_inner .card_model .card_thumb {
	width:100%;
	height: 100%;
	display: grid;
	grid-template-columns: 1fr;
}
.content_card_inner .card_model .card_thumb picture {
	justify-self: end;
	align-self: end;
}
.content_card_inner .card_model .card_thumb img {
	display: block;
	width:100%;
	height:auto;
	
}

/*-- 
content_banner
====================================================== --*/
#content_banner {
	width:clamp(36rem, 94%, 160rem);
	margin:0 auto;
	padding:0 0 10rem 0;
	position: relative;
}
#content_banner a {
	display: flex;
	justify-content: center;
	align-items: center;
}
#content_banner a img {
	display: block;
	width:100%;
	height:auto;
}


/*-- 
common_footer
====================================================== --*/

/*-- footer_image --*/

#footer_image{
	width:100%;
	margin-bottom:5rem;
}
#footer_image_inner{
	width:100%;
	text-align:center;
}
#footer_image_inner img{
	transition:.3s;
}

/*-- txt_tax --*/

#common_footer .txt_tax{
	max-width:100rem;
	width:100%;
	margin:0 auto;
	padding:0 4rem;
	font-size:1.2rem;
	line-height:1.5;
}
/* sp */
@media screen and (max-width:767px){
	#footer_image{
		margin-bottom:4rem;
		margin-bottom:5.2151vw;
	}
	#footer_image_inner img{
		width:14rem;
		width:18.2529vw;
	}
	#common_footer .txt_tax{
		font-size:1rem;
		padding:0 2rem;
	}
}

/*-- 
modal
====================================================== --*/
body.modal-open {
	overflow: hidden;
}
.modal_contents {
	position: fixed;
	inset: 0;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(0,0,0,.7);
	z-index: 200;
}
.modal_contents.is-open {
	display: flex;
}
.modal_contents .modal_inner {
	position: relative;
	max-width: min(85rem, 92vw);
	height: 86dvh;
	width: 100%;
	background: #FFF;
	color: #fff;
	border-radius: 0.8rem;
	overflow-y: auto;
	outline: none;
}
.modal_contents .hide {
	position: fixed;
	top:4rem;
	right:4rem;
	z-index:201;
	margin-left: auto;
	width: 6rem;
	height: 6rem;
	font-size: 3rem;
	line-height: 6rem;
	text-align: center;
	cursor: pointer;
	border-radius: 50%;
	background: #FFF;
	opacity: 0;
}
.modal_contents.is-open .modal_inner {
	animation: modalIn .18s ease-out;
}
@keyframes modalIn {
	from { transform: translateY(8px); opacity: .0; }
	to   { transform: translateY(0);    opacity: 1; }
}
.modal_contents.is-open .hide {
	animation: hidebtn .3s .3s ease-out forwards;
	opacity: 0;
}
@keyframes hidebtn {
	from { opacity: 0; }
	to   { opacity: 1; }
}
.modal_header {
	display: grid;
	grid-template-columns: auto 1fr auto;
	column-gap:clamp(3rem, 3.2vw, 6rem);
	row-gap: clamp(2rem, 1.6vw, 3rem);
	align-items: start;
	background: var(--c-mineo);
	padding:clamp(3rem, 3.2vw, 6rem);
}
.modal_header.type2 {
	gap:clamp(1rem, 1vw, 1.8rem);
}
.modal_header.type3 {
	row-gap:0;
}
.modal_header .medical_type {
	width:fit-content;
	writing-mode: vertical-rl;
}
.modal_header .medical_logo {
	width:clamp(17rem, 21.5vw, 39.9rem);
	margin:0 auto;
}
.modal_header .medical_excerpt {
	grid-column: span 3;
}

.modal_main .video_wrap {
	position: relative;
}
.modal_main .video_wrap iframe {
	display: block;
	width:100%;
	aspect-ratio: 16 / 9;
}
.modal_main video,
.modal_main img {
	display: block;
	width:100%;
	height: auto;
}
.modal_main .symptom_videos_btn {
	position: absolute;
	inset: 0;
	margin: auto; 
	z-index:2;
	width:15rem;
	height:15rem;
	border: none;
	background: transparent;
	transition: opacity .4s ease;
}
.modal_main .symptom_videos_btn:hover {
	opacity: 0.5;
}

.modal_main_inner {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 4.5rem;
}
.modal_main_inner h3 {
	display: block;
	text-align: center;
}
.modal_main_inner h4 {
	display: block;
	text-align: center;
}
.modal_main_inner h3 span,
.modal_main_inner h4 span {
	margin:0 auto;
}
.modal_main_inner h3 img {
	height:2.8rem;
}
.modal_main_inner h4 img {
	height:5.5rem;
}
.modal_main_inner h4.gyo1 img {
	height:2.4rem;
}
.modal_blc {
	margin:0 clamp(3rem, 3.2vw, 6rem);
	padding:0 0 4.5rem 0;
	border-bottom:5px dotted var(--c-mineo);
}
.modal_prescription .docter_comment {
	display: flex;
	justify-content: center;
	align-items: center;
}
.modal_prescription .docter_comment .commentbox {
	background: var(--c-mineo);
	padding:2.5rem;
	border-radius: 1.5rem;
	font-weight: bold;
	line-height: 1.4em;
	margin:0 5rem 0 0;
	position: relative;
}
.modal_prescription .docter_comment .commentbox .fukidashi {
	position: absolute;
	top:40%;
	right:-4rem;
	width:5rem;
}
.modal_prescription .docter_comment .img_doctor {
	width:clamp(10rem, 10vw, 19rem)
}
.modal_prescription .doctor_text {
	padding:clamp(3rem, 3.2vw, 6rem) 0 0;
	line-height: 1.8em;
}
.modal_prescription small {
	display: flex;
	justify-content: flex-start;
	align-items: start;
	font-size:1.2rem;
	line-height: 1.4em;
	position: relative;
	margin:2rem 0 0 0;
}
.modal_prescription small span {
	display: block;
	width: fit-content;
}
.modal_prescription small .label {
	padding:0 0 0 0.5rem;
}
.modal_prescription sup {
	font-size: 70%;
}
.modal_plan .plan_iconlist {
	padding:4.5rem 0 0 0;
	display: flex;
	justify-content: center;
	align-items: center;
	gap:2rem;
}
.modal_plan .plan_iconlist .iconbox {
	height:16.8rem;
}
.modal_plan .plan_iconlist .iconbox.four {
	height:15rem;
}
.modal_plan .plan_iconlist .iconbox img {
	display: block;
	width:auto;
	height:100%;
}
.modal_plan .plan_iconlist .icon_plus {
	width:2.4rem;
	height:2.4rem;
}
.campaign_price {
	display: flex;
	justify-content: center;
	align-items: end;
	gap:2rem;
	padding:3rem 0;
	border-bottom:5px dotted #ccc;
}
.campaign_price .general {
	width:26rem;
	padding:0 0 0.4rem 0;
}
.campaign_price .general.g_small {
	width:16.7rem;
}
.campaign_price .sign {
	width:1.5rem;
	padding:0 0 2.5rem 0;
}
.campaign_price .deal {
	width:28.1rem;
}
.breakdown .breakdown_head {
	display: grid;
	grid-template-columns: 2fr 1fr;
	padding:2rem 0;
}
.breakdown .deal {
	text-align: center;
}
.breakdown .breakdown_main.norm {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	line-height: 1.5em;
	padding:0 0 1.5rem;
}
.breakdown .breakdown_main.camp {
	display: grid;
	grid-template-columns: 2fr 1fr;
	align-items: center;
	line-height: 1.5em;
	padding:0 0 1.5rem;
}
.breakdown .breakdown_main .general_box {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
} 
.breakdown .breakdown_main > div {
	padding:0.5rem 0;
}
.breakdown .breakdown_main.norm .general_price {
	padding:0 0 0 2rem;
	position: relative;
}
.breakdown .breakdown_main.norm .general_price::after {
	content:'';
	position: absolute;
	top:50%;
	left:-1rem;
	width:1rem;
	height: 1.2rem;
	background: url(../img/icon_sign.svg) no-repeat center center;
	background-size: 100% auto;
	transform: translateY(-50%);
}
.breakdown .breakdown_main.camp .ondeal {
	position: relative;
}
.breakdown .breakdown_main.camp .ondeal::after {
	content:'';
	position: absolute;
	top:50%;
	right:0;
	width:1rem;
	height: 1.2rem;
	background: url(../img/icon_sign.svg) no-repeat center center;
	background-size: 100% auto;
	transform: translateY(-50%);
}
.campaine_note {
	border-top:1px solid #ccc;
	padding:2rem 0;
}
.campaine_note.iconnai {
	border:none;
	padding:2rem 0 0;
}
.campaine_note .note {
	display: flex;
	justify-content: flex-start;
	align-items: start;
	position: relative;
	line-height: 1.5em;
	padding:0.5rem 0;
}
.campaine_note .note span {
	display: block;
	width: fit-content;
}
.campaine_note .note span.label {
	padding:0 0 0 0.5rem;
}
.campaine_note .note a {
	display: inline-block;
	width:fit-content;
	padding:0 2rem 0 0.5rem;
	position: relative;
}
.campaine_note .note a::after {
	content:'';
	position: absolute;
	top:0;
	right: 0.5rem;
	width: 1.2rem;
	height: 1.2rem;
	background: url(../img/icon_blank.svg) no-repeat center center;
	background-size: 100% auto;
}
.campaine_detail {
	border-top:1px solid #ccc;
	padding:4.5rem 0 0;
}
.campaine_detail a {
	display: flex;
	justify-content: center;
	align-items: center;
	text-decoration: none;
}
.campaine_detail a .icon {
	width:1.7rem;
	margin:0 0 0 0.5rem;
}
.modal_links {
	display: flex;
	justify-content: center;
	align-items: center;
	gap:2rem;
	padding:0 0 4.5rem;
}
.modal_links a {
	width:34rem;
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: 2rem;
	padding:1.5rem 0;
	border-radius:5rem;
	font-size:1.6rem;
	text-decoration: none;
	position: relative;
}
.modal_links a .icon {
	display: block;
	width:4rem;
	margin:0 0 0 2rem; 
}
.modal_links a .icon img {
	width:100%;
	height: auto;
}
.modal_links a .label {
	width:calc(100% - 8rem);
	text-align: center;
	margin:0 4rem 0 0;
}

.btn_registration {
	background: var(--c-pink);
}
.btn_simulation {
	background: var(--c-mineo);
}

/* modal scrollbar */
.modal_contents .modal_inner{
  scrollbar-width: thin;
  scrollbar-color: #9bd4c3 rgba(255,255,255,0.01);
}
.modal_contents .modal_inner::-webkit-scrollbar{
  width: 8px;
  height: 8px;
}
.modal_contents .modal_inner::-webkit-scrollbar-track{
  background: rgba(255,255,255,0.01);
}
.modal_contents .modal_inner::-webkit-scrollbar-thumb{
  background: #9bd4c3;
  border-radius: 999px;
  border: 3px solid transparent;
  background-clip: content-box;
}
.modal_contents .modal_inner::-webkit-scrollbar-thumb:hover{
  background: #7fc9b6;
}
.modal_contents .modal_inner::-webkit-scrollbar-corner{
  background: transparent;
}

/* ダーク/ライト自動調整（お好みで） */
@media (prefers-color-scheme: dark){
  .modal_contents .modal_inner{
    scrollbar-color: #86c8b6 transparent;
  }
  .modal_contents .modal_inner::-webkit-scrollbar-thumb{ background: #86c8b6; }
  .modal_contents .modal_inner::-webkit-scrollbar-thumb:hover{ background: #6fb8a6; }
}
@media (prefers-color-scheme: light){
  .modal_contents .modal_inner{
    scrollbar-color: #62a89a rgba(0,0,0,.06);
  }
  .modal_contents .modal_inner::-webkit-scrollbar-track{ background: rgba(0,0,0,.06); }
  .modal_contents .modal_inner::-webkit-scrollbar-thumb{ background: #62a89a; }
  .modal_contents .modal_inner::-webkit-scrollbar-thumb:hover{ background: #4f988b; }
}
/* タッチ端末での慣性スクロール（iOSで滑らかに） */
@supports (-webkit-overflow-scrolling: touch){
  .modal_contents .modal_inner{ -webkit-overflow-scrolling: touch; }
}



/*-- 
For small window(PC)
====================================================== --*/
@media screen and (max-width:1400px) and (min-width:900px) {
	.fs_breakdown {
		font-size: 1.6rem;
	}
	.modal_header {
		padding:clamp(3rem, 3.2vw, 6rem) 15rem;
	}
	.modal_header .medical_logo {
		width:min(90%, 30rem);
	}
	.docter_comment {
		padding:3rem 0 0 0;
	}
}
/*-- 
For Tablet
====================================================== --*/
@media screen and (max-width:900px) and (min-width:768px) {
	/* font-size */
	.fs_explane {
		font-size:1.8rem;
	}
	.fs_breakdown {
		font-size: 1.6rem;
	}
	.fs_headlarge {
		font-size:clamp(3.2rem, 6vw, 4.6rem);
	}
	/* header */
	#header_inner .header_layout {
		grid-template-columns: 6fr 94fr;
	}
	#header_inner .header_layout .mainimage_left {
		border-radius: 0 4rem 0 0;
	}
	#header_inner .header_layout .mainimage_right .mainimage {
		border-left:2rem solid #FFF;
		border-bottom:2rem solid #FFF;
	}
	#header_inner .header_layout .mainimage_right img {
		border-radius: 4rem 0 0 4rem;
	}
	#header_inner .header_layout .mainimage_right2 {
		display: none;
	}
	#header_inner .header_layout .mainimage_right .icon_cm {
		bottom:4rem;
		right:2rem;
		width:10rem;
		height:10rem;
	}
	/* content_about */
	#content_about .icon_curve {
		top:-5.9rem;
		left:calc(6% - 1px);
		width:6rem;
		height:6rem;
	}
	.content_about_bg {
		width:100%;
		margin:-1px 0 0 0;
		border-radius: 0 4rem 4rem 0;
	}
	.content_about_inner {
		display: grid;
		grid-template-columns: 1fr;
		row-gap: clamp(3rem, 3.2vw, 6rem);
		position: relative;
		z-index:2;
		padding:clamp(7rem, 7.5vw, 14rem) 0;
	}
	/* card */
	#content_card {
		padding:5rem 0;
	}
	.content_card_bg {
		display: none;
	}
	.content_card_inner {
		grid-template-columns: 1fr;
	}
	.content_card_inner .medical_card {
		padding:5rem;
		grid-template-columns: 65fr 35fr;
	}
	.medical_summary.fs_summary {
		font-size:clamp(3rem, 4vw, 4rem)
	}
	.medical_summary span {
		padding:1rem;
		margin:0 0 0 0.85rem;
	}
	.medical_excerpt {
		display: grid;
		grid-template-columns: 1fr;
	}
	.medical_excerpt p.fs_text {
		font-size:2.2rem;
	}
	.content_card_inner .btn_medical_modal {
		margin:3rem 0 0 0;
	}
	.content_card_inner .card_model .card_thumb {
		display: none;
	}
	/* modal */
	.modal_contents .hide {
		top:2rem;
		right:2rem;
	}
	.modal_header {
		display: grid;
		grid-template-columns: 1fr auto;
		padding:5rem;
	}
	.modal_header .medical_type {
		grid-area: 1 / 1 / 2 / 2;
		width:fit-content;
		writing-mode:horizontal-tb;
	}
	.modal_header .medical_logo {
		grid-area: 2 / 1 / 3 / 2;
		width:min(90%, 34.8rem);
		margin:0 auto;
	}
	.modal_header .medical_summary {
		grid-area: 1 / 2 / 3 / 3;
	}
	.modal_header .medical_excerpt {
		grid-column: span 2;
	}
	.modal_main .symptom_videos_btn {
		width:12rem;
		height:12rem;
	}
	.modal_main_inner .modal_campaign h4 img {
		height:10rem;
	}
	.modal_main_inner .modal_campaign h4.gyo1 img {
		height:6.5rem;
	}
	.modal_blc {
		margin:0 4rem;
		padding:0 0 3rem 0;
	}
	.docter_comment {
		padding:3rem 0 0 0;
	}
	.modal_plan .plan_iconlist {
		padding:3rem 0 0 0;
		gap: 1.5rem;
	}
	.modal_plan .plan_iconlist .iconbox {
		height: 13.8rem;
	}
	.modal_plan .plan_iconlist .iconbox.four {
		height:13rem;
	}
	.modal_plan .plan_iconlist .icon_plus {
		width:2.4rem;
		height:2.4rem;
	}
	.modal_campaign .fs_headsmall {
		font-size:2.7rem;
	}
	.breakdown .breakdown_head {
		display: grid;
		grid-template-columns: 2fr 1fr;
		padding:2rem 0;
	}
	.breakdown .deal {
		text-align: center;
	}
	.breakdown .breakdown_main {
		line-height: 1.5em;
		padding:0 0 1.5rem;
	}
	.campaine_detail {
		padding:3rem 0 0;
	}
	.modal_links {
		gap:2rem;
	}
	.modal_links {
		width:90%;
		display: flex;
		justify-content: center;
		align-items: center;
		gap:2rem;
		margin:0 auto;
		padding:0 0 4.5rem;
	}
	.modal_links a {
		width:100%;
		display: flex;
		justify-content: center;
		align-items: center;
		column-gap: 2rem;
		padding:1.5rem 0;
		border-radius:5rem;
		font-size:1.6rem;
		text-decoration: none;
		position: relative;
	}
}
/*-- 
For SP
====================================================== --*/
@media screen and (max-width:767px) {
	.common_inner {
		width:80%;
	}
	/* header */
	#header_inner .header_layout {
		grid-template-columns: 5fr 95fr;
	}
	#header_inner .header_layout .mainimage_left {
		border-radius: 0 4rem 0 0;
	}
	#header_inner .header_layout .mainimage_right {
		aspect-ratio: 1 / 1;
	}
	#header_inner .header_layout .mainimage_right .mainimage {
		border-left:1rem solid #FFF;
		border-bottom:1.1rem solid #FFF;
	}
	#header_inner .header_layout .mainimage_right img {
		aspect-ratio: 1 / 1;
		border-radius: 2rem 0 0 2rem;
	}
	#header_inner .header_layout .mainimage_right2 {
		display: none;
	}
	#header_inner .header_layout .mainimage_right .icon_cm {
		bottom:3rem;
		right:1rem;
		width:8rem;
		height:8rem;
	}
	/* content_about */
	#content_about .icon_curve {
		top:-2.9rem;
		left:calc(5% - 1px);
		width:3rem;
		height:3rem;
	}
	.content_about_bg {
		margin:-1px 0 0 0;
		width:100%;
		border-radius: 0 2rem 2rem 0;
	}
	.sp_cp_catch {
		display: none;
		/*display: block;
		width:90%;
		margin:0 auto;*/
	}
	/* card */
	#content_card {
		padding:5rem 0;
	}
	.content_card_bg {
		display: none;
	}
	.content_card_inner {
		grid-template-columns: 1fr;
	}
	.content_card_inner .medical_card {
		padding:2.5rem;
		row-gap: 3rem;
		column-gap: 1rem;
		grid-template-columns: 70fr 35fr;
	}
	.content_card_inner .medical_card:hover {
		transform: scale(1);
	}
	.medical_summary.fs_summary {
		font-size:clamp(1.4rem, 4vw, 4rem)
	}
	.medical_summary span {
		padding:0.5rem;
		margin:0 0 0 0.4rem;
	}
	.medical_excerpt {
		display: grid;
		grid-template-columns: 1fr;
	}
	.medical_excerpt p.fs_text {
		font-size:1.4rem;
	}
	.content_card_inner .btn_medical_modal {
		margin:3rem 0 0 0;
	}
	.content_card_inner .btn_medical_modal.fs_headsmall {
		font-size:1.4rem;
	}
	.content_card_inner .btn_medical_modal .icon {
		width:0.6rem;
	}
	.content_card_inner .card_model .card_thumb {
		display: none;
	}
	
	/* modal */
	.modal_contents .hide {
		top:2rem;
		right:1rem;
		width:4rem;
		height:4rem;
		font-size:2.4rem;
		line-height: 4rem;
		box-shadow: 0 0 1rem rgba(0,0,0,0.3);
	}
	.modal_header {
		display: grid;
		grid-template-columns: 1fr auto;
		padding:2.5rem;
	}
	.modal_header .medical_type {
		grid-area: 1 / 1 / 2 / 2;
		width:fit-content;
		writing-mode:horizontal-tb;
	}
	.modal_header .medical_logo {
		grid-area: 2 / 1 / 3 / 2;
		width:min(90%, 34.8rem);
		margin:0 auto;
	}
	.modal_header .medical_summary {
		grid-area: 1 / 2 / 3 / 3;
	}
	.modal_header .medical_excerpt {
		grid-column: span 2;
	}
	.modal_main .video_wrap {
		width:100%;
	}
	.modal_main .symptom_videos_btn {
		width:6rem;
		height:6rem;
	}
	.modal_main_inner {
		row-gap: 3rem;
	}
	.modal_main_inner h3 img,
	.modal_main_inner h4 img {
		height:2.2rem;
	}
	.modal_main_inner .modal_campaign h4 img {
		height:8rem;
	}
	.modal_main_inner .modal_campaign h4.gyo1 img {
		height:5rem;
	}
	.modal_blc {
		margin:0 2rem;
		padding:0 0 3rem 0;
	}
	.docter_comment {
		padding:3rem 0 0 0;
	}
	.modal_prescription .docter_comment .commentbox {
		margin:0;
		padding: 1.5rem;
    	border-radius: 1rem;
	}
	.modal_prescription .docter_comment .commentbox .fukidashi {
		width: 2rem;
		right: -1.9rem;
	}
	.modal_prescription .docter_comment .commentbox.fs_summary {
		font-size:1.6rem;
	}
	.modal_prescription .docter_comment .img_doctor {
		width:6rem;
	}
	.modal_prescription .doctor_text {
		padding:2rem 0 0 0;
	}
	.modal_prescription small {
		font-size:1rem;
	}
	.modal_plan .plan_iconlist {
		display: block;
		padding:3rem 0 0 0;
	}
	.modal_plan .plan_iconlist .iconbox {
		width:fit-content;
		margin:0 auto;
	}
	.modal_plan .plan_iconlist .icon_plus {
		width:2.4rem;
		height:2.4rem;
		margin:1rem auto;
	}
	.modal_plan .plan_iconlist .iconbox.spicon {
		height:12rem;
	}

	.modal_campaign .fs_headsmall {
		font-size:2rem;
	}
	.campaign_price {
		padding:2rem 0;
	}
	.campaign_price .general {
		width:15.4rem;
	}
	.campaign_price .general.g_small {
		width:9rem;
	}
	.campaign_price .sign {
		width:1rem;
		padding: 0 0 1rem 0;
	}
	.campaign_price .deal {
		width:15.4rem;
	}
	.breakdown .breakdown_head {
		display: grid;
		grid-template-columns: repeat(2,1fr);
		padding:2rem 0;
	}
	.breakdown .deal {
		text-align: center;
	}
	
	.breakdown .breakdown_main.norm .general_box.ondeal::after {
		content:'';
		position: absolute;
		top:50%;
		right:0;
		width:0.8rem;
		height: 0.9rem;
		background: url(../img/icon_sign.svg) no-repeat center center;
		background-size: 100% auto;
		transform: translateY(-50%);
	}
	.breakdown .breakdown_main.norm {
		display: grid;
		grid-template-columns: 1fr;
		align-items: center;
		line-height: 1.5em;
		padding:0 0 1.5rem;
	}
	.breakdown .breakdown_main.camp {
		display: grid;
		grid-template-columns: 55fr 45fr;
		align-items: center;
		line-height: 1.5em;
		padding:0 0 1.5rem;
	}
	.breakdown .breakdown_main .general_box {
		display: grid;
		grid-template-columns: 1fr 1fr;
		align-items: center;
	} 
	.breakdown .breakdown_main > div {
		padding:0.5rem 0;
	}
	.breakdown .breakdown_main.norm .general_price {
		padding:0 0 0 2rem;
		position: relative;
	}
	.breakdown .breakdown_main.norm .general_price::after {
		content:'';
		position: absolute;
		top:50%;
		left:-1rem;
		width:1rem;
		height: 1.2rem;
		background: url(../img/icon_sign.svg) no-repeat center center;
		background-size: 100% auto;
		transform: translateY(-50%);
	}
	.breakdown .breakdown_main.camp .general_box {
		grid-template-columns: 1fr;
		position: relative;
	}
	.breakdown .breakdown_main.camp  .ondeal::after {
		content:none;
	}
	.breakdown .breakdown_main.camp  .general_box.ondeal::after {
		content:'';
		position: absolute;
		top:50%;
		right:0;
		width:0.8rem;
		height: 0.9rem;
		background: url(../img/icon_sign.svg) no-repeat center center;
		background-size: 100% auto;
		transform: translateY(-50%);
	}

	.campaine_note .note {
		padding: 0.5rem 0;
	}
	.campaine_detail {
		padding:3rem 0 0;
	}
	.modal_links {
		flex-wrap: wrap;
		gap:2rem;
	}
	.modal_links a {
		width:90%;
	}
}