@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: #6e6e6e;
	--color1: #3b7356;
	--color2: #ded9c1;
	--color3: #e3ce57;
	--color4: #93b8a5;
	--color5: #d09b7f;
	--color6: #e2f3eb;
	--side1000: max(calc((100vw - 1000px) / 2), 3vmin);
	--side940: max(calc((100vw - 940px) / 2), 3vmin);
}

html{
	font-size: min(1px, 0.19vmin);
	scroll-behavior: smooth;
}

html[lang]{
	margin: 0 !important;
}
#wpadminbar{
	display: none; 
	opacity: 0.5;
}

body{
	padding: 0;
	margin: 0;
	font-family: sans-serif;
	font-size: 16rem;
	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;
}

h1.type1{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-family: din-2014, sans-serif;
	font-size: 54rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.04em;
	color: #fff;
	background-color: #eee;
	background-image: url();
	background-size: cover;
	background-position: 50%;
	background-repeat: no-repeat;
	height: 410px;
	margin: 0 0;
}
h1.type1 small{
	font-size: 0.44em;
	line-height: 1.3;
	margin: 12rem 0 0;
}

h1.type2{
	font-size: 45rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.3;
	padding: 0.1em 0.8em;
	border-left: 0.5em solid var(--color1);
	margin: 100rem 0 50rem;
}

h2{
}

h2{
	font-size: 32rem;
	letter-spacing: 0.1em;
	line-height: 1.25;
	border-left: 0.45em solid var(--color1);
	padding: 2rem 0 2rem 0.6em;
}

h3{
	font-size: 24rem;	
	font-weight: 600;
	color: #000;
}

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

p{
	/* text-align: justify; */
}

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

a,
a:link,
a:visited{
	color: inherit;
}
a:hover{

}

a.arrow1{
	display: inline-flex;
	align-items: center;
	gap: 20rem;
	text-decoration: none;
	font-weight: 600;
}
a.arrow1:hover{
	filter: brightness(1.2);
}
a.arrow1 img{
	max-width: 12vmin;
}

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

ul.type1{
	padding: 0;
	margin: 0 0;
	list-style: none;
}
ul.type1 > li{
	display: flex;
	margin: 5px 0;
}
ul.type1 > li:before{
	content: "・";
	white-space: nowrap;
	font-feature-settings: normal;
}

table.type1{
	border-collapse: collapse;
	border-top: 1px solid #c2c2c2;
	width: 100%;
}
table.type1 :is(th, td){
	text-align: left;
	font-weight: 300;
	border-bottom: 1px solid #c2c2c2;
	padding: 15px 30px;
	background-clip: padding-box; /* Firefox対策。border が表示されるようにする。 */
}
table.type1 th{
	white-space: nowrap;
	background-color: #edead8;
}
html[lang="en"] table.type1 th{
	white-space: normal;
}
table.type1 td{
	background-color: #fff;
	width: 80%;
}


#page{
	min-height: 100vh;
}

.flex{ display:flex; gap:25rem; }
.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; }
.ta_justify{ text-align: justify !important; }

.wrap{ white-space: normal !important; }
.nowrap{ white-space: nowrap !important; } /* スペース文字があっても改行しない。 */

.center_block{
	max-width: 96%;
	width: 940rem;
	margin: 0 auto;
}

.padding_block{
	padding: 0 min(30rem,3vmin);
}

.site-header{
	display: flex;
	justify-content: space-between;
	background-image: url(img/common/header/bg.webp);
	background-position: center;
	background-size: cover;
}
.site-header .site-branding{
	display: flex;
	/* justify-content: space-between; */
	align-items: center;
	gap: min(30rem, 2vw);
	padding: 0 min(30rem, 3vw);
}

