@charset "utf-8";
/* CSS Document */

/* ************************************************************************ 
 *	
 *	common
 *	
 * ************************************************************************ */
:root {
	--primary-color: #0762b3;
	--base_line_height: 1.6;
	--base_line_height_big: 1.8;
	--pc_header_height: 90px;
	--sp_header_height: 60px;
	--semi-bold: 600;
	--bold: 900;
}
html{
	-webkit-font-smoothing: antialiased;
}
html,body {
	text-size-adjust: none;
	-webkit-text-size-adjust: none;
}
@media print, screen and ( min-width : 1100px ) {
	html{
		scroll-padding-top: var(--pc_header_height);
	}
}
@media only screen and ( max-width : 1100px ) {
	html{
		scroll-padding-top: var(--sp_header_height);
	}
}
*{
	position: relative;
}
*, *::before, *::after {
	box-sizing: border-box;
}
/* -------------------------body------------------------- */
body {
	margin: 0;
	padding: 0;
	font-size: 17px;
	/* font-size: 1.2857vw; */
	color: #000;
	width:100%;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	height:100%;
	word-wrap: break-word;
	overflow-x:hidden;
	letter-spacing:0.03em;
}
body.not-home{
	padding-top:var(--pc_header_height);
}

@media only screen and ( max-width : 896px ) {
	body.not-home{
		padding-top:var(--sp_header_height);
	}
	body{
		font-size:15px;
	}
}
/* ふわっと表示 */
body {
	transition: opacity 1s ease-out; 
}
body.is-loading {
	opacity: 0;
}
/* -------------------------font------------------------- */
body,
select,
input,
textarea,
button{
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight:400;
}
.tel_link,
.eng{
	font-family: "Outfit", sans-serif;
	font-optical-sizing: auto;
	font-weight:600;
}
/* -------------------------img------------------------- */
img{
	vertical-align: bottom;
	max-width:100%;
	height:auto;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	margin:0;
	line-height:0;
}

/* -------------------------link------------------------- */
a{
	text-decoration: none;
	color: var(--primary-color);
	font-weight:var(--semi-bold);
}
a:hover{
	text-decoration:underline;
	color: var(--primary-color);
}
.contents_css a:hover{
	text-decoration: none;
	color:#444;
}
/* -------------------------text------------------------- */
h2{
	font-size:150%;
	line-height:var(--base_line_height);
}
h1,
h2.title{
	font-size:140%;
	line-height:var(--base_line_height);
}
.page_title{
	font-size:150%;
	line-height:var(--base_line_height);
}
@media only screen and ( max-width : 896px ) {
	h1,
	h2.title,
	.page_title{
		font-size:120%;
		line-height:var(--base_line_height);
	}
}
h3{
	font-size:150%;
	line-height:var(--base_line_height);
}
@media only screen and ( max-width : 896px ) {
	h3{
		font-size:120%;
		line-height:var(--base_line_height);
	}
}
h4{
	font-size:120%;
	line-height:var(--base_line_height);
	text-align: justify;
}
@media only screen and ( max-width : 896px ) {
	h4{
		font-size:110%;
		line-height:var(--base_line_height);
	}
}
h5,
h6{
	font-size:100%;
	line-height:var(--base_line_height);
	text-align: justify;
	font-weight:var(--semi-bold);
}
/* -------------------------form------------------------- */
input[type="email"],
input[type="tel"],
input[type="text"],
textarea,
select{
	margin:0;
	padding:0.8em;
	border:2px solid #aaa;
	box-sizing:border-box;
	font-size:100%;
	border-radius: 0px;
	background:#fcfcfc;
	max-width:100%;
}
textarea{
	width:100%;
}
select{
	background:#fff;
	padding:0.5em;
	font-size:100%;
	color:#2c304e;
}
::placeholder {
	color: #CDCDCD;
	font-size:80%;
}
/* -------------submit------------- */
.submit_block button,
input[type="submit"],
.submit_block input{
	background:var(--primary-color);
	border:none;
	padding:1.3em 3em;
	color: #fff;
	border-radius: 3px;
	font-size:100%;
	line-height:100%;
	cursor: pointer;
}
/* -------------radio------------- */
.wpcf7-list-item{
	margin-left:0 !important;
}
.wpcf7-list-item label{
	display:inline-block;
}

