/* base
-------------------- */
:root{
	--color-pink: #EB7171;
	--color-black: #3F3F3F;
	--color-white: #FFFFFF;
	--color-gray: #d9d9d9;
	--color-red: #dc3232;
	--color-blue: #5797ef;
	--color-pink-light: #E89D90;
	--color-pink-light2: #FCF6F5;
	--color-pink-light3: #FFF3F3;
	--color-gray-light: #F7F7F7;

	--fz-10: 0.625rem;
	--fz-12: 0.75rem;
	--fz-14: 0.8751rem;
	--fz-16: 1rem;
	--fz-20: 1.25rem;
	--fz-22: 1.37rem;
	--fz-24: 1.5rem;
	--fz-28: 1.75rem;
	--fz-32: 2rem;
	--fz-40: 2.5rem;
	--fz-48: 3rem;
	--fz-56: 3.5rem;
	--fz-64: 4rem;
}

body *{
	box-sizing: border-box;
}

html, body{
	margin: 0;
	padding: 0;
}

section:after{
	content: '';
	display: block;
	width: 100%;
	height: 1px;
	clear: both;
	margin-top: -1px;
}

h1,h2,h3,h4,h5,h6,p{
	margin-block: 0;
	display: block;
}

p + p{
	margin-top: 1em;
}

ul, ol{
	margin-block: 0;
	padding-inline: 0;
	list-style-position: inside;
}
ul.list{
	padding-inline: 1em;
}
ul.list li{
	list-style: '・';
}

img{
	display: block;
	max-width: 100%;
	height: auto;
}

iframe{
	max-width: 100%;
	/* max-height: 30vh; */
}

table{
	width: 100%;
}
th, td{
	padding-block: 12px;
	border-bottom: 1px solid #E3E3E3;
	text-align: left;
}
th{
	font-weight: 500;
}

table.table-pink{
	border-radius: 16px;
	border-collapse: collapse;
	outline: 1px solid var(--color-gray);
	overflow: clip;
}
table.table-pink tr:where( :nth-child(odd) ){
	background-color: var(--color-pink-light3);
}
table.table-pink :where(th,td){
	padding: 20px;
}
table.table-pink th{
	text-align: center;
}
table.table-pink :where(th,td) + :where(th,td){
	border-left: 1px solid var(--color-white);
}
table.table-pink thead tr{
	background-color: var(--color-pink);
	color: var(--color-white);
	font-weight: 500;
}
table.table-pink thead :where(th,td){
	text-align: center;
	white-space: nowrap;
}

table.table-simple{
	border-collapse: collapse;
	border: 1px solid var(--color-gray);
	overflow: clip;
}
table.table-simple :where(th,td){
	padding: 10px 5px;
	text-align: center;
}
table.table-simple :where(th,td) + :where(th,td){
	border-left: 1px solid var(--color-gray);
}
table.table-simple thead tr{
	background-color: var(--color-pink);
	color: var(--color-white);
	font-weight: 500;
}
table.table-simple thead :where(th,td){
	text-align: center;
	white-space: nowrap;
}

fieldset{
	border: none;
}

input[type=text],
input[type=email],
input[type=tel],
input[type=password],
input[type=url],
input[type=date],
input[type=search],
input[type=number],
input[type=button],
input[type=submit],
button,
select,
textarea{
	width: 100%;
	max-width: 100%;
	min-height: 45px;
	padding: 1rem;
	border-radius: 4px;
	border: 1px solid var(--color-gray);
	line-height: 1.5;
	box-sizing: border-box;
}
input[type=text]::placeholder,
input[type=email]::placeholder,
input[type=tel]::placeholder,
input[type=password]::placeholder,
input[type=url]::placeholder,
input[type=date]::-webkit-datetime-edit,
input[type=search]::placeholder,
input[type=number]::placeholder,
select:has(option:checked[value=""]),
textarea::placeholder{
	color: #b7b7b7;
}

select{
	-webkit-appearance: none;
	-moz-appearance: none;
	-ms-appearance: none;
	appearance: none;
	padding-right: 30px;
	background: #fff url(../images/ico-arrow-down.svg) no-repeat right 5px center;
	background-size: 9px 15px;
}
select:focus option{
	color: var(--color-black);
}

input.calendar{
	position: relative;
	padding-right: 30px !important;
	background: var(--color-white) url(../images/ico-calendar.svg) no-repeat right 5px center;
	background-size: 24px;
}

.pink{ color: var(--color-pink); }

.bg-white{ background-color: var(--color-white); }
.bg-gray{ background-color: var(--color-gray-light); }
.bg-pink{ background-color: var(--color-pink); color: var(--color-white); }
.bg-pink-light{ background-color: var(--color-pink-light); }
.bg-pink-light2{ background-color: var(--color-pink-light2); }
.bg-pink-light3{ background-color: var(--color-pink-light3); }