#site-navigation{
	display: flex;
	z-index: 1000;
}
#site-navigation a{
	flex-grow: 1;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	text-decoration: none;
	width: min(120rem, 10vw);
	padding: 15rem 5rem;
	border-right: 1px solid #fff;
	transition: background-color 0.15s linear;
}
#site-navigation a:first-child{
	border-left: 1px solid #fff;
}
#site-navigation a:hover{
	background-color: rgba(255,255,255,0.15);
}
.site-header .nav_knob {
	display: none;
	width: 30rem;
	/*height: 20px;*/
	cursor: pointer;
	flex-direction: column;
	justify-content: center;
	gap: 10rem;
	margin: 0 5vmin 0 0;
}
.site-header .nav_knob span {
	display: block;
	width: 100%;
	height: 2rem;
	background-color: #fff;
	transition: all 0.3s ease-in-out;
}
.site-header .nav_knob.open span:nth-child(1) { transform: translateY(12rem) rotate(45deg); }
.site-header .nav_knob.open span:nth-child(2) { opacity: 0; }
.site-header .nav_knob.open span:nth-child(3) { transform: translateY(-12rem) rotate(-45deg); }
@media (max-width: 1000px) {
	#site-navigation a{
		width: 9.5vw;
	}
	#site-navigation a img{
		zoom: 0.85;
	}
}
@media (max-width: 850px) {
	#site-navigation a{
		width: 9vw;
	}
	#site-navigation a img{
		zoom: 0.7;
	}
}
@media (max-width: 750px) {
	.site-header{
		--site-header-height: min(100rem, 20vmin);;
		height: var(--site-header-height);
	}
	.site-header .site-branding{
		max-width: 70vmin;
	}
	#site-navigation{
		position: absolute;
		left: 0;
		top: var(--site-header-height);
		box-sizing: border-box;
		width: 100%;
		height: auto;
		flex-wrap: wrap;
		/*padding: 0 5vw;*/
		background-color: #37473e;
		/*background-image: url(img/common/header/bg.webp);*/
		background-position: center;
		background-size: cover;

		opacity: 0;
		pointer-events: none;
		transition: opacity 0.2s linear;
	}
	#site-navigation:after{
		content: "";
		flex-grow: 1;
		width: 50%;
		border-top: 1px solid #fff;
	}
	#site-navigation.open{
		opacity: 1;
		pointer-events: auto;
	}
	#site-navigation a{
		box-sizing: border-box;
		width: 50%;
		padding: 5vw;
		border: 0;
		border-top: 1px solid #fff;
	}
	#site-navigation a:first-child{
		border-left: 0;
	}
	#site-navigation a:nth-of-type(2n){
		/*padding-right: 10vw;*/
	}
	#site-navigation a:nth-of-type(2n+1){
		/*padding-left: 10vw;*/
		border-right: 1px solid #fff;
	}
	#site-navigation a img{
		zoom: 1;
	}
	.site-header .nav_knob{
		display: flex;
	}
}

.site-footer{
	position: sticky;
	top: 100vh;

	text-align: center;
	font-weight: 600;
	padding: 50rem 0 30rem;
	color: #fff;
	background-color: var(--color1);
}
.site-footer a{
	text-decoration: none;
}
.site-footer .footer1{
	font-size: 22rem;
	margin: 20rem 0 50rem;
}
.site-footer .footer2{
	display: flex;
	justify-content: center;
	gap: 50rem;
	margin: 0rem 0 30rem;
}
.site-footer .footer3{
	line-height: 2.5;
	margin: 0rem 0 60rem;
}
.site-footer .copyright{
	font-size: 12rem;
}

.back_to_top{
	position: fixed;
	right: 10rem;
	bottom: 10rem;
	max-width: 15vmin;
	z-index: 1000;
}
.back_to_top:hover{
	filter: brightness(1.2);
}

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

body :is(.button1, .button2, .button3){
	display: inline-block;
	text-decoration: none;
	text-align: center;
	font-size: 16rem;
	line-height: 1em;
	color: #fff;
	background-color: var(--color1);
	box-sizing: border-box;
	padding: 0.8em 1.2em;
	border-radius: 100px;
}
body :is(.button1, .button2, .button3):hover{
	filter: brightness(1.2);
}
body :is(.button2){
	font-size: 20rem;
	font-weight: 600;
	border-radius: 10rem;
	padding: 1em 0.4em;
}
body :is(.button2) small{
	display: block;
	font-family: din-2014, sans-serif;
	font-weight: 700;
	font-size: 0.8em;
	margin: 0.6em 0 0;
}
body :is(.button3){
	font-size: 16rem;
	font-weight: 600;
	line-height: 1.4;
	border-radius: 10rem;
	padding: 0.8em 0.4em;
}