@media print, screen and ( min-width : 896px ) {
	.wpcf7-list-item{
		margin-right:1.5em !important;
	}
}
@media only screen and ( max-width : 896px ) {
	.wpcf7-list-item{
		display:block !important;
		margin-bottom:1em !important;
	}
	.wpcf7-list-item label{
		display:block !important;
	}
}
.wpcf7-list-item-label{
	margin-right:1em;
}
input[type="radio"] {
	position: relative;
	background:#fff;
	width: 20px;
	height: 20px;
	border: 1px solid var(--primary-color);
	border-radius: 50%;
	vertical-align: -4px;
	appearance: none;
}
input[type="radio"]:checked:before {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--primary-color);
	content: '';
}
.wpcf7-not-valid-tip{
	box-sizing: border-box;
	border-radius: 5px;
	background-color: #e50031;
	color: #fff !important;
	display: block;
	font-size: 14px !important;
	font-weight:var(--semi-bold);
	margin-top: 10px;
	padding: 5px 10px;
	position: relative;
}
.wpcf7-not-valid-tip::before{
	content: "";
	border: 10px solid transparent;
	border-bottom: 15px solid #e50031;
	position: absolute;
	top: -25px;
	left: 5%;
}

/* -------------------------スマホ・PCでの表示切り替え------------------------- */
@media only screen and ( max-width : 1100px ) {
	.pc_only{
		display:none !important;
	}
}
@media print, screen and ( min-width : 1100px ) {
	.sp_only{
		display:none !important;
	}
}
/* -------------------------clearfix------------------------- */
.clearfix:after {
	content: "";
	display: block;
	clear: both;
	height:0;
}

/* -------------------------animation------------------------- */
@media only screen and ( min-width : 896px ) {
	input[type="submit"],
	.page_wrap a img,
	.fade,
	.link_block,
	.button{
		transition: all 0.5s;
		opacity: 1;
		z-index:1;
	}
	input[type="submit"]:hover,
	.page_wrap a img:hover,
	.fade:hover,
	.link_block:hover,
	.button:hover{
		opacity: 0.5;
	}
}

/* ************************************************ 
 *	
 *	contents_css
 *	
 * ************************************************ */
.contents_css{
	line-height:200%;
}
.contents_css p{
	text-align: justify;
	margin-bottom:1.5em;
	line-height:220%;
	letter-spacing:0.02em;
}

/* -------------------base-------------------- */
.page_contents h2,
.page_contents h3,
.category_title{
	padding:1em 0;
	color:var(--primary-color);
	font-weight:var(--semi-bold);
	padding-left:12%;
	margin-bottom:1em;
	letter-spacing:0.05em;
}
.page_contents h2:before,
.page_contents h3:before,
.category_title:before{
	content: "";
	display:block;
	position: absolute;
	top:50%;
	left:0em;
	background:var(--primary-color);
	height:1px;
	width:10%;
}
.page_contents h4,
.page_contents h5,
.page_contents h6{
	padding:0.5em 0em;
	border-bottom:1px solid #ccc;
	margin-bottom:1em;
	font-weight:var(--semi-bold);
}

/* -------------------h2 page_title-------------------- */
.page_title,
h2.title{
	color:currentColor;
	padding-left:0em;
	font-weight:var(--semi-bold);
}
h2.title{
	margin-bottom:1.5em;
}
body.not-home h2.title{
	margin-bottom:1em;
}

h2.title:before{
	display:none;
}
.page_title .eng,
h2.title .eng{
	display:block;
	color: var(--primary-color);
	font-size:310%;
	line-height:100%;
	text-align:left;
	letter-spacing:0em;
	margin-bottom:0.2em;
	margin-left:-0.15em;
	font-weight:var(--bold);
	font-style:italic;
	display:block;
	font-weight:600;

}
h2.title .sub{
	padding-left:3.2em;
}
h2.title .sub:before{
	content: "";
	display:block;
	position: absolute;
	top:50%;
	left:0;
	width:3em;
	height:1px;
	background:var(--primary-color);
}
h2.title .eng_title{
	display:block;
}
@media only screen and ( max-width : 896px ) {
	h2.title  .eng{
		font-size:250%;
	}
	.top_wrap h2.title  h2{
		font-size:100%;
	}
	.top_wrap h2.title  .eng{
		text-align:center;
	}
	.top_wrap h2.title  .eng_title{
		text-align:center;
	}
}
.title_jp{
	font-size:90%;
	line-height:var(--base_line_height);
	display:inline-block;
}
/* -------------------------hr------------------------- */
hr{
	height:0px;
	margin:2em 0em 2em 0em;
	border:0;
	border-bottom:1px solid #ccc;
}
.font90{
	font-size:90%;
	line-height:var(--base_line_height);

}
.font80{
	font-size:80%;
	line-height:var(--base_line_height);
}
.waku_block{
	padding:2em;
	background:#fcfcfc;
}
sub, sup {
	font-size: 50%;
	line-height: 0;
	vertical-align: baseline
}
sup {
  top: -0.8em
}

