@charset "UTF-8";



/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {
	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {
	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}








:root{
	--text_color: #332d2b;
	--color1: #fcda3e;
	--color2: #acd059;
	--color3: #f9f6ef;
	--color4: #d6c293;
	--color5: #f9f5f4;
	--color6: #fcda3e;
	--color7: #f08752;
}

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

html{
	font-size: 10px;
	scroll-behavior: smooth;
}

html[lang]{
	margin: 0 !important;
}
#wpadminbar{
	display: none;
}
@media (max-width: 700px) {
	html{
		font-size: 15px;
	}
}

body{
	padding: 0;
	margin: 0;
	font-family: "maru-maru-gothic-asr-stdn", sans-serif;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.8;
	word-break: break-all;
	overflow-wrap: anywhere;
	overflow-x: hidden;
	color: var(--text_color);
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%; /* iPhoneだけ文字が大きくなる現象を防ぐ */
	/*font-feature-settings: "palt";*/ /* 文字詰め（フォントにカーニング情報が含まれる場合） */

	/* iPhoneで上下のバーを抜いた高さ */
	height: -webkit-fill-available;
	height: -moz-available;
}
html[lang="en"] body{
	overflow-wrap: break-word;
}

::-webkit-input-placeholder{ color: #bbb; }
:-moz-placeholder          { color: #bbb; }
:-ms-input-placeholder     { color: #bbb; }

html.pc .sp{ display: none !important; }
html.sp .pc{ display: none !important; }

img{
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}
iframe{
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

:is(h1, h2, h3).type1{
	text-align: center;
	font-family: mamelon, "maru-maru-gothic-asr-stdn", sans-serif;
	font-weight: 500;
	font-size: 4rem;
	padding: 1px 0 0;
	margin: 100px 0 30px;
}
h1.type1{
	margin: 30px 0 100px;
}
:is(h1, h2, h3).type1 small{
	display: block;
	font-family: "maru-maru-gothic-asr-stdn", sans-serif;
	font-size: 0.45em;
	font-weight: 300;
}
:is(h1, h2, h3).type1:before{
	content: "";
	display: block;
	height: 0.875em;
	width: 10.75em;
	border-radius: 100px;
	margin: 0.825em auto -1.9em;
	background-color: var(--color1);
}
@media (max-width: 700px) {
	:is(h1, h2, h3).type1{
		font-size: 5.2rem;
	}
}

:is(h1, h2, h3).type2{
	text-align: center;
	font-size: 4.2rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.6;
	margin: 0.6em 0;
}

:is(h1, h2, h3).type3{
	text-align: center;
	font-size: 3.8rem;
	letter-spacing: 0.1em;
	padding: 60px 0 0;
	background-image: url(img/common/h2_3.webp);
	background-size: 170px;
	background-position: 50% 0;
	background-repeat: no-repeat;
	margin: 80px 0 40px;
}
h3.type3{
	font-size: 2.9rem;
}
:is(h1, h2, h3).type3 small{
	display: block;
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: 0;
}

:is(h1, h2, h3).type4{
	font-size: 5rem;
}

h3.type5{
	text-align: center;
	font-family: mamelon, "maru-maru-gothic-asr-stdn", sans-serif;
	font-size: 4.6rem;
	font-weight: 500;
	line-height: 1.6;
}
h3.type5 .number{
	font-family: "maru-maru-gothic-asr-stdn", sans-serif;
	font-size: 3.8rem;
	font-weight: bold;
	-webkit-text-stroke: 2px var(--text_color);
}
h3.type5 .number:before{
	content: "";
	display: block;
	background-color: var(--color1);
	width: 66px;
	height: 37px;
	margin: 0 auto;
	clip-path: polygon(0 33%, 50% 0, 100% 33%, 100% 100%, 0% 100%);
}
@media (max-width: 700px) {
	h3.type5 .number:before{
		position: relative;
		width: 88px;
		height: 50px;
		margin: 0 auto -45px;
		z-index: -1;
	}
}

h4{
	text-align: center;
	font-size: 3.2rem;
	margin: 50px 0 20px;
}
h4 small{
	display: block;
	font-size: 2.5rem;
}


hr{
	border: 0;
	border-top: 1px solid #c9c9c9;
	margin: 50px 0;
}

p{
	text-align: justify;
}
.ta_center{
	text-align: center;
}

b, ib{
	display: inline-block;
	font-size: inherit;
	font-weight: inherit;
	font-style: inherit;
	font-family: inherit;
}

a,
a:link,
a:visited{
	color: inherit;
	transition: color 0.15s linear;
}
a:hover{
	color: var(--color1);
/*	color: color(from var(--color1) xyz calc(x * 0.75) calc(y * 0.75) calc(z * 0.75));*/
}
a:hover img{
	filter: drop-shadow(0px 0px 5px var(--color1));
}

@keyframes kara_a {
	0%   { opacity: 1; }
	50%  { opacity: 0; }
	100% { opacity: 1; }
}
a[href=""]{
/*	animation: kara_a 0.5s linear 0s infinite;*/
}

a.type1{
	position: relative;
	display: inline-block;
	text-decoration: none;
	padding: 2.2em 1em 0;
	min-width: 6em;
/*	background-image: url(img/common/a_1.webp);*/
	background-size: contain;
	background-position: 50% 0;
	background-repeat: no-repeat;
}
a.type1:before{
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	aspect-ratio: 308 / 90;
	background-image: url(img/common/a_1.webp);
	background-size: contain;
	background-position: 50% 0;
	background-repeat: no-repeat;
	filter: brightness(0);
	transition: 0.15s linear;
}
a.type1:hover:before{
	filter: brightness(1);
}

body :is(.button1, .button2, .button3, .button4, .button5),
body :is(.wpcf7cp-cfm-edit-btn, .wpcf7cp-cfm-submit-btn){
	background-color: transparent;
	border: none;
	border-radius: 0;
	cursor: pointer;
	outline: none;
	padding: 0;
	-webkit-appearance: none;
	appearance: none;
	text-decoration: none;

	user-select: none;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	text-decoration: none;
	font-family: "zen-maru-gothic", sans-serif;
	box-sizing: border-box;
	height: 50px;
	padding: 4px 70px 5px 40px;
	border-radius: 100px;
	color: #000;
	background-color: var(--color1);
	background-image: url(img/common/button_arrow1.webp);
	background-size: 20px;
	background-position: 90% 50%;
	background-repeat: no-repeat;
	transition: filter 0.15s linear, background-color 0.15s linear;
}
body .button1{
	font-size: 3rem;
	padding: 4px 70px 5px;
	height: 65px;
}
body .button1:hover{
	filter: brightness(1.08);
}

body :is(.button5, .wpcf7cp-cfm-edit-btn, .wpcf7cp-cfm-submit-btn){
	font-size: 2rem;
	font-weight: 700;
/*	color: var(--color6);*/
	background-color: #fff;
	border: 2px solid var(--color6);
	background-image: url(img/common/button_arrow3.webp);
	padding: 4px 70px 5px 70px;
}
body .wpcf7cp-cfm-edit-btn{
	background-color: #f7f7f7;
	filter: grayscale(100%);
}
body :is(.button5, .wpcf7cp-cfm-edit-btn, .wpcf7cp-cfm-submit-btn):hover{
	background-color: #fff6db;
}
body .wpcf7cp-cfm-edit-btn:hover{
	filter: grayscale(100%) brightness(0.95);
}

#page{
	min-height: 100svh;
}

.page_width{
	width: 1150px;
	max-width: 90%;
	margin: 0 auto;
}
@media (max-width: 700px) {
	.page_width{
		max-width: 80%;
	}
}

.site-header{
	position: relative;
	z-index: 500;
	margin: 0px 0 -80px;
	padding-top: 20px;
	background-image: url(img/common/header/bg.webp);
	background-size: min(863px,80%);
	background-position: 50% 100%;
	background-repeat: no-repeat;
}
.site-header .site-branding{
	display: flex;
	justify-content: space-between;
	padding: 15px 3vw 20px;
}
.site-header .site-branding img[src*="/header/2."]{
	margin: 8px 0 0 35px;
}
.site-header .site-branding .right{
	display: flex;
	align-items: flex-start;
	font-size: 1.3rem;
	color: #666;
	padding: 5px 0 0;
}
.site-header .site-branding .right .frame{
	line-height: 11px;
	border: 1px solid #666;
	padding: 5px 10px;
	margin-right: 20px;
}
.site-header .site-branding .right img[src*="/header/4."]{
	margin-bottom: 10px;
}

#site-navigation,
#site-navigation :is(.left, .right, .sns){
	display: flex;
	justify-content: space-between;
	align-items: start;
}
#site-navigation :is(.left, .right){
	box-sizing: border-box;
	width: 400px;
}
#site-navigation .left{
	justify-content: space-around;
}
#site-navigation .right{
	justify-content: space-around;
}
#site-navigation .right .icons{
	display: flex;
	gap: 5px;
}
#site-navigation a{
	text-decoration: none;
	text-align: center;
	font-family: "maru-maru-gothic-asr-stdn", sans-serif;
	font-weight: 400;
	line-height: 1;
}
#site-navigation a.center{
	padding-top: 10px;
}
#site-navigation a.type1{
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1.6rem;
	padding-top: 2.5em;
	margin-top: 10px;
	min-height: 2em;
}
#site-navigation a.type1:before{
	opacity: 0;
}
#site-navigation a.type1.current{
	pointer-events: none;
}
#site-navigation a.type1.current:before{
	opacity: 1;
}
#site-navigation .right .icons{
	margin-right: -50px;
}
#site-navigation .right .icons a{
	padding: 47px 0 0;
}
#site-navigation a small{
	display: block;
	font-size: 1rem;
	margin: 5px 0 0;
}
.header_sp{
	display: none;
}
@media (min-width: 801px) {
	.max800{
		display: none !important;
	}
}
@media (max-width: 800px) {
	.min800{
		display: none !important;
	}

	.header_pc{
		display: none;
	}
	.header_sp{
		display: flex;
		flex-direction: column;
		position: fixed;
		top: 0;
		left: 0;
		/*min-height: 100vh;*/
		width: 100%;
		z-index: 1100;
	}
	.header_sp .header1{
		display: flex;
		justify-content: space-between;
		background-color: #fff;
		padding: 50px 40px 40px 60px;

		.logo img{
			width: 490px;
			max-width: none;
		}
		.right{
			display: flex;
			align-items: center;
			gap: 35px;
		}
		.right .link{
			display: flex;
			gap: 15px;
		}
		.right .link a img{
			width: 55px;
		}
		.nav_knob img{
			width: 65px;
		}
		.nav_knob .close{
			display: none;
		}
		.nav_knob.close .close{
			display: inline-block;
		}
		.nav_knob.close .open{
			display: none;
		}
	}

	#site-navigation-sp{
		display: flex;
		flex-direction: column;
		font-size: 3rem;
		border-top: 0.75px solid #cecdcd;
		background-color: #fff;
		overflow: hidden;
		height: 0;
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.2s linear;

		&.open{
			height: 3000px;
			opacity: 1;
			pointer-events: auto;
		}
		.nav_bg1{
			background-color: var(--color1);
			background-image: url(img/common/header/sp/3.webp);
			background-size: 340px;
			background-position: 530px 350px;
			background-repeat: no-repeat;
			padding: 0 0 50px;
		}
		.nav1{
			display: grid;
			grid-template-columns: auto 1fr;
			gap: 60px 90px;
			font-weight: 500;
			padding: 100px 100px 110px;
		}
		.nav1 a{
			text-align: left;
			text-decoration: none;
			font-size: 38px;
			line-height: 1.4;
			background-image: url(img/common/header/sp/5.svg);
			background-size: 20px;
			background-position: 5px 50%;
			background-repeat: no-repeat;
			padding: 0 0 0 50px;
		}
		.nav1 a:hover{
			color: inherit;
		}
		.nav1 a small{
			display: block;
			letter-spacing: 0.05em;
		}
		.nav2,
		.nav3 a{
			padding: 50px 30px;
		}
		.nav2{
			text-align: center;
			line-height: 1.3;
			font-size: 35px;
		}
		.nav2 .text3{
			font-size: 1em;
		}
		.nav2 .tel{
			text-decoration: none;
			font-size: 1.7em;
		}
		.nav2 .tel:hover{
			color: #000;
		}
		.nav2 .tel img{
			vertical-align: -1px;
			width: 1em;
		}
		.nav2_2{
			display: flex;
			justify-content: center;
			align-items: center;
			gap: 10px;
		}
		.nav2_2 a{
			text-align: center;
			text-decoration: none;
			font-size: 33px;
			padding: 10px;
			border: 1px solid #000;
			border-radius: 100px;
			background-color: #fff;
			min-width: 400px;
		}
	}
	.nav3{
		padding: 0 50px;
	}
	.nav3 .row{
		text-align: center;
		border-bottom: 1px solid #cecdcd;
		padding: 30px 0px;
	}
	.nav3 .row:first-child{
		/*border-top: 0;*/
	}
	.nav3 a{
		text-decoration: none;
	}
	.nav3 a img{
		zoom: 2.5;
	}
}