.fz-2xs{ font-size: var(--fz-10); }
.fz-xs{ font-size: var(--fz-12); }
.fz-s{ font-size: var(--fz-14); }
.fz-m{ font-size: var(--fz-16); }
.fz-l{ font-size: var(--fz-20); }
.fz-xl{ font-size: var(--fz-24); }
.fz-2xl{ font-size: var(--fz-28); }
.fz-3xl{ font-size: var(--fz-32); }
.fz-4xl{ font-size: var(--fz-40); }
.fz-5xl{ font-size: var(--fz-48); }
.fz-6xl{ font-size: var(--fz-64); }

.radius-4{ border-radius: 4px; }
.radius-8{ border-radius: 8px; }
.radius-16{ border-radius: 16px; }

.wrap{
	max-width: min(1080px,100%);
	margin-inline: auto;
}

.grid{
	display: grid;
}

.flex{
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: center;
}

.form-group{
	margin-top: 1em;
}
.form-group + .form-group:has(label){
	padding-block: 20px;
  border-top: 1px solid var(--color-gray);
}
.form-group > label{
	margin-bottom: 10px;
	font-size: 1.2em;
}
.form-group input[type=submit]:not([disabled]){
	background-color: var(--color-pink);
	color: var(--color-white);
}
.form-group .wpcf7-not-valid-tip{
	color: var(--color-pink);
}


/* common
-------------------- */
html{
	font-size: 16px;
}
body{
	background-color: var(--color-white);
	color: var(--color-black);
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: var(--fz-16);
	line-height: 1.5;
}
body:has(#main_header.open){
	overflow: hidden;
}

a{
	color: var(--color-black);
	text-decoration: none;
}
a[href^='tel:']{
	position: relative;
	padding-left: 1.25em;
	margin-block: calc((1em - 1lh) / 2);
	letter-spacing: 0.04em;
	white-space: nowrap;
}
a[href^='tel:']:before{
	content: '';
	display: inline-block;
	width: 0.75em;
	height: 0.75em;
	background: url('../images/ico-phone.svg') no-repeat center / contain;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	filter: brightness(25%) contrast(100%);
}


a.btn{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: 8px 15px;
	background-color: var(--color-pink);
	border-radius: 8px;
	color: var(--color-white);
	text-align: center;
	position: relative;
}
a.btn:hover{
	filter: brightness(1.1) drop-shadow(0 0 5px rgb(0 0 0 / 0.3));
}
a.btn.small{
	margin-inline: 5px;
	padding: 2px 4px;
	border-radius: 3px;
}

.pink_btn{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: 12px 10px;
	width: 100%;
	max-width: 360px;
	background-color: var(--color-pink);
	border-radius: 50px;
	color: var(--color-white);
	text-align: center;
	position: relative;
}
.pink_btn:after{
	content: '';
	display: inline-block;
	width: 20px;
	height: 20px;
	margin-left: 20px;
	border-radius: 100%;
	background: var(--color-white) url('../images/ico-btn-arrow.svg') no-repeat center;
	background-size: 10px;
	box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.08);
}
.pink_btn:hover{
	filter: brightness(1.1) drop-shadow(0 0 5px rgb(0 0 0 / 0.3));
}

.pdf_btn{
	display: inline-block;
	padding: 12px 40px 12px 14px;
	border: 1px solid var(--color-pink);
	border-radius: 100px;
	background-color: var(--color-white);
	color: var(--color-pink);
	font-weight: 500;
	position: relative;
}
.pdf_btn:after{
	content: '';
	display: inline-block;
	width: 15px;
	height: 19px;
	background: url(../images/ico-pdf.svg) no-repeat center / contain;
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
}

hgroup:has(h2){
	margin-bottom: 40px;
	padding-top: 38px;
	background: url('../images/heading-bg.png') no-repeat center top / contain;
	text-align: center;
}
hgroup:has(+p){
	margin-bottom: 20px;
}
hgroup small{
	display: block;
	color: var(--color-pink);
	font-size: var(--fz-20);
	font-weight: 500;
}
hgroup:has(h2) small{
	text-transform: uppercase;
}
hgroup h1,
hgroup h2{
	font-size: var(--fz-40);
	font-weight: 500;
}
hgroup ~ p{
	font-weight: 500;
	text-align: center;
}
hgroup ~ p:nth-last-of-type(1){
	margin-bottom: 40px;
}
.bg-pink hgroup:has(h2){
	background: url('../images/heading-bg-black.png') no-repeat center top / contain;
}
.bg-pink hgroup :where(small,h1,h2){
	color: var(--color-white);
}

mark{
	display: inline-block;
	padding: 3px 6px;
	background-color: var(--color-gray);
}

.nav{
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-start;
	gap: 5px 20px;
	align-items: center;
}
#main_header.open .nav{
	flex-direction: column;
	align-items: stretch;
}
.nav, .nav li{
	list-style: none;
}

.right{
	text-align: right;
}
.center{
	text-align: center;
}

.bold{
	font-weight: 500;
}

.sp-only{
	display: none;
}
.pc-only{
	display: block;
}