/* -------------------------table------------------------- */
.contents_css caption{
	font-size:110%;
	padding:1em;
	background:#333;
	color:#fff;
	margin-bottom:0.5em;
}
.contents_css table{
	border-collapse: collapse;
	border-spacing: 0;
	width:100%;
	border-top:1px solid #aaa;
}
.contents_css table th,
.contents_css table td{
	border-bottom:1px solid #aaa;
	padding:1.2em 1.5em;
	line-height:var(--base_line_height_big);
	vertical-align:top;
	font-weight:normal;
	text-align:left;
}
@media only screen and ( max-width : 896px ) {
	.contents_css table{
		font-size:95%;
	}
	.contents_css table th,
	.contents_css table td{
		padding:1em 1em;
	}

}
table.border{
	font-size:90%;
}
table.border th,
table.border td{
	padding:0.5em 1.5em;

}
table.border th{
	background:#f5f5f5;
}
table.border th.center,
table.border td.center{
	text-align:center;
}
/* -------------------youtube-------------------- */
#youtube {
	width: 100%;
	padding-top: 56.25%;
}
#youtube iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}
/* -------------------table scroll-------------------- */
table{
	width:100%;
}
.scroll{
	overflow: auto;
	white-space: nowrap;
}
.scroll table th,
.scroll table td{
	white-space: nowrap;
}
.scroll::-webkit-scrollbar{
	 height: 5px;
}
.scroll::-webkit-scrollbar-track{
	 background: #F1F1F1;
}
.scroll::-webkit-scrollbar-thumb {
	 background: #BCBCBC;
}
/* -------------------------list------------------------- */
.icon_list li{
	margin-bottom:0.7em;
	line-height:var(--base_line_height);
	padding-left:4.5em;
}
.icon_list li:last-child{
	margin-bottom:0em;
}
.icon_list li:before{
	content: "";
	display:block;
	position: absolute;
	top:0.8em;
	left:0em;
	background:var(--primary-color);
	height:1px;
	width:4em;
}
.icon_list2 li{
	line-height:160%;
	padding-left:1.5em;
	margin-bottom:0.2em;
}
.icon_list2 li:before{
	content: "▼";
	display: inline-block;
	position: absolute;
	top: 0em;
	left: 0%;
	color:var(--primary-color);
	transform: scale(0.8) rotate(-90deg);
}
.single_txt ul li{
	margin-bottom:0.7em;
	line-height:var(--base_line_height);
	padding-left:1.5em;
}
.single_txt ul li:last-child{
	margin-bottom:0em;
}
.single_txt ul li:before{
	content: "・";
	display:block;
	position: absolute;
	top:0;
	left:0;
	color:#ccc;
}
.contents_css ol{
	padding-left:1.5em;
}
.single_txt  ol li{
	margin-bottom:0.7em;
}
.single_txt ul,
.single_txt ol{
	margin-bottom:1.5em;
}
.single_txt ul,
.single_txt ol{
	margin-left:1em;
}
/* -------------------------text------------------------- */
h1,h2,h3,h4,h5{
	display:block;
}
small, .small{
	font-size:80%;
	line-height:130%;
}
.big{
	font-size:140%;
	line-height:160% !important;
}
sup{
	font-size:50%;
}
.bold{
	font-weight:var(--bold);
}
.red{
	color: #c90000;
}
.font90{
	font-size:90%;
	line-height:160%;
}
.text_center{
	text-align:center !important;
}
.text_right{
	text-align:right !important;
}
.mb0{
	margin-bottom:0em !important;
}
.mb05{
	margin-bottom:0.5em !important;
}
.pd1{
	padding:1em;
	}
.mb1{
	margin-bottom:1em !important;
	}
.mb2{
	margin-bottom:2em !important;
	}
.mb3{
	margin-bottom:3em !important;
	}
.mb4{
	margin-bottom:4em !important;
	}
.mb5{
	margin-bottom:5em !important;
	}
.pl1{
	padding-left:1em;
	}