.site-footer{
	position: sticky;
	top: 100vh;
	/*padding: 0 0 50px;*/

	.footer1{
		display: flex;
		justify-content: space-between;
		align-items: center;
		text-align: left;
		line-height: 1.4;
		margin: 100px 0 0;
	}
	.footer1 .text1{
		font-size: 1.8rem;
	}
	.footer1 .text2{
		font-size: 2.6rem;
	}
	.footer1 .footer1_2{
		display: flex;
		align-items: center;
		gap: 20px;
		margin: 7px 0 0;
	}
	.footer1 .text3{
		font-size: 1.8rem;
	}
	.footer1 .tel{
		display: inline-flex;
		justify-content: center;
		align-items: center;
		gap: 5px;
		text-decoration: none;
		font-size: 3.1rem;
	}
	.footer1 .footer1_2 a.type1{
		font-size: 1.2rem;
		margin: 0 5px;
	}
	.footer2{
		padding: 20px 0 13px;
		background-color: #f4f4f4;
		margin: 15px 0 0;

		a:hover img{
			filter: none;
		}
		a.yukinko{
			margin: 0px 0 10px;
		}
	}
	.footer2_1{
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 20px;
		margin: 0 0 45px;
	}
	.footer2_1 .border{
		border-left: 0.6px solid #676564;
		height: 25px;
	}
	.footer2_2{
		display: none;
	}
	.copyright{
		text-align: center;
		font-size: 1rem;
		margin: 50px 0 0;
	}
}
@media (max-width: 710px) {
	.site-footer{
		.footer1{
			flex-direction: column;

			.footer_img1{
				width: 400px;
			}
			.text3{
				font-size: 2rem;
			}
			.tel{
				font-size: 3.5rem;
			}
			.tel img{
				width: 1em;
			}
			.text1, .text2{
				display: none;
			}
			.footer1_2{
				margin-top: 30px;
			}
			.footer1_2 .col:nth-of-type(2){
				display: none;
			}
		}

		.footer2{
			padding: 10px 0 20px;
			margin-top: 30px;

			.footer2_1{
				display: none;
			}
			.footer2_2{
				display: grid;
				grid-template-columns: auto 1fr;
				gap: 10px 100px;
				padding: 50px 100px;

				a{
					text-decoration: none;
					font-weight: 500;
					font-size: 1.9rem;
				}
			}
		}
		.copyright{
			text-align: center;
			font-size: 1.5rem;
		}
	}
}