ul.list-check{
	display: flex;
	flex-flow: column wrap;
	gap: 20px;
	margin-block: 20px;
	padding-inline: 0;
}
ul.list-check.inline{
	flex-flow: row wrap;
}
ul.list-check > li{
	padding-left: 1.75em;
	list-style: none;
	position: relative;
}
ul.list-check > li:before{
	content: '';
	display: block;
	width: 1.25em;
	height: 1.25em;
	margin-right: 8px;
	background: url('../images/ico-list-check.svg') no-repeat center / contain;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.box-white{
	padding: 20px 40px;
	border: 1px solid var(--color-gray);
	border-radius: 16px;
	background-color: var(--color-white);
}

.box-pink{
	padding: 8px 12px;
	border-radius: 8px;
	background-color: var(--color-pink-light2);
}

.box-dotted{
	padding: 16px 12px;
	border: 1px dotted var(--color-black);
	border-radius: 8px;
}

@media (max-width: 1024px) {

	.sp-only{
		display: block;
	}
	.pc-only{
		display: none;
	}

	body{
		background: none;
	}

	hgroup h1,
	hgroup h2{
		font-size: var(--fz-24);
	}

	ul.list-check.inline{
		flex-flow: column nowrap;
		align-items: flex-start;
	}

} /* @media (sp)*/
@media (max-width: 375px) {

	html{
		font-size: 12px;
	}

} /* @media (sp)*/
@media (max-width: 320px) {

	html{
		font-size: 10px;
	}

} /* @media (sp)*/



/* header
-------------------- */
#main_header .grid{
	display: grid;
	grid-template-columns: repeat(4, auto);
	grid-template-rows: 2fr;
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: 40px;
	font-weight: 700;
}

#main_header .logo{
	grid-column: 1 / 2;
	grid-row: 1 / 3;
	align-self: center;
	width: 300px;
}

#main_header .logo img{
	display: block;
	width: 210px;
	margin-block: 25px;
}

#main_header .float_btns{
	grid-column: 4 / 5;
	grid-row: 1 / 3;
	justify-self: flex-end;
	width: 272px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	align-items: start;
	justify-content: space-between;
	font-weight: 500;
}

#main_header .float_btns .btn,
#floating_footer .btn{
	display: block;
	padding: 16px 8px;
	border-radius: 0 0 8px 8px;
	color: var(--color-white);
	font-size: var(--fz-14);
	text-align: center;
	line-height: 1.2;
}
#main_header .float_btns .btn img,
#floating_footer .btn img{
	display:inline-block;
	margin-bottom: 4px;
}
#main_header .float_btns .btn small,
#floating_footer .btn small{
	display: block;
	font-size: var(--fz-12);
}
#main_header .float_btns .calendar,
#floating_footer .calendar{
	background-color: #EA953B;
}
#main_header .float_btns .map,
#floating_footer .map{
	background-color: var(--color-pink);
}

#main_header .contact_info{
	grid-column: 3 / 4;
	grid-row: 1 / 2;
	width: 429px;
	margin-top: 18px;
}
#main_header .contact_info .border,
#floating_footer .border{
	display: inline-grid;
	grid-template-columns: repeat(2, auto);
	gap: 8px;
	align-items: center;
	justify-content: space-between;
	padding: 7px 10px;
	border-radius: 4px;
	border: 1px solid var(--color-black);
}

#main_header .contact_info .phone,
#floating_footer .phone{
	display: inline-block;
}
#main_header .contact_info .hour,
#floating_footer .hour{
	font-size: var(--fz-12);
	word-break: keep-all;
}

#main_header .nav_main{
	grid-column: 2 / 4;
	grid-row: 2 / 3;
	padding-top: 16px;
	padding-bottom: 18px;
	font-size: var(--fz-16);
}
#main_header .nav_main li:before{
	content: '・';
	display: inline-block;
	color: var(--color-pink);
}

#main_header .nav_sub{
	grid-column: 2 / 3;
	grid-row: 1 / 2;
	gap: 24px;
	align-self: center;
	margin-top: 18px;
	padding-right: 24px;
	font-size: var(--fz-12);
}



/* スクロール後、ヘッダの表示を変更 */
#main_header:before{
	content: '';
	display: block;
	background-color: rgb(0 0 0 / 40%);
	position: fixed;
	inset: 0;
	z-index: 999;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.3s;
}
#main_header.scrolled.open:before,
body.sp-view #main_header.open:before{
	opacity: 1;
}

#main_header.scrolled .grid,
body.sp-view #main_header.open .grid{
	grid-template-columns: 1fr;
	grid-template-rows: repeat(5, auto);
	gap: 30px;
	align-content: start;
	position: fixed;
	top: 0;
	right: -531px;
	width: 531px;
	height: 100%;
	padding: 40px;
	background-color: var(--color-white);
	z-index: 999;
	transition: right 0.3s;
}
#main_header.scrolled.open .grid,
body.sp-view #main_header.open .grid{
	padding-right: 185px;
	overflow-y: scroll;
}

#main_header.scrolled .logo,
body.sp-view #main_header.open .logo{
	grid-column: 1;
	grid-row: auto;
}
#main_header.scrolled .logo img,
body.sp-view #main_header.open .logo img{
	margin-block: 0;
}

#main_header.scrolled .float_btns,
body.sp-view #main_header.open .float_btns{
	grid-column: 1;
	grid-row: auto;
	gap: 12px;
	justify-self: auto;
	width: 100%;
}
#main_header.scrolled .float_btns .btn,
body.sp-view #main_header.open .float_btns .btn{
	border-radius: 8px;
}