.indent1em{
	padding-left:1em;
	text-indent:-1em;
}
.indent1em_list li{
	padding-left:3em;
}
.indent1em_list li .number{
	position: absolute;
	top: 0;
	left: 0;
	width:3em;
	text-align:right;
}
/* -------------------------button------------------------- */
.link_block,
.button,
.mail_button{
	display:block;
	text-decoration: none !important;
	cursor: pointer;
	user-select: none;
}
.button,
.mail_button{
	transition: .35s ease-in-out;
}
.button{
	display:inline-block;
	cursor: pointer;
	line-height:160%;
	z-index:0;
	color:#fff !important;
	text-align:center;
	font-size:100%;
	padding:0.8em 3.5em 0.8em 2.5em ;
	border-radius: 3em;
	text-align:center;
	overflow:hidden;
	background:var(--primary-color);
}
.button:after{
	content: "";
	display:inline-block;
	background:url(images/common/icon.png) 50% 50% no-repeat;
	background-size:cover;
	width:1em;
	height:1em;
	position: absolute;
	top: 50%;
	right: 1em;
	margin-top:-0.5em;
}

/* ************************************************ 
 *	
 *	layout
 *	
 * ************************************************ */
.all_wrap{
	max-width: 2000px;
	margin-left: auto;
	margin-right: auto;
}
#wrap{
	max-width: 2000px;
	margin-left: auto;
	margin-right: auto;
	overflow:hidden;
	transition: opacity .5s ease-out; 

}
/* --------------------2カラムデザイン-------------------- */
@media print, screen and ( min-width : 1100px ) {
	#sidebar{
		float:left;
		width:26%;
	}
	#content{
		float:right;
		width:68%;
	}
}
/* --------------------inner_block-------------------- */
.inner_block{
	margin-inline: auto;
	width: min(90%, 1200px);
}
#header .inner_block{
	width: min(95%, 2000px);
}
@media print, screen and ( min-width : 1100px ) {
	body.not-home #wrap{
		padding-left:5%;
		padding-right:5%;
	}
}
/* --------------------section-------------------- */
/* TOP */
body.home #wrap section:not(.top_news):not(.top_mainimg):not(.founding_sprit){
	padding:100px 0;
}
@media only screen and ( max-width : 1100px ) {
	body.home #wrap section:not(.top_news):not(.top_mainimg):not(.founding_sprit){
		padding:80px 0;
	}
}
/* PAGE */
body.not-home #wrap section:not(#sidebar section):not(.single_post_section),
.arcive_wrap,
.pager{
	padding:80px 0;
}
.single_post_section{
	padding-bottom:80px;
}
body.page #wrap section:first-of-type{
	padding-top: 0;
}
body.page #wrap section:first-of-type.gray_bg{
	padding-top:80px;
}
@media only screen and ( max-width : 1100px ) {
	body.page #wrap section,
	.arcive_wrap,
	.pager{
		padding:60px 0;
	}
	body.page #wrap section:first-of-type.gray_bg{
		padding-top:60px;
	}
}
/* space入れたくないとき */
body.not-home #wrap section.pd0{
	padding:0px 0px !important;
}
body.not-home #wrap section.pdt0{
	padding-top:0px !important;
}
body.not-home #wrap section.pdb0{
	padding-bottom:0px !important;
}
/* --------------------グレー背景-------------------- */
.gray_bg:before{
	content: "";
	display: block;
	position: absolute;
	top: 0%;
	bottom: 0;
	left: 0;
	z-index:-2;
	margin-left: calc(-50vw + 50%);
	width: 100vw;
	background:#fcfcfc;
}
/* --------------------100%コンテンツ-------------------- */
@media print, screen and ( min-width : 2000px ) {
	.width100{
		margin-left: -400px;
		width: 2000px;
	}
}
@media only screen and ( max-width : 2000px ) {
	.width100{
		margin-left: calc(-50vw + 50%);
		width: 100vw;
	}
}
.width100 .caption{
	text-align:right;
}


/* ************************************************************************ 
 *	
 *	header
 *	
 * ************************************************************************ */
#header{
	position: fixed;
	top: 0px;
	left:0%;
	width:100%;
	z-index:10;
	transition: all .5s;
	height: var(--pc_header_height);
}
#header .inner_block {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 100%;
}
#header .logo{
	line-height:100%;
	font-size:100%;
}

