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

nav {
	float: right;
	width: auto;
	margin: 0 auto;
	padding: 0;
}
nav ul.menu {
	width: 100%;
	margin: 0;
	padding: 0;
}
nav ul.menu li {
	position: relative;
	display: table-cell;
	width: auto;
	float: left;
	list-style: none;
	z-index: 9999;
	margin: 0;
	padding: 0;
	font-weight: bold;
}
nav ul.menu:before, nav ul.menu:after {
	content: "";
	display: table;
}
nav ul.menu:after {
	clear: both;
}
nav ul.menu li a, nav ul.menu li span {
	position: relative;
	width: 100%;
	font-size: 14px;
	line-height: 1.6em;
	color: #333;
	display: table;
	text-align: center;
	text-decoration: none;
	margin: 0 auto;
	padding: 21px 50px 21.4px;
	box-sizing: border-box;
	transition: 0.2s;
	cursor: pointer;
}
nav ul.menu li a::after, nav ul.menu li span::after {
	position: absolute;
	opacity: 1;
	bottom: 0;
	left: 0;
	content: "";
	display: block;
	width: 0;
	transition: width 0.3s;
	/* border or (height & background) etc. */
	border-bottom: 3px solid #d51b16;/* margin: 0 auto; */ /* left to right -> middle out */	
}

nav ul.menu li:hover a::after, nav ul.menu li a:hover::after, nav ul.menu li a.current::after, nav ul.menu li:hover span::after, nav ul.menu li span:hover::after, nav ul.menu li span.current::after {width: 100%;}

nav ul.menu li a.active::after,
nav ul.menu li span.active::after{width:100%;}

