@charset "utf-8";

/*====================================================================================================
  SUBPAGE
====================================================================================================*/
#subpage {
	position: relative;
	font-size: 1.0625rem;
	background-image: 
		linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%),
		url(../../image/bg-pattern.png);
	background-repeat: no-repeat, repeat;
	background-size: 100% 100px, 100px auto;
	background-position: bottom, top;
}

/*** mainimg *******************************************************/
#subpage .mainimg {
	position: relative;
	top: 0;
	width: 100%;
	height: auto;
	z-index: 1;
	padding: 0;
}
#subpage h2 {
	position: absolute;
	width: 100%;
	text-align: center;
	text-shadow: 0px 0px 12px rgba(88, 88, 191, 1);
	color: #fff;
	font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif, system-ui;
	font-size: clamp(1.75rem, 1.386rem + 1.55vw, 3.25rem);/* 375:28px, 1920:52px */
	font-weight: 700;
	font-weight: bold;
	top: 50%;
	translate: 0 -0.5em;
}


/*** main *******************************************************/
#subpage #main { width: 100%; max-width: 1000px; margin: 0 auto; padding-bottom: var(--bottom);}
#subpage .pan ul {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 3.75rem;
}
#subpage .pan ul:first-child a { text-decoration: underline;}
#subpage .pan ul:last-child { color: var(--violet);}
#subpage .pan li + li { position: relative; padding-left: 2em;}
#subpage .pan li + li::before {
	content: url(../../image/arrow2.png);
	position: absolute;
	display: block;
	width: 1em;
	inset: 0.5lh auto auto 1em;
	translate: -25% -55%;
}
/*** news *******************************************************/
#subpage .news_area {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
}
#subpage .news_list {
	position: relative;
	display: flex;
	gap:2.5rem;
	padding-block: 1.5rem;
}
 #subpage li.news_list::before {
	position: absolute;
	content: "";
	width: 100%;
	height: 3px;
	background: url(../../image/dot.svg) repeat-x bottom / 10px auto;
	bottom: 0;
	}



/* ↓ KAERU */
/*---------------------------------------------------------------------------
  KAIGYOU
---------------------------------------------------------------------------*/

#subpage p.indention {
	clear:both;
	margin: 0 2%;
	height:40px;
	text-indent: -9999px;
	background:none;
}

/*---------------------------------------------------------------------------
  MIDASHI
---------------------------------------------------------------------------*/
#subpage h3 {
	width: 100%;
	position: relative;
	font-size: clamp(1.75rem, calc(1.629rem + 0.518vw), 2.25rem); /* min: 28px, max: 36px */
	color: var(--violet);
	font-family: "Zen Maru Gothic";
	text-align: center;
	margin-bottom: 5.625rem;
}
#subpage h3:before {
	position: absolute;
	background-color: var(--violet);
	bottom: -1.875rem;
	content: "";
	height: 3px;
	left: 50%;
	transform: translateX(-50%);
	width: 50px;	
}
#subpage h4.mid {
	width: 100%;
	color: var(--green);
	text-align: left;
	font-weight: 700;
	font-size: clamp(1.188rem, calc(1.157rem + 0.129vw), 1.313rem); /* min: 19px, max: 21px */; 
	padding-bottom: 15px;
	border-bottom: solid 2px var(--green);
	margin-bottom: 1.25rem;
}
#subpage h4:not([class]) {
	background-color: #fff;
	color: var(--green);
	font-size: clamp(1.063rem, calc(1.047rem + 0.065vw), 1.125rem); /* min: 18px, max: 17px */
	line-height:3.75rem;
	border-radius: 3px;
	padding-left: 10px;
	margin-bottom: 1.25rem;
}
#subpage > :where(h3, h4):first-child { margin-top:0;}


/*---------------------------------------------------------------------------
  COMMENT
---------------------------------------------------------------------------*/