/* ------------------------------------------- */
/* = headerスクロールで背景を差し替える
/* ------------------------------------------- */
#header{
	background: linear-gradient(rgba(0,0,0,0.6),rgba(0,0,0,0));
	text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.9);
	transition: background .5s, box-shadow .5s, height .5s;
}
body.not-home #header,
.scrollstart #header{
	background:#fff;
	text-shadow: none;
}
.scrollstart #header{
	box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.1);
}
/* TOP:ロゴ画像の差し替え */
.home .logo img#header-logo-img {
	content: url("images/common/logo2_top_start.svg");
	transition: content 0.3s ease-in-out; 
}
body.scrollstart .logo img#header-logo-img {
	content: url("images/common/logo2.svg");
}
.not-home .logo img#header-logo-img {
	content: url("images/common/logo2.svg");
}

@media print, screen and ( min-width : 1100px ) {
	.sp_only_head{
		display:none;
	}
}
@media only screen and ( max-width : 1100px ) {
	#header{
		height:var(--sp_header_height);
	}
	#header .logo{
		width:180px;
	}
	/* ______ */
	#nav-toggle{
		cursor: pointer;
		cursor: hand;
		width: 45px;
		height: 36px;
		z-index:5;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s, visibility 0.3s;
	}
	#nav-toggle span {
		display: block;
		position: absolute;
		height: 2px;
		width: 100%;
		background: var(--primary-color);
		left: 0;
		transition: .35s ease;
	}
	body.scrollstart #nav-toggle,
	.not-home #nav-toggle {
		opacity: 1;
		visibility: visible;
	}
	#nav-toggle span:nth-child(1) {
		top: 8px;
	}
	#nav-toggle span:nth-child(2) {
		top: 16px;
	}
	#nav-toggle span:nth-child(3) {
		top: 24px;
	}
	.nav_open #nav-toggle span:nth-child(1) {
		top: 16px;
		transform: rotate(315deg);
	}
	.nav_open #nav-toggle span:nth-child(2) {
		width: 0;
		left: 50%;
	}
	.nav_open #nav-toggle span:nth-child(3) {
		top: 16px;
		transform: rotate(-315deg);
	}
}

/* -------------------header navigation-------------------- */
@media print, screen and ( min-width : 1100px ) {
	.main_nav{
		display: flex;
		align-items: center;
		height:100%;
		justify-content: flex-end;
	}
	.main_nav li a{
		line-height:100%;
		font-size:95%;
		padding:0 1em;
		text-align:center;
	}
	body.home .main_nav li a{
		color:#fff;
	}
	body.not-home .main_nav li a,
	body.home.scrollstart .main_nav li a{
		color:#333;
	}

	/* お問い合わせ */
	/* 基本 */
	.nav_contact{
		margin-left:1em;
	}
	.main_nav li.nav_contact a{
		padding:0.8em 2em ;
		border-radius: 2em;
		text-align:center;
	}
	/* TOP */
	body.home li.nav_contact a{
		color:#fff;
		border:1px solid #fff;
	}
	body.home.scrollstart li.nav_contact a{
		color:var(--primary-color);
		border:1px solid var(--primary-color);
	}
	body.not-home .main_nav li.nav_contact a{
		color:var(--primary-color);
		border:1px solid var(--primary-color);
	}
	.main_nav li.nav_contact a:hover{
		opacity: 1;
	}
	.nav_contact a:hover{
		background: var(--primary-color);
		border:1px solid var(--primary-color) !important;
		color:#fff !important;
	}
}
@media only screen and ( max-width : 1100px ){
	#global-nav{
		background-color: rgba(7,98,179,0.95);
		max-width:100%;
	}
	#global-nav{
		transition: all .5s;
		position: fixed;
		top: var(--sp_header_height);
		height: calc(100vh - var(--sp_header_height));
		right: -100%;
		max-width:500px;
		width:100%;
		z-index:4;
		overflow:auto;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.nav_open_side #global-nav{
		position: fixed;
		top: 60px;
		right: -0%;
	}
	.nav_open_side #wrap{
		opacity: 0.2;
	}
	.main_nav{
		width:100%;
		padding-bottom:10vh;
	}
	.main_nav li{
	}
	.main_nav li:first-child:before{
		content: "";
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width:100%;
		height:1px;
		background:#fff;
		opacity: 0.5;
	}
	.main_nav li:after{
		content: "";
		display: block;
		position: absolute;
		bottom: 0;
		left: 0;
		width:100%;
		height:1px;
		background:#fff;
		opacity: 0.5;
	}
	.main_nav li:last-child:after{
		display:none;
	}
	.main_nav li a{
		padding:1.5em;
		color:#fff;
		font-size:110%;
	}
	.nav_contact{
		padding-top:1.5em;
	}
	.nav_contact{
		padding:2em;
	}
	.nav_contact a{
		padding:1em 0 !important;
		border-radius: 3em;
		text-align:center;
		background:#fff;
		color:var(--primary-color) !important;
		font-size:110%;
	}
}
/* ************************************************ 
 *	
 *	page top
 *	
 * ************************************************ */