.gototop{
	position: fixed;
	right: 30px;
	bottom: 110px;
	z-index: 1000;
}
a:hover .gototop{
	filter: none;
}

.side_tab{
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
	position: fixed;
	right: 0;
	top: 200px;
	z-index: 1000;
}
.side_tab a{
	display: inline-block;
	writing-mode: vertical-rl;
	text-decoration: none;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1;
	background-color: var(--color1);
	/*	border: 2px solid #fff;*/
	border-right: 0;
	border-radius: 15px 0 0 15px;
	padding: 15px 10px 15px 15px;
	width: 1em;
	transition: padding 0.15s linear;
}
.side_tab a:hover{
	color: inherit;
	padding: 15px 15px 15px 15px;
}


.anchor_target{
	position: relative;
	top: -100px;
}


.post_list{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 60px 0;
}
.post_list .article{
	flex-basis: 30%;
	text-decoration: none;
}
.post_list .article .image{
	background-color: #eee;
	width: 258px;
	aspect-ratio: 258 / 229;
	border-radius: 17px;
	overflow: hidden;
	margin: 0 0 -16px;
	transition: opacity 0.15s linear;
}
.post_list .article:hover .image{
	opacity: 0.8;
}
.post_list .article .text{
	position: relative;
	margin: 0 15px 0;
}
.post_list .article .category{
	display: inline-block;
	font-size: 1.5rem;
	line-height: 1.5;
	color: #000;
	/*background-color: var(--color1);
	border-radius: 17px;
	padding: 3px 15px;*/
}
.post_list .article .category b{
	background-color: var(--color1);
	border-radius: 17px;
	padding: 2px 12px;
}
.post_list .article .title{
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	font-size: 2.4rem;
	font-weight: bold;
	line-height: 1.3;
	margin: 10px 0;
}
.post_list .article .content{
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	line-height: 1.3;
/*	height: 5.4em;*/
}