#main_header.scrolled .contact_info,
body.sp-view #main_header.open .contact_info{
	grid-column: 1;
	grid-row: auto;
	width: auto;
	margin-top: 0;
}
#main_header.scrolled .contact_info .border,
body.sp-view #main_header.open .contact_info .border{
	border: none;
	grid-template-columns: 1fr;
	grid-template-rows: auto;
}
#main_header.scrolled .contact_info .phone,
body.sp-view #main_header.open .contact_info .phone{
	padding-left: 35px;
	font-size: var(--fz-28);
}
#main_header.scrolled .contact_info .phone:before,
body.sp-view #main_header.open .contact_info .phone:before{
	width: 0.875em;
	height: 0.875em;
}

#main_header.scrolled .nav_main,
body.sp-view #main_header.open .nav_main{
	grid-column: 1;
	grid-row: auto;
	padding-block: 0;
}
#main_header.scrolled .nav_main .nav,
body.sp-view #main_header.open .nav_main .nav{
	gap: 0;
}
#main_header.scrolled .nav_main li,
body.sp-view #main_header.open .nav_main li{
	border-bottom: 1px dashed var(--color-gray);
	font-size: var(--fz-20);
}
#main_header.scrolled .nav_main li:before,
body.sp-view #main_header.open .nav_main li:before{
	display: none;
}
#main_header.scrolled .nav_main a,
body.sp-view #main_header.open .nav_main a{
	display: block;
	padding: 12px 30px 12px 20px;
	position: relative;
}
#main_header.scrolled .nav_main a:after,
body.sp-view #main_header.open .nav_main a:after{
	content: url(../images/ico-btn-arrow.svg);
	display: grid;
	align-items: center;
	justify-items: center;
	width: 26px;
	height: 26px;
	border-radius: 100%;
	background-color: var(--color-white);
	text-align: center;
	line-height: 1;
	box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.08);
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}

#main_header.scrolled .nav_sub,
body.sp-view #main_header.open .nav_sub{
	grid-column: 1;
	grid-row: auto;
	margin-top: 0;
	padding-left: 20px;
	padding-right: 0;
	font-size: var(--fz-16);
}
#main_header.scrolled .nav_sub ul,
body.sp-view #main_header.open .nav_sub ul{
	gap: 12px;
}
#main_header.scrolled .nav_sub li:before,
body.sp-view #main_header.open .nav_sub li:before{
	content: '・';
	display: inline-block;
	color: var(--color-black);
}

/* floating sidebar */
#main_header.scrolled #btn_menu,
body.sp-view #main_header #btn_menu{
	width: 80px;
	height: 80px;
	border-radius: 100%;
	background-color: var(--color-white);
	box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.1);
	position: fixed;
	top: 40px;
	right: 26px;
	z-index: 999;
}
#main_header.scrolled #btn_menu:before,
body.sp-view #main_header #btn_menu:before,
#main_header.scrolled #btn_menu:after,
body.sp-view #main_header #btn_menu:after{
	content: '';
	display: grid;
	align-content: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	right: 0;
	transition: opacity 0.3s;
}
#main_header.scrolled #btn_menu:before,
body.sp-view #main_header #btn_menu:before{
	content: '';
	display: block;
	background: url('../images/ico-btn-menu.png') no-repeat center;
	background-size: 46px 44px;
}
#main_header.scrolled #btn_menu:after,
body.sp-view #main_header #btn_menu:after{
	content: '';
	display: block;
	background: url('../images/ico-btn-menu-close.png') no-repeat center;
	background-size: 46px 44px;
	opacity: 0;
}

#main_header.scrolled.open #btn_menu:before,
body.sp-view #main_header.open #btn_menu:before{
	opacity: 0;
}
#main_header.scrolled.open #btn_menu:after,
body.sp-view #main_header.open #btn_menu:after{
	opacity: 1;
}

#main_header.scrolled:not(.open) .float_btns{
	gap: 4px;
	width: calc( 80px + 26px * 2);
	position: fixed;
	top: 144px;
	right: 0;
	z-index: 999;
}
#main_header.scrolled:not(.open) .float_btns{
	grid-template-columns: 1fr;
	width: auto;
}
#main_header.scrolled:not(.open) .float_btns .calendar{
	border-radius: 8px 0 0 0;
	box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.1);
}
#main_header.scrolled:not(.open) .float_btns .map{
	border-radius: 0 0 0 8px;
	box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.1);
}


/* floating footer */
#floating_footer{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 13px;
	width: 100%;
	padding: 12px 11px;
	background-color: var(--color-white);
	border-radius: 16px 16px 0px 0px;
	box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.08);
	position: fixed;
	bottom: -150px;
	z-index: 999;
	transition: bottom 0.3s;
}

#floating_footer .border{
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	justify-items: center;
	padding: 10px;
	border-color: var(--color-gray);
	border-radius: 8px;
	font-weight: 500;
}
#floating_footer .phone{
	font-size: var(--fz-20);
}
#floating_footer .hour{
	font-size: var(--fz-10);
}

