@charset "utf-8";

.content_area{
	max-width:1060px;
	width:100%;
	margin:auto;
	padding:0 30px;
}
.content_area > *:first-child{margin-top:0;}

.page_top{
	height:270px;
	margin-bottom:80px;
	display:flex;
	align-items:center;
	justify-content:start;
	position:relative;
	z-index:-20;
	background:#E7F2FE;
}
.error .page_top,.sitemap .page_top{height:180px;}
.company .page_top{background:url(/img/company/h1.jpg) no-repeat center / cover;}
.archive .page_top{background:url(/img/blog/h1.jpg) no-repeat center / cover;}
.maker .page_top{background:url(/img/maker/h1.jpg) no-repeat center / cover;}
.contact .page_top{background:url(/img/contact/h1.jpg) no-repeat center / cover;}
.page_top::before,.page_top::after{
	position:absolute;
	display:inline-block;
	content:'';
	height:269px;
	bottom:0;
	top:0;
	margin:auto;
	z-index:-10;
}
.page_top::before{
	background:url(/img/common/pic_h1_l.png)no-repeat center / cover;
	left:0;
	width:414px;
}
.page_top::after{
	background:url(/img/common/pic_h1_r.png)no-repeat center / cover;
	right:0;
	width:200px;
}
.single .page_top::before,.single .page_top::after,
.error .page_top::before,.error .page_top::after,
.sitemap .page_top::before,.sitemap .page_top::after{display:none;}
.page_title{
	font-size:3.4rem;
	letter-spacing:2.72px;
	line-height:4.9rem;
	font-weight:bold;
	max-width:1260px;
	width:100%;
	margin:0 auto;
	padding:0 30px;
}
.page_title::before{
	display:block;
	content:attr(data-en);
	color:#1766B6;
	font-size:1.4rem;
	letter-spacing:1.12px;
	line-height:1.9rem;
	font-weight:normal;
	text-transform:uppercase;
	font-family:var(--font_roboto);
}
h2{
	position:relative;
	font-size:2.8rem;
	letter-spacing:2.24px;
	line-height:4rem;
	font-weight:bold;
	padding-bottom:12px;
	margin:80px 0 16px;
}
h2::after{
	position:absolute;
	display:block;
	content:'';
	width:100%;
	height:2px;
	background-color:#1766B6;
	bottom:0;
	left:0;
}
h3{
	position:relative;
	font-size:2.4rem;
	left:1.92px;
	line-height:3.5rem;
	font-weight:bold;
	padding-bottom:12px;
	margin:40px 0 16px;
}
h3::after{
	position:absolute;
	display:block;
	content:'';
	width:100%;
	height:2px;
	background-color:#DDDDDD;
	bottom:0;
	left:0;
}
h4{
	position:relative;
	margin:40px 0 12px;
	font-size:2.2rem;
	letter-spacing:1.76px;
	line-height:3.2rem;
	font-weight:bold;
}

p{
	font-size:1.6rem;
	letter-spacing:1.6px;
	line-height:3.2rem;
	margin-bottom:20px;
}
ul, ol{
	padding-left:20px;
	margin-bottom:20px;
}
ul li{list-style:disc;}
ul li li{list-style:circle;}
ul li li li{list-style:square;}
ol li{list-style:decimal;}
li{margin-bottom:5px;}
table{
	width:100%;
	margin:20px 0 0;
	border-top:1px solid #ccc;
}
th, td{
	padding:18px 20px;
	border-bottom:1px solid #ccc;
	vertical-align:top;
}
th{
	width:20%;
	background:#F6F8F9;
	text-align:left;
}
td *:last-child{margin-bottom:0;}

.alignleft{margin-right:auto;}
.aligncenter{margin:auto;}
.alignright{margin-left:auto;}

#pankuzu{
	padding:0 0 20px;
	margin-top:120px;
}
#pankuzu ol{
	display:flex;
	flex-wrap: wrap;
	padding:0;
	margin:0;
}
#pankuzu li{
	list-style:none;
	margin:0 10px 5px 0;
	font-size:1.2rem;
	position:relative;
}
#pankuzu li::after{
	content:'';
	position:absolute;
	bottom:6px;
	right:-1px;
	width:5px;
	height:5px;
	border:1px solid;
	border-color:#565656 #565656 transparent transparent;
	transform:rotate(45deg);
}
#pankuzu li:last-child::after{display:none;}
#pankuzu a{
	margin-right:10px;
	color:#333;
}
#pankuzu li:last-child a{
	text-decoration:none;
	pointer-events:none;
}
#pankuzu a:hover{text-decoration:none;}

.column_2, .column_3, .column_4, .gallery{
	display:grid;
	grid-gap:20px;
	margin-bottom:20px;
}
.column_2 div, .gallery-columns-2{grid-template-columns:repeat(auto-fit, calc((100% - 20px) / 2));}
.column_3 div, .gallery-columns-3{grid-template-columns:repeat(auto-fit, calc((100% - 40px) / 3));}
.column_4 div{grid-template-columns:repeat(auto-fit, calc((100% - 60px) / 4));}
.gallery-caption{
	margin:8px 0;
	font-size:1.3rem;
	letter-spacing:0.7px;
	line-height:1.9rem;
}