dl.type1{
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: 2em 1em;
	font-size: 2.8rem;
	line-height: 1.5;
	margin: 100px 0;
}
dl.type1 dt,
.ie_frame{
	text-align: center;
	font-family: mamelon, "maru-maru-gothic-asr-stdn", sans-serif;
	font-size: 2.8rem;
	line-height: 1.2;
	background-color: var(--color1);
	padding: 1.5em 1em 0.5em;
	min-width: 4em;
	clip-path: polygon(0 33%, 50% 0, 100% 33%, 100% 100%, 0% 100%);
}
.ie_frame{
	display: inline-block;
}
dl.type1 dd{
	padding: 1.5em 0 0.5em;
	margin: 0;
}
@media (max-width: 700px) {
	dl.type1{
		display: block;
		font-size: 2.2rem;
		line-height: 1.5;
		margin: 100px 0;
	}
	dl.type1 dt{
		background-color: transparent;
		text-align: left;
		font-size: 2.1rem;
		color: var(--color7);
		padding: 0 20px 10px;
		min-width: 0;
		clip-path: none;
	}
	dl.type1 dd{
		padding: 0 20px 30px;
		margin: 0 0 30px;
		border-bottom: 1px solid #dfdede;
	}
}

ul.type1{
	padding: 0;
	margin: 0px 0;
	list-style: none;
}
ul.type1 > li{
	text-indent: -1em;
	line-height: 1.5;
	margin: 5px 0 5px 1em;
}
ul.type1 > li:before{
	content: "●";
	color: var(--color1);
	white-space: nowrap;
	font-feature-settings: normal;
}
@media (max-width: 700px) {
	ul.type1{
		padding: 0 20px 30px;
		border-bottom: 1px solid #dfdede;
	}
	ul.type1 > li:before{
		color: var(--color7);
	}
	ul.type1 > li{
		font-size: 2.2rem;
	}
}

table.type1{
	border-collapse: collapse;
	border-top: 0.5px solid #697474;
	width: 100%;
}
table.type1 :is(th, td){
	text-align: left;
	font-size: 2.2rem;
	font-weight: 300;
	border-bottom: 0.5px solid #697474;
	padding: 0.3em 1.5em;
	background-clip: padding-box; /* Firefox対策。border が表示されるようにする。 */
}
table.type1 th{
	white-space: nowrap;
	background-color: var(--color1);
}
html[lang="en"] table.type1 th{
	white-space: normal;
}
table.type1 td{
	background-color: #fff;
	width: 750px;
}
@media (max-width: 700px) {
	table.type1{
		border-collapse: separate;
		border-spacing: 0px 20px;
		border-top: 0;
	}
	table.type1 :is(th, td){
		font-size: 2.4rem;
		line-height: 1.5;
		border-bottom: 0;
		padding: 0.3em 1em;
	}
	table.type1 th{
		border-radius: 100px;
	}

}

.flex{ display:flex; gap:25px; }
.flex.inline{ display:inline-flex; }
.flex.wrap{ flex-wrap:wrap; }
.flex.between{ justify-content:space-between; }
.flex.center{ justify-content:center; }
.flex.start{ justify-content:flex-start; }
.flex.end{ justify-content:flex-end; }
.flex.v_center{ align-items:center; }
.flex.v_start{ align-items:flex-start; }
.flex.v_end{ align-items:flex-end; }
.flex .col33{ flex-basis: 33%; }
.flex .col50{ flex-basis: 50%; }

.ta_center{ text-align: center !important; }
.ta_right{ text-align: right !important; }
.ta_left{ text-align: left !important; }

.clearfix:after {
  content: "";
  display: block;
  clear: both;
}


#page{
	.main_image .n2-bullet{
		background-color: #fff;
	}
	.main_image .n2-bullet:hover,
	.main_image .n2-bullet.n2-active{
		background-color: var(--color1);
	}
	.main_image > img{
		width: 100%;
	}

	.main_image2{
		border-radius: 50px;
		overflow: hidden;
		margin: -60px 0 0;
	}
}
@media (max-width: 800px) {
	#page{
		.main_image{
			margin: 162px 0 0;
		}
		.main_image2{
			margin: 162px 0 0;
		}
	}
}
@media (max-width: 700px) {
	#page{
		.n2-ss-control-bullet{
			position: relative;
			top: 55px;
		}
		.main_image .n2-bullet{
			padding: 10px;
			margin: 0 13px;
		}
		.main_image .n2-bullet.n2-active{
			background-color: #000;
		}
		.main_image_header{
			position: relative;
			text-align: center;
			margin-bottom: -100px;
			z-index: 500;
		}
		.main_image_header img{
			width: 75%;
		}
		.main_image_footer{
			height: 120px;
			background-color: var(--color1);
		}
	}
}

input[type="radio"]{
	width: 1.5em;
	height: 1.5em;
	border: 1px solid rgba(0,0,0, 0.8);
	border-radius: 100px;
	background-color: #fff;
	vertical-align: -0.3em;
	-webkit-appearance: none;
	   -moz-appearance: none;
	        appearance: none;
}
input[type="radio"]:checked{
	border: 1px solid var(--color1);
	background-color: var(--color1);
}



/* トップ *************************************************************************** */

.page-template-top{
	.fs_1{
		font-size: 2.4rem;
		line-height: 2;
	}
	.fs_2{
		font-size: 4.6rem;
		line-height: 1.6;
	}
	.fs_3{
		font-size: 3.5rem;
	}
	.fs_4{
		font-size: 3.6rem;
	}

	#whats_hanicome{
		.text1{
			writing-mode: vertical-rl;
			background-image: url(img/top/1.webp);
			/*	background-size: cover;*/
			background-position: 50% 0;
			background-repeat: no-repeat;
			box-sizing: border-box;
			width: 100%;
			padding: 60px 470px 300px 0;
			/*padding: 60px min(470px,35vw) 300px 0;*/
		}
		.text2{
			writing-mode: vertical-rl;
			margin: 0 auto;

			.text2_1{
				margin: 0 0 0 30px;
			}
			.text2_2{
				margin: 70px 0 0 0px;
			}
			.text2_2_2{
				margin: 0 15px 0 0px;
			}
		}
		.img2{
			text-align: center;
			margin: 100px 0 150px 0px;
		}
		.row1{
			display: flex;
			justify-content: flex-end;
			gap: 20px;
		}
		.row1 .left{
			writing-mode: vertical-rl;
			margin: 60px 0 0 0px;

			.left2{
				margin: 0 10px 0 0px;
			}
		}
		.row1 .img3{
			border-radius: 500px;
		}
		.img4{
			width: 100%;
			margin: 100px 0;
		}

		.div1{
			text-align: center;
		}
		.div1 p{
			display: inline-block;
			writing-mode: vertical-rl;
			text-align: left;
		}

		dl.type1{
			margin: 100px 0 40px;
		}
	}

	#contact,
	#contact p{
		text-align: center;
	}
	#contact{
		margin: 100px 0;
	}
	#contact p{
		line-height: 1.5;
	}
	#contact a{
		font-size: 2rem;
	}
}