.page_top a{
	display:block;
}
@media print, screen and ( min-width : 896px ) {
	.page_top{
		position: fixed;
		bottom: -10px;
		right: 10px;
		transition: all .5s ease;
		opacity: 0;
		z-index:2;
		
	}
	.scrollstart .page_top{
		position: fixed;
		bottom: 10px;
		right: 10px;
		opacity: 1;
	}
}
@media only screen and  ( max-width : 896px ) {
	.page_top{
		display:none;
	}
}
/* ************************************************ 
 *	
 *	FOOTER
 *	
 * ************************************************ */
@media print, screen and ( min-width : 1100px ) {
	.flex_layout{
		display: flex;
		justify-content: center;
		align-items: center;
		height:100%;
	}
}


/* -------------------page_contact-------------------- */
.page_contact{
	line-height:var(--base_line_height);
	padding:10em 0em 4em 0em;
	background:url(images/common/contact_bg.jpg) 50% 50% no-repeat;
	background-size:cover;
}
.page_contact:after{
	content: "";
	display:inline-block;
	width:1px;
	height:8em;
	background:#fff;
	position: absolute;
	top: 0;
	left: 50%;
}
.page_contact,
.page_contact a,
.page_contact h2,
.page_contact h2 .eng{
	color:#fff;
}
@media print, screen and ( min-width : 1100px ) {
	.page_contact h2{
		text-align:right;
	}
	.page_contact h2 .eng{
		padding:0;
	}
	.page_contact dt{
		padding-right:8%;
	}
}
@media only screen and ( max-width :1100px ) {
	.page_contact{
		text-align:center;
	}
	.page_contact h2{
		margin-bottom:1em;
		text-align:center;
	}
	.page_contact h2 .eng{
		text-align:center;
	}
}

/* -------------------tel_link-------------------- */
.tel_link{
	display:block;
	font-size:370%;
	margin-bottom:0.4em;
	font-style:italic;
	padding-right:0.5em;
}
.tel_link:before{
	content: "TEL";
	font-size:60%;
	display:inline-block;
	margin-right:0.2em;
	vertical-align: middle;
}
.tel_link:hover{
	opacity: 1;
}
@media print, screen and ( min-width : 600px ) {
	a[href^="tel:"] ,
	.tel_link{
		pointer-events: none
	}
}
@media only screen and ( max-width : 896px ) {
	.tel_link{
		font-size:210%;
	}
	.tel_link:hover{
		color:#fff !important;
	}
}

a[href^="tel"] {
	text-decoration: none;
	color:currentColor;
}
.notel{
	pointer-events: none;
	text-decoration: none !important;
	color:currentColor !important;
}


/* -------------------mail_button-------------------- */
.mail_button{
	padding:1.5em 3em 1.4em 5em;
	background:#fff;
	display:inline-block;
	margin:0.7em;
	color:#ea6d01;
	border-radius: 3em;
	color:var(--primary-color) !important;
	font-size:110%;
	line-height:130%;
	max-width:28em;
}
.mail_button:before{
	content: "";
	display:inline-block;
	background:url(images/common/icon_mail.png) 50% 50% no-repeat;
	background-size:cover;
	width:31px;
	height:31px;
	position: absolute;
	top: 50%;
	left: 2em;
	margin-top:-15px;
}
@media print, screen and ( min-width : 896px ) {
	.mail_button br{
		display:none;
	}
}
@media only screen and  ( max-width : 896px ) {
	.mail_button{
		font-size:90%;
		line-height:130%;
	}
}