#subpage .comment1 {
	clear:both;
	margin:0 0 20px;
	text-align:justify;
}
#subpage .comment2 {
	clear:both;
	margin:2.5rem 5%;
	padding:1.25rem;
	background:#EEE;
	border: 1px solid #999;
	border-radius: 20px;
}
#subpage .comment3 {
	clear:both;
	margin:2.5rem 5%;
	padding:1.25rem;
	background: #ffecec;
	border: 1px solid #ff6161;
	border-radius: 20px;
}
#subpage .comment4 {
	clear:both;
	margin:2.5rem 5%;
	padding:1.25rem;
	border:solid 2px var(--green);
	background:#E5F6F1;
	border-radius:20px / 30px;
}

/*---------------------------------------------------------------------------
  HYOU
---------------------------------------------------------------------------*/

#subpage table.hyou {
	clear:both;
	margin:1.5rem auto 0;
	max-width:1100px;
	width:100%;
	border-collapse:collapse;
	border-top:solid 1px #999;
	border-left:solid 1px #999;
}
#subpage table.hyou th,
#subpage table.hyou td {
	padding:0.75rem 1.25rem;
	font-size:1rem;
	border-right:solid 1px #999;
	border-bottom:solid 1px #999;
	background-color: #fff;
}
#subpage table.hyou th {
	font-weight:700;
	background: #f5f5f5;
	color:#1a1a1a;
}
#subpage table.hyou td.sm_mid {
	display:none;
	color:#1a1a1a;
	font-weight:bold;
}

/* 2RETU */
#subpage table.hyou2 th { width:30%;}
#subpage table.hyou2 td { width:70%;}
#subpage table.hyou2+table.hyou2 { border-top:none; margin-top:0;}
#subpage table.hyou2 td table {
	border-collapse:collapse;
	display:block;
	max-height:300px;
	overflow:auto;
}
#subpage table.hyou2 td table th,
#subpage table.hyou2 td table td { width:auto;}

/* 3RETU */
#subpage table.hyou3 { margin:0 2%;}
#subpage table.hyou3 th,
#subpage table.hyou3 td { width:33%; }
#subpage table.hyou3+table.hyou3 { border-top:none; }

/* 4RETU */
#subpage table.hyou4 { margin:0 2%;}
#subpage table.hyou4 th,
#subpage table.hyou4 td { width:25%; }
#subpage table.hyou4+table.hyou4 { border-top:none; }

/* 5RETU */
#subpage table.hyou5 { margin:0 2%;}
#subpage table.hyou5 th,
#subpage table.hyou5 td { width:20%;}
#subpage table.hyou5+table.hyou5 { border-top:none; }

/* FREE */
#subpage .pc_table { display:block;}
#subpage .sm_table { display:none;}
#subpage .pc_table table,
#subpage .sm_table table {
	clear:both;
	margin:10px 2%;
	width:96%;
	border-collapse:collapse;
	border-top:1px solid #DDD;
	border-left:1px solid #DDD;
}
#subpage .pc_table table td,
#subpage .sm_table table td {
	padding:5px 10px;
	background:#FFF;
	border-right:1px solid #DDD;
	border-bottom:1px solid #DDD;
}
#subpage .pc_table thead td,
#subpage .sm_table thead td { background:#EEE;}

/* FIX */
#subpage .fix_table {}
#subpage .fix_table table {
	clear:both;
	margin:10px 2%;
	width:96%;
	border-collapse:collapse;
	border-top:1px solid #DDD;
	border-left:1px solid #DDD;
}
#subpage .fix_table table th,
#subpage .fix_table table td {
	padding:5px 10px;
	border-right:1px solid #DDD;
	border-bottom:1px solid #DDD;
}
#subpage .fix_table table th {
	background:#EEE;
	font-weight:bold;
	text-align:center;
}
#subpage .fix_table table td { background:#FFF;}

/*---------------------------------------------------------------------------
  LIST
---------------------------------------------------------------------------*/

/* ul */
#subpage ul.list-ul {
	clear:both;
	margin:0 2%;
	padding:5px 0;
}
#subpage ul.list-ul li {
	position:relative;
	padding: 0 0 0 20px;
}