@media (min-width: 701px) {
	.max700{
		display: none !important;
	}
}

@media (max-width: 700px) {
	.min700{
		display: none !important;
	}

	.page-template-top{

		.fs_4{
			font-size: 3rem;
		}

		#whats_hanicome{
			.text1{
				text-align: center;
				writing-mode: horizontal-tb;
				background-image: none;
				padding: 0;

				.fs_2{
					font-size: 3.8rem;
				}
				.img1_1{
					width: 800px;
				}
			}
			.text2{
				writing-mode: horizontal-tb;
				background-image: none;
				padding: 0;
				margin: 50px 0 0;

				.fs_2{
					font-size: 5rem;
				}
				.text2_1{
					margin: 0 0 30px;
				}
				.text2_2{
					margin: 0;
				}
				.text2_2_2{
					font-size: 3.8rem;
					line-height: 1.7em;
					margin: 0.8em 0 0;
				}
				.img1_2{
					width: 400px;
				}
			}
			.img2sp{
				width: 100%;
			}
			.img4{
				margin: 20px 0 0;
			}
			.row1{
				justify-content: center;

				.left{
					display: flex;
					flex-direction: column;
					writing-mode: horizontal-tb;
					text-align: left;
					margin: 0;

					.left1{
						order: 2;
					}
					.left2{
						order: 1;
						font-size: 5rem;
						white-space: nowrap;
						word-break: keep-all;
						line-break: strict;
					}
				}
				.right{
					margin: 270px 0 0 -250px;
				}
			}
			.div1{
				display: flex;
				flex-direction: column;
				padding: 50px 5% 100px;
				background-color: #fffcf0;
			}
			.div1 .img5{
				order: 1;
				margin: 0 0 110px;
			}
			.div1 p{
				order: 2;
				writing-mode: horizontal-tb;
				text-align: center;
				margin: 0;
			}
		}

		.img6{
			width: 140px;
			margin: 0 0 10px;
		}

		#contact a.type1{
			text-align: center;
			font-size: 3rem;
			width: 80%;
			padding: 0.25em 0;
			border-radius: 100px;
			background-color: var(--color1);
		}
		#contact a.type1:before{
			content: none;
		}
	}
}





/* 施設の紹介 *************************************************************************** */

.page-template-sisetu{
	font-size: 2.4rem;
	line-height: 2;
}
.page-template-sisetu .fs_1{
	font-size: 2.4rem;
	line-height: 2;
}

.page-template-sisetu .row1{
	display: flex;
	justify-content: space-between;
	margin: 60px 0;
}
.page-template-sisetu .row1 .right{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.page-template-sisetu .row1 .text1{
	writing-mode: vertical-rl;
	padding: 0.7em 0.5em 0 0;
}
.page-template-sisetu .row1 .ie_frame{
	position: relative;
	margin: 45px 0 0 -4.5em;
}

.page-template-sisetu .row2{
	display: flex;
	gap: 20px;
	margin: 0.6em 0 50px 60px;
}
.page-template-sisetu .row2 .ie_frame{
	position: relative;
	top: -2em;
}
.page-template-sisetu .row2 .right{
	line-height: 1.6;
}

.page-template-sisetu .row3{
	display: flex;
	justify-content: space-between;
	margin: 1em 0 60px 0;
}
.page-template-sisetu .row3 .right{
	position: relative;
	padding: 0.7em 40px 0 0;
	top: 115px;

	> div{
		display: flex;
		flex-direction: column;
		align-items: center;
	}
}
.page-template-sisetu .row3 .text1{
	writing-mode: vertical-rl;
	text-align: right;
	margin: 0 0 20px;
}

.page-template-sisetu .row4{
	display: flex;
	justify-content: space-between;
	margin: 1em 0 60px;

	.left{
		position: relative;
		padding: 0 0 0 40px;
		top: -135px;

		> div{
			display: flex;
			flex-direction: column;
			align-items: center;
		}
	}
	.text1{
		writing-mode: vertical-rl;
		padding: 0.7em 0 0 0;
	}
}

.page-template-sisetu .row5{
	display: flex;
	justify-content: space-between;
	margin: 1em 0 70px 0;
}
.page-template-sisetu .row5 .right{
	display: flex;
	flex-direction: column;
	align-items: center;
/*	position: relative;*/
	padding: 0.7em 20px 0 0;
/*	top: 100px;*/
}
.page-template-sisetu .row5 .text1{
	writing-mode: vertical-rl;
	margin: 30px 0 0;
}

.page-template-sisetu .page_width_a{
	width: 875px;
}

.page-template-sisetu .row6{
	display: flex;
	justify-content: space-between;
	margin: 1em 0 20px 0;
}
.page-template-sisetu .row6 .ie_frame{
	position: relative;
	top: -50px;
	margin: 0 0 0 20px;
}

.page-template-sisetu table.table1{
	margin: 40px 0;
}

.page-template-sisetu .map{
	width: 100%;
}

.page-template-sisetu .map iframe{
	width: 100%;
	height: 700px;
	filter: grayscale(100%);
}

@media (max-width: 700px) {
	.page-template-sisetu{
		#facility{
			img{
				width: 100%;
			}
			.text1{
				writing-mode: horizontal-tb;
				text-align: left;
				font-size: 2.1rem;
				line-height: 1.5;
				padding-left: 0;
				padding-right: 0;
			}
			.ie_frame{
				line-height: 1.1;
				position: relative;
				top: -9px;
				padding: 1.3em 0.5em 0.3em;
			}

			.right_a{
				width: 100%;

				.text1{
					text-align: center;
					font-size: 2.6rem;
					line-height: 2;
					width: 100%;
					padding: 0 0 30px;
				}
			}
			.row2{
				align-items: flex-end;
				margin: 40px 0 100px 0px;

				.ie_frame{
					top: -9px;
				}
				.text1{
				}
			}
			.row3{
				flex-direction: column;

				.right{
					align-items: flex-start;
					top: 0;

					> div{
						flex-direction: row;
						align-items: flex-end;
						gap: 20px;
					}
				}
				.text1{
					margin: 0;
				}
			}
			.row4{
				flex-direction: column-reverse;

				.left{
					padding: 30px 0 0;
					top: 0;

					> div{
						flex-direction: row-reverse;
						justify-content: flex-end;
						align-items: flex-end;
						gap: 20px;
					}
				}
			}
			.row5{
				flex-direction: column;

				.right{
					flex-direction: row;
					align-items: flex-end;
					gap: 20px;
					top: 0;
				}
				.text1{
					margin: 0;
				}
			}
			.page_width_a{
				width: 100%;
				max-width: none;
			}
			.row6{
				gap: 20px;

				.left, .right{
					flex-grow: 1;
					text-align: center;
				}
				.ie_frame{
					top: -50px;
					margin: 0;
				}
			}
		}

		#access{
			.map{
				width: 80%;
				margin: 0 auto;
			}
		}
	}
}