#floating_footer .calendar{
	display: grid;
	grid-template-columns: repeat(2, auto);
	gap: 8px;
	align-items: center;
	justify-content: center;
	padding: 10px;
	border-radius: 8px;
	font-weight: 500;
}

@media (max-width: 1440px) {

	#main_header .logo{
		width: 210px;
	}
	#main_header .contact_info{
		grid-column: 2/4
	}
	body #main_header:not(.open) .nav_sub{
		display: none;
	}

} /* @media (sp)*/
@media (max-width: 1024px) {

	body #main_header:not(.open) .float_btns,
	body #main_header:not(.open) .contact_info,
	body #main_header:not(.open) .nav_main,
	body #main_header:not(.open) .nav_sub{
		display: none;
	}

	#main_header .grid{
		padding-inline: 16px;
	}
	#main_header .logo img{
		margin-block: 6px 5px;
	}

	/* スクロール後、ヘッダの表示を変更 */
	#main_header.scrolled .grid,
	body.sp-view #main_header.open .grid{
		width: min(336px,100%);
		height: auto;
		max-height: calc(100% - 30px);
		padding: 40px 40px 32px 20px;
		border-bottom-left-radius: 16px;
		overflow-y: auto;
	}
	#main_header.scrolled .nav_sub,
	body.sp-view #main_header.open .nav_sub{
		padding-left: 10px;
	}

	/* floating sidebar */
	#main_header.scrolled #btn_menu,
	body.sp-view #main_header #btn_menu{
		width: 48px;
		height: 48px;
		top: 12px;
		right: 16px;
	}
	#main_header.scrolled #btn_menu:before,
	body.sp-view #main_header #btn_menu:before,
	#main_header.scrolled #btn_menu:after,
	body.sp-view #main_header #btn_menu:after{
		background-size: 28px;
	}

	/* floating footer */
	#main_header.scrolled #floating_footer{
		bottom: 0;
	}

} /* @media (sp)*/
@media (max-width: 375px) {

	#floating_footer .phone{
		font-size: var(--fz-24);
	}
	#floating_footer .calendar{
		font-size: var(--fz-20);
	}
	#floating_footer .calendar small{
		font-size: var(--fz-16);
	}

} /* @media (sp)*/



/* footer
-------------------- */
#main_footer{
	background-color: var(--color-pink);
	color: var(--color-white);
}
#main_footer .wrap{
	max-width: min(1120px, 100%);
	padding: 40px 20px 60px;
}

#main_footer .logo{
	width: 348px;
	max-width: 100%;
	margin-inline: auto;
}
#main_footer .grid{
	display: grid;
	grid-template-columns: auto 250px 250px;
	margin-top: 40px;
}

#main_footer .map{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(30%, 1fr));
	align-items: center;
	max-width: 440px;
	margin-top: 20px;
	padding: 8px 16px;
	background-color: var(--color-white);
	border-radius: 8px;
}
#main_footer .map .txt{
	font-size: var(--fz-20);
	font-weight: 700;
	color: var(--color-black);
}

#main_footer .contact_info{
	margin-top: 20px;
}
#main_footer .contact_info .border{
	display: grid;
	grid-template-columns: repeat(2, auto);
	gap: 8px;
	align-items: center;
	justify-content: start;
	max-width: 440px;
	padding: 6px 8px;
	border-radius: 4px;
	border: 1px solid var(--color-white);
}

#main_footer .contact_info .phone{
	font-size: var(--fz-20);
}
#main_footer .contact_info .phone:before{
	filter: brightness(1);
}
#main_footer .contact_info .hour{
	font-size: var(--fz-12);
	word-break: keep-all;
}

#main_footer ul{
	list-style: none;
}
#main_footer .item > ul > li{
	margin-top: 16px;
}
#main_footer .item > ul ul{
	margin-top: 8px;
}
#main_footer .item > ul + ul{
	margin-top: 40px;
}
#main_footer a{
	color: var(--color-white);
	font-size: var(--fz-16);
	font-weight: 500;
}
#main_footer ul ul a{
	font-size: var(--fz-14);
	font-weight: 400;
}
#main_footer ul ul a:before{
	content: '-';
	display: inline-block;
	margin-right: 2px;
}

#main_footer .grid > :first-child ul{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 20px;
}

@media (max-width: 1024px) {

	#main_footer .grid{
		grid-template-columns: 1fr;
		justify-self: center;
	}
	#main_footer .grid > :first-child ul{
		grid-template-columns: 1fr;
	}

} /* @media (sp)*/



/* copyright
-------------------- */
#copyright{
	padding: 10px;
	text-align: center;
}

#btn_page_top{
	width: 48px;
	height: 48px;
	border-radius: 24px;
	background: var(--color-white) url('../images/ico-link-arrow.svg') no-repeat center;
	background-size: 9px 15px;
	box-shadow: 4px 0px 4px rgba(0, 0, 0, 0.08), -4px 0px 4px rgba(0, 0, 0, 0.08);
	rotate: -90deg;
	position: fixed;
	right: -50px;
	bottom: 112px;
	z-index: 999;
	transition: right 0.3s;
}

body:has(#main_header.scrolled) #btn_page_top{
	right: 12px;
}