.button_list2{
	display: flex;
	justify-content: space-between;
	gap: min(25rem,2.2vmin) 0;
	flex-wrap: wrap;
}
.button_list2 a{
	flex-basis: calc(50% - min(20rem,1.4vw));
}

.button_list3{
	display: flex;
	justify-content: space-between;
	gap: min(20rem,2vw) 0;
	flex-wrap: wrap;
}
.button_list3 a{
	flex-basis: calc(33.33% - min(20rem,2vw) * 2 / 3);
}
.button_list3.type2 a{
	flex-basis: calc(50% - min(20rem,1.5vw));
}

.head_bg{
	background-color: var(--color2);
	padding: 0 0 30rem;
}

.pankuzu{
	padding: 10rem 20rem;
}
.pankuzu .sep{
	margin: 0 0.7em;
}




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

.page-template-top{
}

.page-template-top .main_image{
	display: flex;
	align-items: flex-end;
	box-sizing: border-box;
	height: 631rem;
	padding-bottom: 80rem;
	background-image: url(img/top/1_bg.webp);
	background-size: cover;
	background-position: 50%;
	background-repeat: no-repeat;
}
.page-template-top .main_image img{
	max-width: 80vw;
}

.page-template-top h2{
	font-size: 28rem;
}

.page-template-top .news{
	margin: 50rem 0;
}
.page-template-top .news .title{
	margin-bottom: 1em;
}
.page-template-top .news h2{
	font-size: 20rem;
	letter-spacing: 0;
	padding: 0;
	border: 0;
}
.page-template-top .news .list{
	border-top: 1px solid #d9d9d9;
}
.page-template-top .news .row{
	border-bottom: 1px solid #d9d9d9;
	padding: 20rem 15rem;
}
.page-template-top .news .row .date{
	font-size: 12rem;
	font-weight: 600;
	color: #93b8a5;
	margin-bottom: 10rem;
}
.page-template-top .news .row .title{
}

.page-template-top .our_strength{
	color: #fff;
	background-color: var(--color1);
	padding-bottom: 100rem;
}
.page-template-top .our_strength .head_image{
	background-image: url(img/top/2_1.webp);
	background-size: cover;
	background-position: 50%;
	background-repeat: no-repeat;
	height: 417rem;
}
.page-template-top .our_strength .head_text_image{
	background-image: url(img/top/2_2r.webp);
	background-size: contain;
	background-position: calc(100% + 100px) 50%;
	background-repeat: no-repeat;
	box-sizing: border-box;
	height: 431rem;
	padding: 120px 20vw 0 5px;
	margin: calc(-120px - min(30px,3vw)) 0 -150rem;
}
.page-template-top .our_strength .head_text_image img{
	margin: 0 -100px 0 0;
}
.page-template-top .our_strength h2{
	text-align: center;
	margin-bottom: 50rem;
}

.page-template-top .products{
	background-color: var(--color2);
	background-image: url(img/top/3_bg.svg);
	background-size: min(619px, 80%);
	background-position: calc(100% - 5px) -7rem;
	background-repeat: no-repeat;
	padding: 50rem 0;
	margin: 15rem 0;
}
.page-template-top .products_bottom{
	text-align: right;
	margin: 50rem 0 0;
}





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

.page-template-products_top h1.type1{
	background-image: url(img/products/1.webp);
}

.page-template-products_top .button_list2.all_products{
	justify-content: center;
	margin: 70rem 0;
}