/* はにかむの生活 *************************************************************************** */

.page-template-seikatu,
.page-template-seikatu p{
	text-align: center;
	font-size: 2.4rem;
}

.page-template-seikatu{
	.page_width_a{
		width: 870px;

		@media (max-width: 700px) {
			width: auto;
			max-width: 90%;
		}
	}

	/* 全体を囲むGridコンテナ */
	.schedule-container {
		display: grid;
		font-size: 2.2rem;
		width: 100%;
		/* --- レイアウトの定義 --- */
		/* カラム: [線] auto [時間] auto [低学年] 1fr [高学年] 1fr */
		margin: 0 auto;
		grid-template-columns: auto 3em 1fr 1fr;
		/* 行: [ヘッダー] 30px [スペース] 20px ...以降は時間ごとの細かい行 */
		grid-template-rows: 1.5em 3em repeat(250, 0.12em); /* 1時間 = 60行で計算 (4時間分以上) */
		column-gap: 0em;

		/* --- ヘッダーの配置 --- */
		.header {
			/* ヘッダーは1行目に配置 */
			grid-row: 1;
			justify-self: center; /* 中央揃え */
			align-self: center; /* 行の中央に配置 */
			background-color: #eeeeee;
			padding: 1px 0;
			border-radius: 100px;
			font-size: 2.2rem;
			font-weight: bold;
			text-align: center;
			width: 80%;
		}
		.low-grade-header { grid-column: 3; }
		.high-grade-header { grid-column: 4; }

		/* --- タイムライン（時間・線・点）の配置 --- */
		.time {
			grid-column: 2; /* 2列目に配置 */
			justify-self: start; /* 左揃え */
			align-self: center; /* 行の中央に配置 */
			font-weight: 300;
			font-size: 1.22em;
			letter-spacing: 0.05em;
			padding-left: 0.4em;
			white-space: nowrap;
			word-break: keep-all;
		}
		.timeline-dot {
			grid-column: 1; /* 1列目に配置 */
			justify-self: center; /* 中央揃え */
			align-self: center; /* 行の中央に配置 */
			width: 1.2em;
			height: 1.2em;
			background-color: var(--color1);
			border-radius: 50%;
			z-index: 2; /* 線より手前に表示 */
		}
		.timeline-line {
			grid-column: 1; /* 1列目に配置 */
			grid-row: 3 / 244;
			justify-self: center;
			width: 0.15em;
			background-color: var(--color1);
			z-index: 1;
		}

		/* 時間ごとの行を指定 (1時間 = 60行) */
		.time-13, .dot-13 { grid-row: 3; }
		.time-14, .dot-14 { grid-row: 63; }  /* 3 + 60 */
		.time-15, .dot-15 { grid-row: 123; } /* 63 + 60 */
		.time-16, .dot-16 { grid-row: 183; } /* 123 + 60 */
		.time-17, .dot-17 { grid-row: 243; } /* 183 + 60 */

		/* --- アクティビティのボックス --- */
		.activity {
			background-color: #fff4c8;
			padding: 0.5em 0px;
			border-radius: 1em;
			text-align: center;
			white-space: nowrap;
			width: 9em;
			margin: 0 5px; /* 左右の余白 */
			align-self: center; /* 割り当てられた行の中央に配置 */
			justify-self: center;
		}

		/* --- アクティビティの配置 --- */
		/* 低学年 (3列目) */
		.low-grade-1 { grid-column: 3; grid-row: 15; }
		.low-grade-2 { grid-column: 3; grid-row: 58; }
		.low-grade-3 { grid-column: 3; grid-row: 117; }
		.low-grade-4 { grid-column: 3; grid-row: 148; }

		/* 高学年 (4列目) */
		.high-grade-1 {grid-column: 4;grid-row: 87;}
		.high-grade-2 {grid-column: 4;grid-row: 117;}
		.high-grade-3 { grid-column: 4; grid-row: 213; }

		/* イラスト (4列目、複数行を専有) */
		.illustration-placeholder {
			grid-column: 4;
			grid-row: 3 / span 50; /* 13:00から14:30までの90行分を専有 */
			align-self: center;
			justify-self: start;
			color: #a0a0a0;
			padding-left: 2.7em;
		}

		/* 共有 (3列目から4列目をまたぐ) */
		.shared{width: 17em;}
		.shared-1 { grid-column: 3 / 5; grid-row: 183; justify-self: center; } /* 16:00 頃 */
		.shared-2 { grid-column: 3 / 5; grid-row: 243; justify-self: center; } /* 17:00 頃 */

		/* カラム間の点線 */
		.divider-line {
			grid-column: 4; /* 高学年カラムの左端に配置 */
			grid-row: 3 / 244; /* ヘッダーの下から一番下まで (17:00の点の1行下まで) */
			border-left: 2px dashed #ccc;
		}
	}
	@media (max-width: 700px) {
		.schedule-container {
			grid-template-columns: auto 5em 1fr 1fr;
			grid-template-rows: 1.5em 3em repeat(250, 0.1em); /* 1時間 = 60行で計算 (4時間分以上) */

			.header {
				width: 90%;
			}

			.activity {
				padding: 0.3em 0px;
			}
			.low-grade-1 { grid-row: 20; }
			.low-grade-2 { grid-row: 63; }

			.illustration-placeholder{
				justify-self: center;
				padding-left: 0;

				img{
					width: 180px;
				}
			}

			.shared{width: 14em;}

			.divider-line {
				border-left: 4px dashed #ccc;
			}
		}
	}

	.area2{
		background-image: url(img/seikatu/3.webp);
		background-size: 196px;
		background-position: 0% 10%;
		background-repeat: no-repeat;
		margin: 100px 0 150px;

		@media (max-width: 700px) {
			background-image: none;
		}
	}
	.area2 p{
		margin: 0.5em 0 1.5em;
	}

	.p1{
		font-size: 2.3rem;
		margin: 0.5em 0 1.5em;
	}

	.img4{
		width: 94%;
	}

	.img5{
		width: 100%;
	}

	.img6{
		width: 100%;
		border-radius: 20px;
		margin: 30px 0 50px;
	}

	@media (max-width: 700px) {
		.img3{
			width: 30%;
			margin: 60px 0 50px 5%;
		}
		.img7{
			width: 40%;
		}
		h2.type1_a{
			margin-top: 30px;
		}
	}
}