/* -------------------footer contents-------------------- */
#footer{
	background:#f2f2f2;
}
.footer_infomation{
	font-size:90%;
	line-height:var(--base_line_height);
	padding:4em 0em;
}
.f_address h2{
	color: var(--primary-color);
	font-size:110%;
	margin-bottom:0.5em;
	font-weight:var(--semi-bold);
}
.f_address > div:first-of-type {
	padding-bottom:1em;
	margin-bottom:1.5em;
	border-bottom:1.5px solid var(--primary-color);
}
.f_address p:last-of-type{
	border:none;
	padding-bottom:0em;
	margin-bottom:0em;
}
@media print, screen and ( min-width : 1100px ) {
	.f_info{
		width:30%;
	}
	.f_info img{
		width:80%;
	}
	.f_address{
		width:30%;
	}
	.f_sitemap{
		width:35%;
		padding-left:5%;
	}
}
@media only screen and  ( max-width : 1100px ) {
	.f_info img{
		width:230px;
	}
	.f_info{
		text-align:center;
	}
	.f_info,
	.f_address{
		margin-bottom:4em;
	}
}

/* -------------------copyright-------------------- */
.foot_copyright{
	font-size:70%;
	padding:1.5em;
	text-align:center;
	color:#4d4d4d;
	background:#fff;
	display:block;
}

/* ************************************************ 
 *	
 *	SIDE
 *	
 * ************************************************ */
/* side */
#sidebar section{
	margin-bottom:3em;
	padding:0;
}
#sidebar section h3{
	font-size:150%;
	padding-bottom:0.8em;
	color: var(--primary-color);
	font-style:italic;
}
.cat-item-none{
	padding:0.8em;
	display:block;
}
.blog_side{
	border:1px solid #ccc;
}
.blog_side li{
	border-bottom:1px solid #ccc;
}
.blog_side li:last-child{
	border:none;
}
.blog_side li a{
	padding:0.8em;
	padding-left:3em;
	position: relative;
	display:block;
	text-decoration:none;
	color:currentColor;
	font-size:90%;
	line-height:var(--base_line_height);
	transition: all .3s;
}
.blog_post li a{
	font-size:80%;
	line-height:var(--base_line_height);
}
.blog_side li a:hover{
	color:var(--primary-color);
	background:#fcfcfc;
}
.blog_side li a:before{
	content: "";
	display:block;
	position: absolute;
	top:1.8em;
	left:0;
	width:2em;
	height:1px;
	background:var(--primary-color);
}


/* ************************************************ 
 *	
 *	BLOG
 *	
 * ************************************************ */
/* -------------------single_box-------------------- */
.single_box .entry_title{
	line-height:180%;
	margin-bottom:1em;
	padding-bottom:1em;
	border-bottom:1px solid #ccc;
	font-weight:var(--semi-bold);
}
.single_box .entry_days{
	color:#6b9cbc;
	font-size:90%;
	margin-bottom:2em;
	z-index:-2;
	position: relative;
	font-weight:normal;
}
.single_txt{
	padding:0em 0em 2.5em 0em;
}
@media only screen and ( max-width :900px ) {
	.single_txt{
		padding:0em 0em 1em 0em;
	}
}
.entry-tax a,
.entry-tax span{
	display:inline-block;
	background:#fcfcfc;
	color:#aaa;
	padding:0.5em 1em;
	font-size:80%;
	text-decoration: none !important;
	transition: all .5s ease;
	margin:0.3em 0.2em;
	opacity: 1;
}
.entry-tax a:hover{
	background:var(--primary-color);
	border:1px solid var(--primary-color);
	opacity: 1;
	color:#fff;
}
.single_txt h1,
.single_txt h2,
.single_txt h3,
.single_txt h4,
.single_txt h5,
.single_txt h6{
	margin-bottom:1em;
	font-weight:var(--semi-bold);
}
/* -------------------ブログ基本-------------------- */
blockquote{
	background:#fcfcfc;
	border:1px solid #fff;
	padding:2em;
	color:#555;
	margin-bottom:1em;
	font-size:90%;
}
blockquote p{
	line-height:160%;
}
.wp-caption{
	background:#f2f2f3;
}
.wp-caption img{
	width:100%;
}
p.wp-caption-text{
	font-size:80%;
	padding:0.5em;
	color:#666;
	margin:0 !important;
}
.alignleft,
img.alignleft {
	display: inline;
	float: left;
	margin-right: 5%;
	max-width:40%;
}
.alignright,
img.alignright {
	display: inline;
	float: right;
	margin-left: 5%;
	max-width:40%;
}

.aligncenter,
img.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
}
.alignleft,
.alignright,
.aligncenter {
	margin-top:0.5em;
	margin-bottom: 1em;
}
.alignnone{
	float:none;
}

/* 記事がないとき */
.no_post{
	text-align:center;
	padding:2em;
	margin-bottom:2em;
	border:1px solid #ccc;
	width:100%;
}
.no_post .button{
	font-size:90%;
}
.single_404{
	padding:0 !important;
}
/* ************************************************ 
 *	
 *	PAGER
 *	
 * ************************************************ */