.page-template-products_top .h2_outer{
	padding: 20rem 0 0;
	background-size: auto min(68px, 7vw);
	background-position: 100% calc(100% - 5rem);
	background-repeat: no-repeat;
	margin: 60rem 0 0;
}
.page-template-products_top .h2_outer.product_series{
	background-image: url(img/products/2_1.svg);
}
.page-template-products_top .h2_outer.applications{
	background-image: url(img/products/2_2.svg);
}
.page-template-products_top .h2_outer.performance{
	background-image: url(img/products/2_3.svg);
}
.page-template-products_top .h2_outer.check_items{
	background-image: url(img/products/2_4.svg);
}
.page-template-products_top h2{
	font-size: min(28rem, 4.7vw);
}

.page-template-products_top section.check_items{
	margin: 0 0 100rem;
}
.page-template-products_top section.check_items .submit_row{
	text-align: center;
	margin: 40rem 0 0;
}
.page-template-products_top section.check_items input[type="submit"]{
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
	-webkit-appearance: none;

	font-size: 24rem;
	font-weight: 600;
	line-height: 1.3;
	padding: 0.6em 1em;
	color: #fff;
	background-color: var(--color1);
	border-radius: 0.7em;
}
.page-template-products_top section.check_items input[type="submit"]:hover{
	filter: brightness(1.2);
}

.page-template-products_top .checkbox_list_title{
	font-weight: 600;
}
.page-template-products_top .checkbox_list{
	font-weight: 600;
	margin-bottom: 15rem;
}
.page-template-products_top .search_logic_select{
	margin-bottom: 5rem;
}





/* PRODUCTS アーカイブ *************************************************************************** */

.category_title{
	margin: 60rem 0;
}
.category_title .name{
	text-align: center;
	font-family: din-2014, sans-serif;
	font-weight: 700;
	font-size: 36rem;
	letter-spacing: 0.09em;
	color: var(--color1);
}
.category_title .series-description p{
	text-align: center;
	font-size: 27rem;
	font-weight: 600;
}
.all_products_head .category_title{
	line-height: 1.1;
}
.all_products_head .head_bg{
	padding: 0;
}
.archive-products .head_bg h1{
	text-align: center;
	font-weight: 600;
	font-size: 30rem;
	color: var(--color1);
	margin: 50rem 0 20rem;
}
.archive-products .selected-tax-group{
	font-weight: 600;
	font-size: 26rem;
	letter-spacing: 0.09em;
	color: var(--color1);
}

.archive-products .product-list{
	border-top: 1px solid var(--text_color);
	margin: 60rem 0 100rem;
}
.archive-products .product-list article{
	padding: 30rem min(30rem, 3vmin);
	/* margin: 20rem 0; */
	border-bottom: 1px solid var(--text_color);
}
.archive-products .post-head{
	display: flex;
	gap: 50rem;
}
.archive-products .post-head :is(.post-thumbnail, .post-thumbnail-sp){
	display: flex;
	max-width: 190rem;
	max-height: 190rem;
}
.archive-products .post-head .post-thumbnail img{
	object-fit: contain;
	object-position: center;
}
.archive-products .post-head .catch-copy{
	font-size: 18rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	line-height: 1.5;
}
.archive-products .post-head .title{
	font-family: din-2014, sans-serif;
	font-weight: 700;
	font-size: 40rem;
	letter-spacing: 0.09em;
	word-break: break-word;
	line-height: 1.1;
	margin: 5rem 0 4rem;
}
.archive-products .post-head .kana{
	font-size: 16rem;
	font-weight: 600;
	margin-bottom: 10rem;
}
.archive-products .post-head .arrow1_block{
	display: flex;
	/* justify-content: center; */
	/*align-items: center;*/
	gap: 5vw;
	/*margin: 1vmin 0 4vmin;*/
}
.archive-products .post-head .post-thumbnail-sp{
	display: none;
}
.archive-products .post-head .arrow1 img{
	width: 58rem;
}
@media (max-width: 750px) {
	.archive-products .post-head{
		flex-direction: column;
		align-items: center;
		gap: 5vmin;
	}
	.archive-products .post-head :is(.catch-copy, .title, .kana){
		text-align: center;
	}
	.archive-products .post-head .post-thumbnail{
		/*display: none;*/
	}
	.archive-products .post-head .post-thumbnail-sp{
		/*display: block;*/
	}
	.archive-products .post-head .arrow1_block{
		justify-content: center;
	}
}