/* 5領域について *************************************************************************** */

.page-template-5ryoiki{
	text-align: center;

	.p1{
		writing-mode: vertical-rl;
		font-size: 3.6rem;
		line-height: 2.3;
		letter-spacing: 0.1em;
		margin: 20px 30px 0;
	}

	.row1{
		display: flex;
		justify-content: center;
	}
	.row1 :is(.left, .right){
		display: flex;
		align-items: flex-start;
	}

	.area1{
		background-image: url(img/5ryoiki/3_1.webp);
		background-size: 190px;
		background-position: 85% 0;
		background-repeat: no-repeat;
		padding: 70px 0 0;
		margin: 60px 0 0;
	}

	.area2 .row1 .left{
		margin-right: -80px;
	}

	.area3{
		background-image: url(img/5ryoiki/5_1.webp);
		background-size: 160px;
		background-position: 22% 0;
		background-repeat: no-repeat;
		padding: 70px 0 0;
		margin: 60px 0 0;
	}

	.area4{
		background-image: url(img/5ryoiki/6_1.webp);
		background-size: 132px;
		background-position: 77% 0;
		background-repeat: no-repeat;
		padding: 130px 0 0;
		margin: 20px 0 0;
	}
	.area4 .row1 .left{
		margin-right: -90px;
	}

	.area5{
		background-image: url(img/5ryoiki/7_1.webp);
		background-size: 148px;
		background-position: 20% 0;
		background-repeat: no-repeat;
		padding: 120px 0 0;
		margin: 60px 0 0;
	}

	.area6{
		margin: 160px 0;
	}
}

@media (max-width: 700px) {
	.page-template-5ryoiki{
		text-align: center;

		h3.type5{
			font-size: 3.5rem;
			margin: 150px 0 30px;
		}

		.img8{
			width: 45%;
			margin: 80px 0 0;
		}
		h3.h3_a{
			font-size: 2.8rem;
			margin: 10px 0 60px;
		}

		.p1{
			writing-mode: horizontal-tb;
			text-align: center;
			font-size: 2.7rem;
			line-height: 1.7;
			letter-spacing: 0em;
			margin: 20px 0px 20px;
			width: 100%;
		}

		.row1{
			flex-direction: column;
			align-items: stretch;
			gap: 50px;
			
			.left, .right{
				display: block;
				width: 100%;
				text-align: center;
			}
		}
		.row1.sp_reverse{
			flex-direction: column-reverse;
		}

		.img2{
			width: 100%;
		}

		.img3_2,
		.img4,
		.img5_2,
		.img6_2,
		.img7_2{
			width: 75%;
		}

		.area1{
			background-size: 230px;
			background-position: 0% 100%;
			padding-bottom: 250px;
			margin-bottom: -220px;
		}

		.area3{
			background-size: 210px;
			background-position: 10% 0%;
			padding-top: 200px;
			margin-top: -100px;
			position: relative;
			z-index: 100;
		}

		.area4{
			background-size: 170px;
			background-position: 90% 0%;
			padding-top: 100px;
			margin-top: -50px;
		}

		.area5{
			background-image: none;
			padding-top: 0px;

			.img7_1{
				position: absolute;
				width: 200px;
				margin: 310px 0 0 -150px;
			}
		}

		.area6 .button1{
			width: 90%;
			padding: 50px 0;
		}
	}
}





/* blog *************************************************************************** */

.blog_page .main_image{
	border-radius: 50px;
	overflow: hidden;
	margin: -60px 0 0;
}

.blog_page .filter-buttons {
	display: flex;
	gap: 2rem;
}
.blog_page dl.filter-list {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: 20px 20px;
	margin: 70px 0;
}
.blog_page dl.filter-list dt {
	text-align: center;
	color: #000;
	background-color: var(--color1);
	padding: 0 30px;
	border-radius: 50px;
}
.blog_page dl.filter-list dd {
	margin: 0;
}
.blog_page dl.filter-list label {
	cursor: pointer;
	display: inline-block;
	margin: 0 0.5rem;
}
.blog_page input[type="radio"]:checked + span {
	background-color: #dce047;
	border-radius: 1rem;
	padding: 0.3rem 1rem;
}