nav ul.menu li a.active{background:#fcc;}

ul.menu li ul.mega_list {
	display: none;
	width: 100%;
	margin: 0 auto;
	background: rgba(255,255,255,0.8);
	padding: 0;
	position: absolute;
	left: 0;
	z-index: 9999;
}
ul.menu li ul.mega_list li {
	float: none;
	display: block;
	width: 100%;
	margin: 0 auto;
	padding: 0;
	border: none;
	overflow: hidden;
}
ul.menu li ul.mega_list li a {
	font-size: 14px;
	padding: 12px 32px;
}
ul.menu li ul.mega_list li a::after {
	display: none;
}
ul.menu li ul.mega_list li a:hover {
	color: #fff;
	background: #d51b16;
}

@media screen and (max-width:1280px) {
nav {
	float: none;
	width: auto;
	min-width: 100%;
}
nav ul.menu {
	display: table;
}
nav ul.menu li {
	position: relative;
	display: table-cell;
	width: 33.333%;
	float: left;
	list-style: none;
	z-index: 9999;
	margin: 0;
	padding: 0;
}
nav ul.menu li a {
	padding: 21px 20px 20px;
}
ul.menu li ul.mega_list li a {
	padding: 12px 20px;
}
}

@media screen and (max-width:1024px) {
/* hide the link until viewport size is reached */
a.meanmenu-reveal {display: none;}
nav {width: 100%;}
nav ul.menu li {border: none;}
nav ul.menu li a {background: none;}
	
.mean-container .mean-bar {
	width: 100%;
	height: 100%;
	margin: 0 auto;
	padding: 0;
	z-index: 9999;
}
.mean-container a.meanmenu-reveal {
	width: 56px;
	height: 56px;
	padding: 0;
	position: absolute;
	top: 0;
	right: 0;
	cursor: pointer;
	color: #ccc;
	text-decoration: none;
	text-indent: -9999em;
	background: url(../img/sp_menu.png) center/48px no-repeat, #d51b16;
	font-size: 1px;
	display: block;
	font-family: Arial, Helvetica, sans-serif;
	font-weight: 300;
	z-index: 9999;
}
.mean-container a.meanmenu-reveal.meanclose {background: url(../img/sp_menu_close.png) center/48px no-repeat, #d51b16;}
.mean-container .mean-nav {
	position: absolute;
	float: none;
	top: 0;
	margin: 0 auto;
	padding: 0;
}
.mean-container .mean-nav ul {
	position: fixed;
	top: 56px;
	right: 0;
	bottom: 0;
	left: 0;
	padding:0;
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;	
	background: #fff;		
	margin: 0 auto;
	z-index: 8888;
	list-style-type: none;
	-ms-overflow-style:none;	
	box-sizing: border-box;
}
.mean-container .mean-nav ul::-webkit-scrollbar{display:none;}	
	
nav ul.menu {display: block;}
.mean-container .mean-nav ul li {
	position: relative;
	float: left;
	width: 100%;
	margin: 0 auto;
	padding: 0;
	background: #d51b16;
}
	
.mean-container .mean-nav ul li a,
nav ul.menu li span {
	position: relative;
	display: block;
	float: none;
	height: auto;
	width: 100%;
	padding: 0 5% 0 3%;
	margin: 0;
	font-size: 14px;
	line-height: 52px;
	text-align: left;
	color: #fff;
	border: none;
	border-bottom: 1px solid #fff;
	text-decoration: none;
	font-weight: 400;
	text-transform: uppercase;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	z-index: 9999;
}
.mean-container .mean-nav ul li span {
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}
.mean-container .mean-nav ul li a::before {
	content: '';
	width: 8px;
	height: 8px;
	border: 0px;
	border-top: solid 2px #fff;
	border-right: solid 2px #fff;
	-ms-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	position: absolute;
	top: 50%;
	margin-top: -4px;
	right: 20px;
	z-index: 9999;
}
.mean-container .mean-nav ul li ul,
.mean-container .mean-nav ul li ul li {
	position: relative;
	top: 0;
	width: 100%;
	margin: 0 auto;
	padding: 0;
	background: #efefef;
}
.mean-container .mean-nav ul li ul{overflow:hidden;}
.mean-container .mean-nav ul li ul li a:hover {
	color: #444;
	background: #efefef;
	opacity:1.0;
}
		
nav ul.menu li ul.mega_list li a {
	position: relative;
	display: block;
	font-size: 14px;
	line-height: 46px;
	width: 100%;
	padding: 0 5% 0 40px;
	margin: 0 auto;
	color: #444;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	text-transform:none;
}
nav ul.menu li ul.mega_list li a:before {
	content: '';
	width: 6px;
	height: 6px;
	border: 0px;
	border-top: solid 2px #444;
	border-right: solid 2px #444;
	-ms-transform: rotate(180deg);
	-webkit-transform: rotate(180deg);
	transform: rotate(180deg);
	position: absolute;
	top: 50%;
	margin-top: -4px;
	left: 25px;
}
nav ul.menu li ul.mega_list li::after {
	content: '';
	width: 8px;
	height: 8px;
	border: 0px;
	border-top: solid 2px #444;
	border-right: solid 2px #444;
	-ms-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	position: absolute;
	top: 50%;
	margin-top: -4px;
	right: 20px;
	z-index: 9999;
}
nav ul.menu li a::after {display: none;}
.mean-container .mean-push {
	width: 100%;
	padding: 0;
	margin: 0;
	clear: both;
}
.mean-nav .wrapper {
	width: 100%;
	height: 100%;
	padding: 0;
	margin: 0;
}
.mean-container .mean-bar, .mean-container .mean-bar * {
	z-index: 1;
	-webkit-box-sizing: content-box;
	-moz-box-sizing: content-box;
	box-sizing: content-box;
}
nav {
	float: none;
	width: auto;
	min-width: 100%;
	overflow: visible;
}
nav ul.menu li:first-child {border-left: none;}
.mean-remove {
	display: none;
	margin: 0;
	padding: 0;
}
.mean-container .mean-nav .bk_m {
	float: left;
	display: block;
	width: 100%;
	background: #d51b16;
}
nav ul.menu a.sp_btn {
	float: left;
	display: block;
	font-size: 16px;
	font-weight: 600;
	color: #d51b16;
	text-decoration: none;
	padding: 4px 0 4px 75px;
	width: 96%;
	margin: 15px 2%;
	background: url(../img/sp_icon.png) left 36px center no-repeat, #fff;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	border: 3px solid #d51b16;
	transition: 0.2s;
}
nav ul.menu a.sp_btn:hover {
	color: #fff;
	border-color: #fff;
	background: url(../img/sp_icon_on.png) left 36px center no-repeat, #d51b16;
}
.mean-container .mean-nav ul li a.mean-expand {
	margin: 1px 0 0;
	width: 100%;
	height: 52px;
	line-height: 52px;
	padding: 0 15px 0 0;
	text-align: right;
	position: absolute;
	right: 0;
	top: 0;
	font-size: 18px;
	font-weight: bold;
	border-bottom: none;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	z-index:9999;
}
	
.mean-container .mean-nav ul li a.mean-expand:before,
.mean-container .mean-nav ul li a.mean-expand:after,
nav ul.menu li a::after,nav ul.menu li span::after,
nav ul.menu li:hover a::after,nav ul.menu li a:hover::after,
	
nav ul.menu li a.current::after,nav ul.menu li a.current:hover::after,
nav ul.menu li:hover span::after,nav ul.menu li span:hover::after,
nav ul.menu li span.current::after,nav ul.menu li a.active::after,
nav ul.menu li span.active::after,	nav ul.menu li:hover a.active::after,
nav ul.menu li:hover span.active::after{display:none;}	
		
}

/*----------------------------------------------------
	メガメニューここまで
----------------------------------------------------*/


@media screen and (max-width:640px) {
ul.menu li ul.mega_list li .mega_wap dd a {
	padding: 16px 16px 16px 42px;
	background: url(../img/footer_icon.png) left 24px center no-repeat;
}
}
/* 追記 */
/* .nav_b02 .active::after{
	border-bottom:none!important;
} */

nav ul.menu li.nav_b03 a.active {
	background: none;
}

@media screen and (max-width: 1025px){   
	.br-sp { display:none; }
  }
@media screen and (min-width:640px) {
_:-ms-fullscreen, :root span.anchorlink{
	position: relative;
	top:-60px;
	display: block;
	}
}
@media screen and (max-width:640px) {
 span.anchorlink{
	top:0px;
	}
}

/* 追記ここまで */