/* page/single common
-------------------- */
body{
	background: url('../images/page-bg.svg') no-repeat center top / contain;
}

#page-header{
	background: no-repeat center top / cover;
	max-width: min(1080px, calc(100% - 17px * 2) );
	min-height: 250px;
	margin-bottom: 60px;
	margin-inline: auto;
	padding: 44px 34px;
	border-radius: 16px;
}
#page-header .inner{
	display: inline-block;
	min-width: 50%;
	padding: 24px 40px;
	background: #fff;
	border-radius: 20px 20px 0 20px;
}
#page-header hgroup small{
	font-size: var(--fz-24);
}

@media (max-width: 1024px) {

	#page-header{
		margin-inline: 17px;
		margin-bottom: 82px;
		padding: 0;
		min-height: 200px;
		position: relative;
	}
	#page-header .inner{
		padding: 24px 12px;
		position: absolute;
		bottom: -82px;
		left: 10px;
		right: 0;
	}
	#page-header hgroup small{
		margin-block: calc((1em - 1lh) / 2);
		font-size: var(--fz-22);
	}
	#page-header hgroup h1{
		margin-top: 10px;
		font-size: var(--fz-32);
	}
	#page-header.bg-none{
		min-height: unset;
		margin-bottom: 20px;
	}
	#page-header.bg-none .inner{
		position: relative;
		bottom: unset;
	}

	.breadcrumbs li{
		font-size: var(--fz-16);
	}

} /* @media (sp)*/
@media (max-width: 375px) {

	body{
		background: url('../images/page-bg--sp.svg') no-repeat center top / contain;
	}

} /* @media (sp)*/



/* breadcrumbs
-------------------- */
.breadcrumbs{
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	justify-content: flex-start;
}
.breadcrumbs > li{
	font-size: var(--fz-12);
	list-style: none;
}
.breadcrumbs > li:not(:last-child):after{
	content: '/';
	display: inline-block;
	margin-inline: 0.4em;
}
.breadcrumbs > li:last-child{
	color: #C8C8C8;
}



/* faq-list
-------------------- */
.faq-list{
	grid-template-columns: repeat(auto-fit, minmax(min(300px,100%), 1fr));
	gap: 20px;
	margin-block: 40px;
}
.faq-list .item a{
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-rows: 1fr;
	gap: 10px;
	align-items: center;
	padding: 10px 20px;
	min-height: 88px;
	border: 1px solid var(--color-pink);
	border-radius: 8px;
	background-color: var(--color-pink-light2);
	box-shadow: 0 0 4px rgba(0, 0, 0, 0.12);
	color: var(--color-pink);
	font-weight: 500;
}
.faq-list .item a:after{
	content: '';
	display: inline-block;
	width: 24px;
	height: 24px;
	background: url('../images/ico-link-arrow.svg') no-repeat center;
	background-size: 9px 15px;
}

/* faq-accordion
-------------------- */
.faq-accordion .accordion{
	border: 1px solid var(--color-white);
	border-radius: 4px;
	background-color: var(--color-white);
	list-style: none;
	transition: border 0.3s;
}
.faq-accordion .accordion.open{
	border-color: var(--color-pink);
}
.faq-accordion .accordion + .accordion{
	margin-top: 10px;
}
.faq-accordion .accordion > .btn{
	padding-block: 10px;
	padding-inline: 37px;
	font-size: var(--fz-16);
	font-weight: 500;
	position: relative;
	cursor: pointer;
}
.faq-accordion .accordion > .btn:before{
	content: '';
	display: inline-block;
	width: 17px;
	height: 20px;
	margin-top: 4px;
	background: url('../images/ico-faq-q.svg') no-repeat center / contain;
	position: absolute;
	top: 10px;
	left: 12px;
}
.faq-accordion .accordion > .btn:after{
	content: '';
	display: inline-block;
	width: 24px;
	height: 24px;
	background: url('../images/ico-link-arrow.svg') no-repeat center;
	background-size: 9px 15px;
	filter: grayscale(100%) brightness(42%) contrast(95%);
	position: absolute;
	top: 10px;
	right: 12px;
	transition: rotate 0.3s;
}
.faq-accordion .accordion.open > .btn:after{
	rotate: 90deg;
}
.faq-accordion .accordion > .cts{
	font-size: var(--fz-14);
}
.faq-accordion .accordion > .cts .inner{
	padding-block: 10px;
	padding-left: 12px;
	padding-right: 37px;
}
.faq-accordion .accordion > .cts a{
	color: var(--color-pink);
	font-weight: 500;
	text-decoration: underline;
	padding-inline: 5px;
}

.faq-accordion + h3{
	margin-top: 40px;
}

@media (max-width: 1024px) {

	.faq-list .item a{
		min-height: 65px;
	}
	.faq-list .item a br{
		display: none;
	}

} /* @media (sp)*/



/* doctor
-------------------- */
#doctor{
	padding-block: 60px;
	background: url('../images/top-doctor-bg.png') no-repeat center top / cover;
}