#subpage ul.list-ul li:before {
	content:"";
	position:absolute;
	display:block;
	width:7px;
	aspect-ratio:1;
	background-color: #000;
	border-radius:50%;
	inset:0.5lh auto auto 0;
	translate:0 -50%;
}

/* ol */
#subpage *:not(.list-ol):has( + .list-ol) {
	counter-reset:num;
}
#subpage .list-ol {
	counter-increment:num;
	clear:both;
	margin:0 2%;
	padding:5px 0;
}
#subpage .list-ol div {
	padding-left:1.375rem;
	text-indent:-1.125rem;
}
#subpage .list-ol div:before {
	content:counter(num)".";
	padding-right:0.375em;
	font-weight: 700;
	color: var(--green);
}

/*---------------------------------------------------------------------------
  LINK
---------------------------------------------------------------------------*/

#subpage .link:not(.link4) {
	position: relative;
	margin: 0 2% 2% 2%;
	padding: 0 0 10px 1.2em;
	font-weight: 700;
	font-size: 1.125rem;
}
/* #subpage .link.right { width: fit-content; margin-inline: auto 2%;} */
#subpage .link:not(.link4)::before {
	width: 20px;
	height: 20px;
	font-weight: 700;
	content:"";
	position: absolute;
	display: block;
	aspect-ratio: 1;
	background: url(../image/icon-link.png) no-repeat center / contain;
	inset: 0.5lh auto auto 0;
	translate: 0 -50%;
}
#subpage .file {
	clear: both;
	margin: 0 2%;
	padding: 0 0 10px;
}
#subpage .file img { padding-right: 10px;}

/* LINK PLURAL�@*************************/
/* LINK BOX2 */ #subpage .link2 { clear: none; float: left; width: 46%;}
/* LINK BOX3 */ #subpage .link3 { clear: none; float: left; width: 29.3%;}
/* LINK BOX4 */ #subpage .link4 { clear: none; float: left; width: 21%; margin-left: 2.5%; }
/* LINK BOX4 */ #subpage .link4 a { text-decoration: underline;}

/* FILE PLURAL�@*************************/
/* FILE BOX2 */ #subpage .file2 { clear: none; float: left; width: 46%;}
/* FILE BOX3 */ #subpage .file3 { clear: none; float: left; width: 29.3%;}
/* FILE BOX4 */ #subpage .file4 { clear: none; float: left; width: 21%;}

/* FILELINK */ #subpage .pdf a { margin-left: 0.5rem;}


/*---------------------------------------------------------------------------
  EMBEDDED
---------------------------------------------------------------------------*/

#subpage .embedded {
  position: relative;
	clear: both;
	margin: 0 2%;
	padding: 0 0 20px;
}
#subpage .embedded iframe { width: 100%;}


/*---------------------------------------------------------------------------
  PHOTO
---------------------------------------------------------------------------*/

/* #subpage .photo img { border-radius: 20px;} */

#subpage .photo-l {	float: left; margin: 0 20px 0 0;}
#subpage .photo-r {	float: right;}
#subpage .photo-c { clear: both; text-align: center;}
#subpage .photo-l img {}
#subpage .photo-r img { margin: 0 0 0 20px;}
#subpage .photo-c img { margin: 0 0 10px;}
#subpage .photo-l p,
#subpage .photo-r p,
#subpage .photo-c p { margin: 0 0 5px;}
#subpage .caption { font-size: 80%; text-align: center;}

/* PHOTO BOX�@*************************/
#subpage ul.photo_box { float: left; margin: 2%;}
#subpage ul.photo_box li {}
#subpage ul.photo_box li.photo { margin: 0 0 5px; text-align: center;}
#subpage ul.photo_box li.cap {}
#subpage ul.photo_box li.youtube { position: relative;}
#subpage ul.photo_box li.youtube iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}
#subpage ul.photo_box img { width:100%; max-width:100%;}
/* PHOTO BOX1 */ #subpage ul.g1 { width: 800px; float:none; margin-inline:auto;}
/* PHOTO BOX2 */ #subpage ul.g2 { width: calc(100% / 2 - 4%);}
/* PHOTO BOX3 */ #subpage ul.g3 { width: calc(100% / 3 - 4%);}
/* PHOTO BOX4 */ #subpage ul.g4 { width: calc(100% / 4 - 4%);}
/* PHOTO BOX5 */ #subpage ul.g5 { width: calc(100% / 5 - 4%);}
#subpage ul.g1 img { width:100%; height: auto; text-align: center;}
#subpage ul.g2 img { width:100%; height: auto;}
#subpage ul.g3 img { width:min(300px, 100%); height: auto;}
#subpage ul.g4 img { width:100%; height: auto;}
#subpage ul.g5 img { width:100%; height: auto;}