.archive-products .youto_block{
	background-color: var(--color1);
	padding: 10rem 20rem;
	border-radius: 15rem;
	color: #fff;
	margin-top: 20rem;
}
.archive-products .youto_block .title{
	text-align: center;
	font-size: 18rem;
	font-weight: 600;
	color: var(--color3);
	padding: 0 0 0.1em 0;
	border-bottom: 1px solid var(--color3);
}





/* PRODUCTS シングル *************************************************************************** */


.single-products .head_bg{
	padding: 0;
}

.single-products article{
	margin: 0 0 100rem;
}


.wp-lightbox-container.has-zoom-button button:focus, 
.wp-lightbox-container.has-zoom-button button:hover, 
.wp-lightbox-container.has-zoom-button button:not(:hover):not(:active):not(.has-background){
	background-color: var(--color1);

}

.wp-lightbox-container.has-zoom-button{
	margin: 0 0 70rem;
}
.wp-lightbox-container.has-zoom-button .lightbox-trigger{
	width: auto;
	height: auto;
	padding: 10rem 25rem;
	border-radius: 100px;
	opacity: 1;
	right: auto !important;
	top: auto !important;
	left: 0 !important;
	bottom: -50rem !important;
}
.wp-lightbox-container.has-zoom-button .lightbox-trigger:before{
	content: "拡大表示";
	font-size: 16rem;
	color: #fff;
}
.wp-lightbox-container.has-zoom-button .lightbox-trigger:hover{
	filter: brightness(1.2);
}
.wp-lightbox-container.has-zoom-button .lightbox-trigger svg{
	display: none;
}
.wp-lightbox-overlay{

}
.wp-lightbox-overlay.zoom.active{
	/*background-color: rgba(0, 0, 0, 0.3);*/
}
.wp-lightbox-overlay .scrim{
	background-color: rgba(0, 0, 0, 0.3) !important;
}

.single-products .single_title{
	display: flex;
	align-items: center;
	gap: 30rem 50rem;
	color: #fff;
	padding: 30rem 20rem 30rem var(--side1000);
	margin: 30rem var(--side1000) 20rem 0;
	border-radius: 0 10rem 10rem 0;
	background-color: var(--color1);
	background-image: url(img/products/single/1.webp);
	background-repeat: no-repeat;
	background-position: 100% 0;
	box-shadow: 10rem 10rem 10rem rgba(0, 0, 0, 0.25);
}
.single-products .single_title .post-thumbnail{
	display: flex;
	max-width: 190rem;
	max-height: 190rem;
}
.single-products .single_title .post-thumbnail img{
	object-fit: contain;
	object-position: center;
}
.single-products .single_title .catch-copy{
	font-size: 20rem;
	font-weight: 600;
	letter-spacing: 0.09em;
}
.single-products .single_title .title{
	font-family: din-2014, sans-serif;
	font-weight: 700;
	font-size: min(55rem, 9.5vmin);
	letter-spacing: 0.09em;
	line-height: 1.2;
	word-break: break-word;
	margin: 0.15em 0;
}
.single-products .single_title .kana{
	font-size: 20rem;
	font-weight: 600;
	letter-spacing: 0.09em;
}
@media (max-width: 750px) {
	.single-products .single_title{
		flex-direction: column;
	}
	.single-products .single_title .post-thumbnail img{
		/* max-width: 60vmin; */
	}
}

.single-products .content{
	padding: min(30rem, 3vmin);
}

.pdf-download-link-block{
	display: flex;
	flex-wrap: wrap;
	gap: 40rem 40rem;
	border-top: 1px solid #6e6e6e;
	padding: min(30rem, 3vmin);
}
.pdf-download-link-block a{
	flex-basis: calc(50% - 20rem);
	display: flex;
	gap: 0 20rem;
	text-decoration: none;
	font-weight: 600;
}
.pdf-download-link-block a .icon{
	width: 50rem;
	min-width: 50rem;
	transition: transform 0.15s linear;
}
.pdf-download-link-block a:hover .icon{
	transform: scale(1.1);
}
@media (max-width: 750px) {
	.pdf-download-link-block a{
		flex-basis: 100%;
	}
}