#doctor .grid{
	grid-template-columns: repeat(2, auto);
	gap: 40px;
	background-color: var(--color-white);
	padding: 40px 60px;
	border-radius: 16px;
	box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.08);
}
#doctor .grid .img{
	grid-column: 2 / 3;
	grid-row: 1;
	width: 380px;
}
#doctor .grid .txt{
	grid-column: 1 / 2;
	grid-row: 1;
	display: grid;
	gap: 20px;
	font-weight: 500;
	align-self: center;
}
#doctor .grid .txt .fz-xl{
	font-weight: 700;
}
#doctor .grid .txt .bg-pink-light2{
	padding: 8px 12px;
}

@media (max-width: 1024px) {

	#doctor .grid{
		grid-template-columns: 1fr;
	}
	#doctor .grid .img,
	#doctor .grid .txt{
		grid-column: auto;
		grid-row: auto;
		width: auto;
	}

} /* @media (sp)*/


/* flow-list
-------------------- */
.flow-list{
	display: grid;
	gap: 60px;
	margin-block: 40px;
}
.flow-list > li{
	background-color: var(--color-white);
	border-radius: 16px;
	list-style: none;
	position: relative;
}
.flow-list > li:not(:last-child):after{
	content: '';
	display: block;
	width: 40px;
	height: 20px;
	background: url('../images/ico-flow-arrow.svg') no-repeat center / contain;
	position: absolute;
	bottom: -40px;
	left: 50%;
	transform: translateX(-50%);
}
.flow-list > li .heading{
	padding: 8px 12px 8px 90px;
	border-radius: 16px 16px 0 0;
	background-color: var(--color-pink);
	color: var(--color-white);
	font-size: var(--fz-20);
	font-weight: 500;
	position: relative;
}
.flow-list > li .heading .step{
	display: inline-block;
	padding: 2px 9px 3px;
	border-radius: 4px;
	background-color: var(--color-white);
	color: var(--color-pink);
	font-size: var(--fz-24);
	line-height: 1;
	position: absolute;
	top: 50%;
	left: 12px;
	transform: translateY(-50%);
}
.flow-list > li .heading .step small{
	font-size: var(--fz-12);
	margin-right: 5px;
}
.flow-list > li .cts{
	padding: 10px 12px;
	font-weight: 500;
}
.flow-list > li .cts .box{
	margin-top: 10px;
	padding: 16px;
	background-color: var(--color-pink-light2);
}

.flow-list .box .grid{
	display: grid;
	grid-template-columns: repeat(2, auto);
	align-items: center;
	justify-content: space-between;
}
.flow-list .box .grid img{
	width: 100px;
	margin-left: 20px;
}

@media (max-width: 1024px) {

	.flow-list .box .grid{
		grid-template-columns: 1fr;
		gap: 20px;
		justify-items: center;
	}

} /* @media (sp)*/


/* scrollable table */
.scrollable{
	position: relative;
}
.scrollable.on{
	overflow-x: scroll;
	padding: 1px;
}
.scrollable table{
	max-width: unset;
}
.grid > .item:has(.scrollable){
	min-width: 0;
}

@media (max-width: 1024px) {

	.scrollable.on:after{
		content: '';
		display: block;
		width: 112px;
		height: 85px;
		background: url('../images/ico-table-scroll.png') no-repeat center / contain;
		position: absolute;
		top: 150px;
		left: 50%;
		transform: translate(-50%);
		opacity: 1;
		transition: opacity 0.3s;
	}
	.scrollable.on.scrolled:after{
		opacity: 0;
	}

} /* @media (sp)*/


/* clinic-form */
.clinic-form{
	max-width: 980px;
	margin-inline: auto;
}



/* archive-list */
.archive-list{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
	margin-bottom: 48px;
}
.archive-list > .item{
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 10px;
	border: 1px solid #d9d9d9;
	border-radius: 8px;
	background-color: var(--color-white);
	box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.08);
}

.archive-list .thumb img{
	display: block;
	width: 100%;
	height: 200px;
	object-fit: cover;
}

.archive-list .meta{
	display: flex;
	justify-content: space-between;
	font-size:var(--fz-14);
}

.archive-list .category{
	padding: 3px 5px;
	background-color: var(--color-pink-light2);
}

.archive-list .date{
	white-space: nowrap;
}

.archive-list .title{
	font-size: var(--fz-20);
	line-height: 1.4;
	margin: 0;
}

.archive-list .excerpt{
	font-size: var(--fz-16);
	line-height: 1.6;
	margin: 0;
}

/* pagination */
.pagination{
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 48px 0;
	padding: 0;
}
.pagination a,
.pagination span{
	display: grid;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 12px;
	border: 1px solid #d9d9d9;
	font-size: var(--fz-14);
	line-height: 1;
	text-decoration: none;
}

.pagination a{
	background-color: var(--color-white);
	color: var(--color-pink);
}
.pagination a:hover{
	background-color: var(--color-pink-light2);
	border-color: var(--color-pink);
}

.pagination .current{
	background-color: var(--color-pink);
	color: var(--color-white);
	border-color: var(--color-pink);
}

.pagination .dots{
	border: none;
	padding: 0 4px;
}