#subpage ul.g1.photo_box .photo { text-align: center;}
#subpage ul.g1.photo_box .photo img { width: auto;}

#subpage ul.g3 .photo { text-align: center;}

/*---------------------------------------------------------------------------
  BOX
---------------------------------------------------------------------------*/
#subpage .box1 h4:not([class]),
#subpage .box2 h4:not([class])
 {
	color:unset;
	clear:none;
	border:none;
	margin:5px 0 5px;
	padding:0;
	font-size:1.3rem;
	background: transparent;
	color: var(--green);
}
#subpage .box1 h4:not([class]):empty,
#subpage .box2 h4:not([class]):empty {
	display: none;
}

/* BOX1 */
#subpage .box1 {
	clear:both;
	margin:20px 2%;
	width:96%;
}
#subpage .box1 .photo-c img { max-width:800px; height:auto; width:100%;}
#subpage .box1 .photo-l img { max-width:480px; height:auto;}
#subpage .box1 .photo-r img { max-width:480px; height:auto;}
#subpage .box1:after { display:block; clear:both;	content:"";}

/* BOX2 */
#subpage .box2 {
	float:left;
	margin:20px 2%;
	width:46%;
}
#subpage .box2 .photo-l img { max-width:210px; height:auto;}
#subpage .box2 .photo-r img { max-width:210px; height:auto;}

/*---------------------------------------------------------------------------
  BUTTON
---------------------------------------------------------------------------*/
#subpage .btn {}
#subpage .btn a {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 0.5rem;
	align-items: center;
	font-weight: 700;
	height: 55px;
	line-height: 55px;
	color: #fff;
	text-align: center;
	font-size: clamp(1rem, 0.479rem + 0.69vw, 1.313rem); /* 1200:16px, 1920:21px */
	max-width: 350px;
	background: var(--green);
	border-radius: 100vh;
	margin: 2% auto;
	--iconsize: 9px;
	padding-inline: 1rem;
}
#subpage .btn a:before { content: "";}
#subpage .btn a::after {
	content: "";
	display: block;
	width: var(--iconsize);
	height: auto;
	aspect-ratio: 9/12;
	background: url(../../image/arrow1.png) no-repeat center / contain;

}
#subpage .btn a:hover { opacity: 0.8;}

/* BUTTON BOX1 */ #subpage .b1 { clear: both; float:none;}
/* BUTTON BOX2 */ #subpage .b2 { float:left; width:calc(100% / 2 - 4%); margin-inline: 2%;}
/* BUTTON BOX3 */ #subpage .b3 { float:left; width:calc(100% / 3 - 4%); margin-inline: 2%;}

/*---------------------------------------------------------------------------
  COLUMNBOX
---------------------------------------------------------------------------*/
#subpage .column {}
#subpage .column:after { /*float_clear*/ display:block; clear:both; content:"";}
#subpage .column .col2 { float: left; margin: 2%; width: 46%;}
#subpage .column .col3 { float: left; margin: 2%; width: 29.3%;}
#subpage .column .col2:nth-child(2+1),
#subpage .column .col3:nth-child(3+1) { clear:both;}

/*---------------------------------------------------------------------------
  FLOW
---------------------------------------------------------------------------*/