/* 認証・試験　アーカイブ *************************************************************************** */

.post-type-archive-quality a.article{
	display: block;
	text-decoration: none;
	font-size: 20rem;
	font-weight: 600;
	padding: 40rem min(30rem,3vmin) 40rem;
	border-bottom: 1px solid #d9d9d9;
	transition: background-color 0.15s linear;
}
.post-type-archive-quality a.article:hover{
	background-color: var(--color6);
}
.post-type-archive-quality a.article:nth-of-type(1){
	border-top: 1px solid #d9d9d9;
}





/* 認証・試験　シングル *************************************************************************** */

.single-quality h1{
	text-align: center;
	color: var(--color1);
	margin: 0.67em 0.5em;
}
.single-quality .content {
    padding: min(30rem, 3vmin);
}






/* 会社案内 *************************************************************************** */

.page-template-profile h1.type1{
	background-image: url(img/profile/1.webp);
}

.page-template-profile h2{
	font-size: 45rem;
	margin: 70rem 0 50rem;
}

.page-template-profile p{
	--margin-side: min(30rem,3vmin);
	margin-left: var(--margin-side);
	margin-right: var(--margin-side);
}

.page-template-profile strong{
	font-size: 25rem;
	font-weight: 600;
}

.page-template-profile .map{
	margin: 30rem 0 100rem;
}
.page-template-profile .map iframe{
	width: 100%;
	height: 700rem;
}





/* 施工事例　アーカイブ *************************************************************************** */

.archive-portfolio h1.type1{
	background-image: url(img/portfolio/1.webp);
}

.archive-portfolio .head_bg{
	padding-top: 30rem;
}

.archive-portfolio .portfolio-list{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 30rem 18rem;
	margin: 80rem 0;
}
.archive-portfolio .portfolio-list a{
	flex-basis: min(235rem, 43vw);
	text-decoration: none;
	color: #000;
	transition: background-color 0.15s linear, box-shadow 0.15s linear;
}
.archive-portfolio .portfolio-list a:hover{
	background-color: var(--color6);
	box-shadow: 0px 0px 0px 10rem var(--color6);
}
.archive-portfolio .portfolio-list a.dummy{
	pointer-events: none;
}
.archive-portfolio .portfolio-list a .post-thumbnail{
	height: 233rem;
	width: 233rem;
	background-color: #d6d6d6;
	border-radius: 7rem;
	overflow: hidden;
}
.archive-portfolio .portfolio-list a .title{
	font-weight: 600;
	line-height: 1.5;
	margin: 1em 0;
}
.archive-portfolio .portfolio-list a .spec{
	font-size: 13rem;
}





/* 施工事例 シングル *************************************************************************** */

.single-portfolio .head_bg{
	padding: 0;
}

.single-portfolio h1{
	font-family: din-2014, sans-serif;
	font-weight: 700;
	font-size: 54rem;
	line-height: 1.2;
	letter-spacing: 0.06em;
	color: #fff;
	background-color: var(--color1);
	padding: 15rem 40rem;
	margin: 0;
}
.single-portfolio h1 small{
	display: inline-block;
	vertical-align: middle;
	font-size: 0.44em;
	margin: 0 0 0 30rem;
}

.single-portfolio article .title{
	font-size: 30rem;
	font-weight: 600;
	color: #000;
	margin: 40rem 0 25rem;
}

.single-portfolio article .catchphrase{
	font-size: 24rem;
	font-weight: 600;
	color: #c20000;
}

.single-portfolio article .location_spec{
	margin: 30rem 0;
}

.single-portfolio .article_footer{
	text-align: center;
	margin: 80rem 0;
}



/* NEWS *************************************************************************** */

.info_page .site-main .page_width{
	width: 780px;
}

.info_page h1{
	background-image: url(img/news/1_bg.svg);
	background-repeat: no-repeat;
	background-position: center 100%;
}