.pager{
	clear: both;
	text-align:center;
}
.pager span,
.pager a{
	display:inline-block;
	text-decoration: none;
	margin: 5px;
	background:#fcfcfc;
	line-height:50px;
	min-width:50px;
	text-align:center;
	font-weight:var(--semi-bold);
	transition: all 0.5s;
}
.nextpostslink{
	border-radius: 50%;
	border:1px solid var(--primary-color);
	margin-left:2em !important;
}
.pages{
	display:none !important;
}
.pager a:hover,
.pager .current{
	color: #fff;
	background:var(--primary-color);
}

.wp-pagenavi .first,
.wp-pagenavi .last, 
span.extend,
span.pages{display:none;}

/* ************************************************ 
 *	
 *	PAGE TITLE
 *	
 * ************************************************ */
.page_title{
	padding:3em 0 2em 0;
}
.page_title:before{
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0%;
	bottom: 0em;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	z-index:-1;
	background: rgb(255,255,255);
	background: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(252,252,252,1) 100%);
}
@media only screen and  ( max-width : 896px ) {
	.page_title{
		padding:3em 0 1em 0;
	}
}
.page_title_img{
	margin-left: calc(-50vw + 50%);
	width: 100vw;
}
/* ************************************************ 
 *	
 *	パンくず
 *	
 * ************************************************ */
#breadcrumb{
	font-size:80%;
	position: relative;
	z-index:3;
	padding:1.5em 0em;
	font-weight:300;
	color:#555;
}
#breadcrumb .inner_block{
	overflow:hidden;
}
#breadcrumb br{
	display:none;
}
#breadcrumb a{
	color:#555;
	font-weight:300;
}
#breadcrumb a:hover{
	color:#aaa;
}

/* ************************************************ 
 *	
 *	other
 *	
 * ************************************************ */
.fadein {
	transition: all 0.7s;
	opacity: 0;
	position: relative;
	top:2em;
}
.fadein_start{
	top:0em;
	opacity: 1 !important;
}

/* ************************************************ 
 *	
 *	gallery
 *	
 * ************************************************ */
.gallery{
	margin:3em 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr); 
	gap: 40px;
}
.product_section#p4 .gallery:not(.product_main .gallery),
.product_section#p5 .gallery:not(.product_main .gallery){
	grid-template-columns: repeat(4, 1fr); 
}
.product_main .gallery{
	margin:0;
}
.caption,
.gallery .gallery-item dd,
.gallery h3,
.gallery h4{
	padding-top:0.8em;
	font-size:80%;
	line-height:var(--base_line_height);
	display:block;
	letter-spacing:0.01em;
	text-align:left;
	font-weight:normal;
}
.product_main h3:before{
	display:none;
}
.product_main h4{
	font-style:normal;
	border:0;
	margin:0;
}

@media ( max-width :896px ) and ( min-width :500px ) {
	.gallery,
	.product_section#p4 .gallery:not(.product_main .gallery),
	.product_section#p5 .gallery:not(.product_main .gallery){
		grid-template-columns: repeat(2, 1fr); 
	}
}
@media only screen and ( max-width :500px ) {
	.gallery{
		grid-template-columns: 1fr;
	}
	.product_main .gallery{
		grid-template-columns: repeat(2, 1fr); 
		gap: 20px;
	}
}
@media print, screen and ( min-width : 500px ) {
	.is-wide{
		grid-column: span 2; 
	}
	.product_section#p6 .gallery:not(.product_main .gallery){
		max-width:33%;
		grid-template-columns: 1fr;
		margin-left:auto;
		margin-right:auto;

	}
}
/* --------------------画像の読み込み-------------------- */
.media-box,
.gallery li a {
	position: relative;
	display:block;
}
.media-box img,
.gallery li a img{
	width:100%;
}
.media-box.is-loading::after,
.gallery li.is-loading a::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%; 
	z-index: 1; 
	background: #f3f3f3; 
	background-image: linear-gradient(to right, #f3f3f3 0%, #eeeeee 20%, #f3f3f3 40%, #f3f3f3 100%);
	background-size: 1000px 100%;
	animation: loading-pulse 1.5s infinite linear;
}
@keyframes loading-pulse {
	0% {
		background-position: -1000px 0;
	}
	100% {
		background-position: 1000px 0;
	}
}