.blog_page .pagination{
	display: flex;
	justify-content: center;
	gap: 10px;
	text-align: center;
	margin: 50px 0 200px;
}
.blog_page .pagination .page-numbers{
	user-select: none;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	text-decoration: none;
	font-family: "maru-maru-gothic-asr-stdn", sans-serif;
	border: 1px solid #d5d8d8;
	border-radius: 12px;
	min-width: 40px;
	min-height: 40px;
}
.blog_page .pagination .page-numbers:hover,
.blog_page .pagination .page-numbers.current{
	color: #000;
	background-color: var(--color1);
}
.blog_page .pagination .page-numbers:is(.prev, .next){
	border: 0;
	background-image: url(img/blog/arrow_l.png);
	background-size: 16px;
	background-position: 50%;
	background-repeat: no-repeat;
}
.blog_page .pagination .page-numbers.next{
	background-image: url(img/blog/arrow_r.png);
}
.blog_page .pagination .page-numbers:is(.prev, .next, .dots):hover{
	background-color: transparent;
}
.blog_page .pagination .page-numbers:is(.prev, .next):hover{
	opacity: 0.7;
}
.blog_page .pagination .page-numbers.dots{
	border: 0;
}



/*.blog_page article{
	padding: 70px 0 100px;
	border-bottom: 1px solid #000;
}
.blog_page article .date{
	font-size: 1.4rem;
}
.blog_page article .title{
	font-size: 2rem;
	margin: 20px 0;
}
.blog_page article .content{
	font-size: 1.4rem;
	line-height: 2.1;
}*/

.single-post .site-header{
/*	margin: 0;*/
}
.single-post h1.type3{
	font-size: 4.2rem;
	padding-top: 40px;
}
.single-post h1.type3 small{
	font-family: "maru-maru-gothic-asr-stdn", sans-serif;
	margin: 0 0 50px;
}
.single-post .content{
	font-size: 3.2rem;
}
.single-post figure img{
	border-radius: 20px;
}





/* お問合せ *************************************************************************** */

.page-template-contact h1,
.page-template-thanks h1{
	display: flex;
	align-items: center;
	gap: 15px;
	font-size: 3.2rem;
	letter-spacing: 0.1em;
	margin: 80px 0 40px;
}


.page-template-contact .p_sousin{
	display: none;
}
.page-template-contact #primary:has(#wpcf7cpcnf) .p_kakunin{
	display: none;
}
.page-template-contact #primary:has(#wpcf7cpcnf) .p_sousin{
	display: block;
}

.page-template-contact .steps{
	display: flex;
}
.page-template-contact .steps .step{
	flex-basis: calc(33.33% + 30px);
	text-align: center;
	padding: 5px;
	margin: 0 -25px;
	border: 2px solid var(--color6);
	border-radius: 50px;
/*	color: var(--color6);*/
	background-color: #fff;
}
.page-template-contact .steps .step.current{
/*	color: #fff;*/
	background-color: var(--color6);
}
.page-template-contact .steps .step1{
	z-index: 3;
/*	color: #fff;*/
	background-color: var(--color6);
}
.page-template-contact .steps .step2{
	z-index: 2;
}
.page-template-contact .steps .step3{
	z-index: 1;
}

.page-template-contact #primary:has(#wpcf7cpcnf) .steps .step1{
/*	color: var(--color6);*/
	background-color: #fff;
}
.page-template-contact #primary:has(#wpcf7cpcnf) .steps .step2{
/*	color: #fff;*/
	background-color: var(--color6);
}

div.wpcf7 .wpcf7-form .ajax-loader{
	display: none;
}

.page-template-contact #privacy_policy_check{
	text-align: center;
	margin: 60px 0 40px;
	scroll-margin: 300px;
}
.page-template-contact :is(.submit_area, .wpcf7cp-btns){
	position: relative;
	text-align: center;
	margin: 50px 0 50px;
}

.wpcf7-spinner{
	position: absolute;
	top: calc(50% - 12px);
}

.thanks_url{
	display: none;
}


input[type="text"],
input[type="email"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="search"],
textarea,
select{
	font-family: "zen-maru-gothic", sans-serif;
	font-size: 2rem;
	font-weight: 400;
	box-sizing: border-box;
	border: 0.5px solid #b7b7b7;
	border-radius: 10px;
	background-color: #fbfbf9;
	outline: 0;
	padding: 10px;
	margin: 0;
	width: 100%;
	-webkit-appearance: none; /* iPhone の入力欄へのエフェクトを消す */
}

select{
	padding: 10px 50px 10px 10px;
	width: auto;
	background: #fbfbf9 url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat right 5px top 55%;
}


table.type_cf7,
#wpcf7cpcnf table{
	border-collapse: collapse;
	width: 100%;
}
table.type_cf7 :is(th, td),
#wpcf7cpcnf table :is(th, td){
	text-align: left;
	font-weight: 500;
	padding: 30px 30px;
	border-bottom: 0.75px solid #b7b7b7;
	background-clip: padding-box; /* Firefox対策。border が表示されるようにする。 */
}
#wpcf7cpcnf table :is(th, td){
	padding: 20px 30px;
}
table.type_cf7 tr:last-child :is(th, td),
#wpcf7cpcnf table tr:last-child :is(th, td){
	border-bottom: 0;
}
table.type_cf7 th,
#wpcf7cpcnf table th{
	position: relative;
	text-align: right;
	white-space: nowrap;
	padding-right: 70px;
}
table.type_cf7 th.hissu:after{
	content: "必須";
	position: absolute;
	right: 0;
	top: calc(50% - 12px);
	background-color: var(--color6);
	border-radius: 50px;
	font-size: 1.5rem;
	line-height: 1;
	padding: 3px 12px 4px;
}
table.type_cf7 td,
#wpcf7cpcnf table td{
	background-color: #fff;
	width: 750px;
}
table.type_cf7 p,
#wpcf7cpcnf table p{
	margin: 0;
}




/* 404 *************************************************************************** */

.error-404{
	display: flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	padding: 100px 0 0;
	height: calc(100vh - 750px);
	min-height: 300px;
}