.info_page article{
	padding: 20rem min(30rem,3vmin) 40rem;
	border-bottom: 1px solid #d9d9d9;
}
.info_page article:nth-of-type(1){
	border-top: 1px solid #d9d9d9;
}
.info_page article .date{
	font-family: din-2014, sans-serif;
	font-weight: 700;
	font-size: 12rem;
	color: var(--color4);
}
.info_page article .title{
	font-size: 20rem;
	font-weight: 600;
	line-height: 1.4;
	margin: 5rem 0 25rem;
}
.info_page article .content{
	font-size: 14rem;
	line-height: 2.1;
}

.pagination .nav-links{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 5rem;
	margin: 50px 0 200px;
}
.pagination h2{
	display: none;
}
.pagination .page-numbers{
	user-select: none;
	display: flex;
	justify-content: center;
	align-items: center;
	text-decoration: none;
	font-weight: 600;
	white-space: nowrap;
	line-height: 1;
	width: 32rem;
	height: 32rem;
	border: 1px solid var(--color1);
	background-color: var(--color1);
	color: #fff;
}
.pagination .page-numbers:is(.prev, .next){
	width: auto;
}
.pagination .page-numbers.prev{
	margin: 0 15rem 0 0;
}
.pagination .page-numbers.next{
	margin: 0 0 0 15rem;
}
.pagination .page-numbers:is(.dots, .prev, .next){
	background-color: transparent;
	color: var(--color1);
	border: 0;
}
.pagination .page-numbers.current{
	color: var(--color1);
	background-color: transparent;
}
.pagination .page-numbers:not(.dots, .current):hover{
	opacity: 0.7;
}

.info_page .single_nav{
	display: flex;
	justify-content: space-between;
	gap: 0 10%;
	padding: min(30rem, 5vw);
}
.info_page:not(.single-post) .single_nav{
	display: none;
}
body.blog .info_page .single_nav{
	display: none;
}
.info_page .single_nav span{
	display: flex;
	align-items: center;
	gap: 10rem;
	flex-basis: 300rem;
}
.info_page .single_nav span.next{
	justify-content: flex-end;
}





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

.page-template-contact main{
	color: #000;
}

.page-template-contact h1{
	background-image: url(img/contact/1_bg.jpg);
	background-size: cover;
	background-repeat: no-repeat;
}

.page-template-contact h2{
	font-size: 45rem;
	color: var(--text_color);
}

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

.wpcf7-not-valid-tip{
	position: absolute;
	margin-top: -5px;
}
[data-name="checkbox-pp"]{
	display: inline-block;
	margin: 0 0 10rem;
}
[data-name="checkbox-pp"] .wpcf7-not-valid-tip{
	margin: -12rem 0 0 20rem;
}

.page-template-contact .privacy_policy_area{
	text-align: center;
	margin: 60rem 0 40rem;
}
.page-template-contact .submit_area{
	position: relative;
	text-align: center;
	margin: 0 0 130rem;
}

.wpcf7cp-btns{
	text-align: center;
}

.wpcf7-submit,
.wpcf7cp-cfm-edit-btn {
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
	cursor: pointer;
	font-size: 18rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	padding: 0.8em;
	min-width: min(250rem, 33vw);
	color: #fff;
	background-color: var(--color1);
	border-radius: 5px;
	transition: filter 0.15s linear;
}
.wpcf7-submit:hover,
.wpcf7cp-cfm-edit-btn:hover {
	filter: brightness(1.2);
}

#page .wpcf7-response-output{
	box-sizing: border-box;
	width: 900px;
	max-width: 85vw;
	margin: 30rem auto;
}

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

#privacy_policy{
	margin: 100rem 0;
}
#privacy_policy p{
	margin: 0 0;
}

.thanks_url{
	display: none;
}