#subpage ul.flow_box {}
#subpage ul.flow_box:after { /*float_clear*/ display:block; clear:both; content:"";}
#subpage ul.flow_box li {
	position:relative;
	float:left;
	margin:2.5% 2%;
	padding:15px;
	color:#FFF;
	text-align:center;
	background: var(--green);
	border-radius: 5px; /* CSS3 */
	-webkit-border-radius: 5px; /* Safari,Google Chrome */
	-moz-border-radius: 5px; /* Firefox */
	box-sizing:border-box;
}
#subpage ul.flow_box li a { color:#fff; text-decoration: none;}
#subpage ul.flow_box li a:hover {
	background:#444343;
	border-radius: 5px; /* CSS3 */
	-webkit-border-radius: 5px; /* Safari,Google Chrome */
	-moz-border-radius: 5px; /* Firefox */
}
#subpage ul.flow_box li+li:before {
	position:absolute;
	top:0;
	left:-22px;
	display:block;
	clear:both;
	content:"";
	width:15px;
	height:100%;
	background:url(../image/flow_bg_pc.png) no-repeat center center;
}
#subpage .flow1 { position:relative; margin-inline: auto; width: 80%;}
#subpage .flow1 li { float:none; width:96%;}
#subpage .flow1+.flow1:before {
	position:absolute;
	top:-15px;
	left:0;
	display:block;
	clear:both;
	content:"";
	width:100%;
	height:30px;
	background:url(../image/flow_bg_sm.png) no-repeat center center;
}
#subpage .flow2 li { width:46%;}
#subpage .flow3 li { width:29.3%;}
#subpage .flow4 li { width:21%;}

#subpage .flow1a { position:relative;}
#subpage .flow1a+.flow1a {margin-top:3%;}
#subpage .flow1a li+li:before { display:none !important;}
#subpage .flow1a li:nth-child(1) { width:32%; background: var(--green);}
#subpage .flow1a li:nth-child(2) { width:60%; padding:0; text-align: left; color: #343434; background: none;}
#subpage .flow1a+.flow1a:before {
	position:absolute;
	top:-25px;
	left:0;
	display:block;
	clear:both;
	content:"";
	width:36%;
	height:30px;
	background:url(../image/flow_bg_sm.png) no-repeat center center;
}

/*---------------------------------------------------------------------------
  FAQ
---------------------------------------------------------------------------*/

#subpage dl.faq { clear: both; margin:1rem auto; padding:3%;}
#subpage dl.faq dt {
	position: relative;
	padding: 0 0 1.5rem 3rem;
	font-weight: bold;
	color:#343434;
	border-bottom: thin solid #ccc;
}
#subpage dl.faq dd {
	position: relative;
	padding: 0 0 1.5rem 3rem;
	margin-top:1.5rem;
	color:#343434;
	border-bottom: thin solid #ccc;
}
#subpage dl.faq dt:after,
#subpage dl.faq dd:after { 
	display:block;
	clear:both;
	position: absolute;
	top: 0;
	left: 0;
	font-weight: bold;
	font-size:18px;
}
#subpage dl.faq dt:after {
	content: "Q";
	color: #fff;
	background-color: var(--green);
	width: 2rem;
	text-align: center;
	border-radius: 2px;
}
#subpage dl.faq dd:after {
	content:"A";
	color: #fff;
	background-color: #D55062;
	width: 2rem;
	text-align: center;
	border-radius: 2px;
}
/*---------------------------------------------------------------------------
  Doctor 追加
---------------------------------------------------------------------------*/
.doctor {
	float: none;
	clear: both;
	display: flex;
	gap: 4.375rem;
	margin: 3.125rem;
}
.doctor .d_left { flex-basis: 30%;}
.doctor .d_right { flex-basis: 70%;}
.doctor img { width: 300px;}
.doctor .d_name {
	display: flex;
	gap: 1.875rem;
	margin-bottom: 1.5rem;
}
.doctor .post {
	font-size: clamp(0.75rem, 0.657rem + 0.18vw, 0.875rem); /* 820:12px, 1920:14px */
	font-weight: 700;
	align-self: center;
}
.doctor .name {
	font-size: clamp(1.25rem, 1.064rem + 0.36vw, 1.5rem); /* 820:20px, 1920:24px */
	font-weight: 700;
}