.pagination .prev,
.pagination .next{
	padding: 0 16px;
	white-space: nowrap;
}
.pagination .prev{
	border-radius: 4px 0 0 4px;
}
.pagination .next{
	border-radius: 0 4px 4px 0;
}



/* aside
-------------------- */
#page main:has(aside){
	display: grid;
	grid-template-columns: auto clamp(200px, 30%, 300px);
	align-items: start;
	gap: 30px;
	max-width: min(1280px, 100%);
	margin-inline: auto;
	padding-top: 0;
	padding-inline: 20px;
}

#page main > aside{
	position: sticky;
	top: 0;
	padding-bottom: 40px;
}

/* side_box */
.side_box{
	padding: 15px 10px;
	background: var(--color-white);
	border-radius: 8px;
	border: 1px solid #d9d9d9;
	box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.08);
}
.side_box + .side_box{
	margin-top: 20px;
}

/* new_posts, popular_posts */
.label_switch{
	display: flex;
	justify-content: space-between;
	flex-flow: row nowrap;
	align-items: center;
	padding-bottom: 10px;
}
.label_switch label{
	width: -webkit-fill-available;
	width: -moz-available;
	width: stretch;
	margin-bottom: 5px;
	padding: 5px;
	background-color: var(--color-pink-light2);
	color: #aaa;
	text-align: center;
	box-shadow: 0 5px 10px #ccc inset;
	cursor: pointer;
}
.side_box:has(#new_posts:checked) .label_switch label[for="new_posts"],
.side_box:has(#popular_posts:checked) .label_switch label[for="popular_posts"] {
	background-color: var(--color-pink-light);
	color: var(--color-white);
	box-shadow: 0 -5px 10px var(--color-pink) inset;
}

.side_box input[type='radio'],
.side_box input[type='radio'] + ul{
	display: none;
}

.side_box input[name='side_post_list']:checked + ul{
	display: block;
}

.side_box .item{
	margin-bottom: 16px;
}
.side_box .item:last-child{
	margin-bottom: 0;
}

.side_box .item .inner a{
	display: flex;
	gap: 12px;
	align-items: center;
}

.side_box .item .img{
	flex: 0 0 80px;
	width: 80px;
	height: 80px;
	overflow: hidden;
	border-radius: 8px;
}
.side_box .item .img img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.side_box .item .title{
	font-size: 14px;
	line-height: 1.6;
	font-weight: 500;
}
.side_box .item:hover .title{
	color: #e6007e;
	transition: 0.3s;
}

/* tag-list */
.tag-list{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.tag-list li{
	width: 100%;
}
.tag-list li a{
	display: inline-block;
	padding: 6px 12px;
	font-size: 13px;
	background: #f5f5f5;
	border-radius: 999px;
	text-decoration: none;
	color: #333;
	transition: 0.3s;
}
.tag-list li a span{
	font-size: 11px;
	color: #999;
	margin-left: 4px;
}

.tag-list li a:hover{
	background: var(--color-pink);
	color: var(--color-white);
}
.tag-list li a:hover span{
	color: var(--color-white);
}

@media (max-width: 1024px) {

	#page main:has(aside){
		grid-template-columns: 1fr;
		padding-block: 60px;
	}

} /* @media (sp)*/



/* cta_bnr */
.cta_bnr{
	display: grid;
	grid-template-columns: repeat(2, auto);
	align-items: center;
	gap: 20px 40px;
	max-width: 960px;
	margin-inline: auto;
	margin-top: 40px;
	padding: 20px 68px;
	border-radius: 16px;
	border: 3px solid var(--color-pink);
	background: var(--color-pink-light3);
}

.cta_bnr .txt{
	width: 302px;
	font-weight: 700;
}
.cta_bnr .txt1{
	text-align: center;
}
.cta_bnr .txt2{
	justify-self: end;
	font-size: var(--fz-20);
	letter-spacing: 0.04em;
	text-align: center;
}
.cta_bnr .txt2 .right{
	font-weight: normal;
}

.cta_bnr .boxs{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	margin-block: 14px;
}
.cta_bnr .boxs > span{
	padding: 9px 8px;
	border-radius: 10px;
	background-color: #ccc;
	color: var(--color-white);
	font-weight: 500;
	text-align: center;
	position: relative;
}
.cta_bnr .boxs > span:nth-child(1){
	background-color: #EB71B4;
}
.cta_bnr .boxs > span:nth-child(2){
	background-color: #EB9271;
}
.cta_bnr .boxs > span:nth-child(3){
	background-color: #7196EB;
}
.cta_bnr .boxs > span:not(:last-child):after{
	content: '';
	display: block;
	width: 16px;
	height: 16px;
	background: url('../images/ico-plus.svg') no-repeat center / contain;
	position: absolute;
	right: -22px;
	top: 50%;
	transform: translateY(-50%);
}

.cta_bnr .pink_btn{
	margin-top: 10px;
	padding-block: 6px;
	font-size: var(--fz-16);
	font-weight: normal;
}

@media (max-width: 1024px) {

	.cta_bnr{
		grid-template-columns: 1fr;
		padding-inline: unset;
	}
	.cta_bnr .txt{
		justify-self: center;
	}

} /* @media (sp)*/