table.type_cf7,
#wpcf7cpcnf table{
	border-collapse: collapse;
	width: 100%;
}
table.type_cf7 tr,
#wpcf7cpcnf table tr{
	/*display: flex;*/
}
table.type_cf7 :is(th, td),
#wpcf7cpcnf table :is(th, td){
	text-align: left;
	font-weight: 300;
	background-clip: padding-box; /* Firefox対策。border が表示されるようにする。 */
}
table.type_cf7 tr:nth-of-type(2n+1) :is(th, td),
#wpcf7cpcnf table tr:nth-of-type(2n+1) :is(th, td){
	background-color: #f7f7f7;
}
table.type_cf7 th,
#wpcf7cpcnf table th{
/*	display: flex;
	justify-content: space-between;
	align-items: center;*/
	position: relative;
	gap: 80rem;
	position: relative;
	white-space: nowrap;
	padding: 15rem 8em 15rem var(--side940);
}
html[lang="en"] table.type_cf7 th,
html[lang="en"] #wpcf7cpcnf table th{
	white-space: normal;
}
table.type_cf7 th.hissu:after{
	content: "必須";
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	font-size: 13rem;
	line-height: 1;
	color: #fff;
	background-color: var(--color5);
	border-radius: 5rem;
	padding: 5rem 8rem;
}
table.type_cf7 td,
#wpcf7cpcnf table td{
	background-color: #fff;
	padding: 15rem var(--side940) 15rem 15rem;
	width: 80%;
}
table.type_cf7 p,
#wpcf7cpcnf table p{
	margin: 0;
}
@media (max-width: 700px) {
	table.type_cf7,
	#wpcf7cpcnf table,
	table.type_cf7 tbody,
	#wpcf7cpcnf table tbody,
	table.type_cf7 tr,
	#wpcf7cpcnf table tr,
	table.type_cf7 th,
	#wpcf7cpcnf table th,
	table.type_cf7 td,
	#wpcf7cpcnf table td{
		display: block;
		box-sizing: border-box;
		width: 100%;
	}
	table.type_cf7 th.hissu:after{
		position: static;
		display: inline-block;
		transform: none;
		margin: 0 0 0 20rem;
	}
	table.type_cf7 th,
	#wpcf7cpcnf table th{
		padding-bottom: 5rem;
	}
	#wpcf7cpcnf table th{
		padding-bottom: 5rem;
		padding-left: 8vw;
		padding-right: 8vw;
	}
	table.type_cf7 td,
	#wpcf7cpcnf table td{
		padding-top: 0;
	}
	#wpcf7cpcnf table td{
		padding-left: 13vw;
		padding-right: 8vw;
	}
}

label{
	display: inline-block;
	margin: 0.5em 1em 0.5em 0;
}

input[type="checkbox"] {
	position: relative;
	width: 18rem;
	height: 18rem;
	border: 1px solid #6e6e6e;
	border-radius: 5px;
	vertical-align: -5px;
	-webkit-appearance: none;
	   -moz-appearance: none;
	        appearance: none;
}
input[type="checkbox"]:checked {
	background-color: var(--color1);
}
input[type="checkbox"]:checked:before {
	position: absolute;
	top: 2px;
	left: 5px;
	transform: rotate(50deg);
	width: 4px;
	height: 8px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	content: '';
}

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-size: 16rem;
	font-weight: 400;
	box-sizing: border-box;
	border: 1px solid #cdcdcd;
	border-radius: 4px;
	outline: 0;
	padding: 10rem;
	margin: 0;
	width: 100%;
	-webkit-appearance: none; /* iPhone の入力欄へのエフェクトを消す */
}

select{
	padding: 10rem 50rem 10rem 10rem;
	width: auto;
	font-weight: 600;
	letter-spacing: 0.1em;
	color: #fff;
	background: var(--color1) 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%23fff%22%2F%3E%3C%2Fsvg%3E) no-repeat right 5px top 55%;
}

input[name="yubin"]{
	width: 200rem;
}

.wpcf7 form .wpcf7-response-output{
	position: fixed;
	z-index: 10;
	top: min(100px, 13vmin);
	left: 0;
	right: 0;
	box-sizing: border-box;
	width: 900px;
	margin: auto;
	max-width: 94%;
	font-weight: 600;
	color: #fff;
	background-color: #02c2c7;
	border: 0;
	padding: 20px 30px;
	box-shadow: 0 8px 10px rgba(0, 0, 0, 0.3);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output{
	background-color: #ffb900;
}





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

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