.link_btn a{
	display:block;
	max-width:250px;
	padding:23px 0 26px;
	margin:auto;
	background:#000;
	color:#fff !important;
	font-size:1.4rem;
	letter-spacing:2.5px;
	text-align:center;
	text-decoration:none;
	transition:background 0.3s;
}
.link_btn a:hover{background:#666;}

.map, .movie_wrap{
	position:relative;
	width:auto;
	height:0;
	padding-bottom:56.25%;
	margin:0 auto;
	overflow:hidden;
}
.map iframe, .map object, .map embed, .movie_wrap iframe, .movie_wrap object, .movie_wrap embed{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	border:none;
}

/*----- company -----*/
.signature{text-align:right;}

/*----- contact -----*/
#content_wrap.contact .contact_add{
	font-size:3rem;
	letter-spacing:1.5px;
	line-height:5rem;
	font-weight:bold;
	text-decoration:none;
	color:#1766B6;
}
#content_wrap.contact .contact_add:first-of-type{margin-bottom:0;}
.tel_time{font-weight:bold;margin-bottom:0;}
#content_wrap.contact p a{text-decoration:none;color:#1766B6 !important;transition: underline 0.3s;}

#content_wrap.contact .contact_add:last-of-type a:hover{text-decoration:underline;}

/*----- sitemap -----*/
.sitemap a{color:#333 !important;}
.sitemap h2 a{text-decoration: none;transition: 0.3s;}
.sitemap h2 a:hover{color:#1766B6 !important;}
.sitemap > ul > li{margin-bottom:10px;}
.sitemap ul li ul{
	margin-bottom:0;
	font-size:1.5rem;
}
/*----- 404 -----*/
.error .page_title{max-width:1060px;}
@media screen and (max-width:1023px){
.page_top{height:137px;margin-bottom:60px;}
.page_top::before,.page_top::after{height:137px;}
.page_top::before{width:209px;}
.page_top::after{width:102px;}
.page_title{
	font-size:2.8rem;
	letter-spacing:2.24px;
	line-height:4rem;
}
.page_title::before{
	font-size:1.1rem;
	letter-spacing:0.88px;
	line-height:1.5rem;
}

h4{font-size:1.5rem;}

h2{
	font-size:2.4rem;
	letter-spacing:1.92px;
	line-height:3.5rem;
	margin:55px 0 17px;
}
h3{
	font-size:2.1rem;
	left:1.68px;
	line-height:3rem;
}
h4{
	position:relative;
	font-size:1.9rem;
	letter-spacing:1.52px;
	line-height:2.7rem;
	margin:30px 0 12px;
}

p{
	font-size:1.4rem;
	letter-spacing:1.4px;
	line-height:2.52rem;
}

ul, ol{font-size:1.4rem;}

th, td{
	padding:16px 15px;
	font-size:1.4rem;
}
th{width:25%;}

.link_btn a{
	max-width:220px;
	padding:18px 0 20px;
	font-size:1.2rem;
}

#pankuzu{margin-top: 80px;}

/* contact */
#content_wrap.contact .contact_add {font-size: 2.6rem;}

}
@media screen and (max-width:950px){
.scroll_table.tab table{min-width:1000px;}
}

@media screen and (max-width:767px){
#index_wrap, #content_wrap{padding-top: 50px;}
.content_area{padding:0 20px;}

.page_top{height:110px;margin-bottom:40px;}
.page_top::before,.page_top::after{height:110px;}
.page_top::before{width:167px;}
.page_top::after{width:82px;}
.page_title{
	font-size:2.5rem;
	letter-spacing:1.84px;
	line-height:3.4rem;
	padding:0 20px;
}


h2{font-size:2.2rem;letter-spacing: 1.76px;line-height: 3.52rem;}
h3{font-size:1.9rem;letter-spacing: 1.52px;line-height: 3.04rem;margin-top: 33px;}
h4{font-size:1.7rem;letter-spacing: 1.36px;line-height: 2.72rem;}

img{margin:auto;}
p,
ul, ol{
	margin-bottom:15px;
	font-size:1.3rem;
}
ul li:not(:last-child),
ol li:not(:last-child){
	margin-bottom:10px;
}
* + dl{margin-top:10px;}
dl{margin-bottom:15px;}
dl dd:not(:last-child){margin-bottom:10px;}

th, td{font-size:1.3rem;}

.col_table{table-layout:auto;}

.column_4{grid-template-columns:repeat(auto-fit, 48.181%);}

.link_btn a{
	max-width:180px;
	padding:13px 0 15px;
}

.tel{pointer-events:auto;}
.scroll_table.sp table{min-width:800px;}

/* contact */
#content_wrap.contact .contact_add{font-size: 2rem;line-height: 3rem;}
#content_wrap.contact p:hover a{text-decoration: underline;}
}


@media screen and (max-width:599px){

.column_2, .column_3, .column_4{grid-template-columns:repeat(auto-fit, 100%);}

}