@charset "utf-8";

/*		Contents
---------------------------------------------------------------------------

	container
	header
	menu（PC）
	menu（SP）
	footer

------------------------------------------------------------------------ */

/* ========================================================================
	container
======================================================================== */
#container{
	overflow:hidden;
}


/* ========================================================================
	header
======================================================================== */
header{
	position:relative;
	font-family:'Noto Sans JP', sans-serif;
	font-size:1.6rem;	
	letter-spacing:0.06em;
	z-index:50;
}

header .inner{
	width:1200px;
}

header h1,
header .logo{
	padding:10px 0 7px 0;
}

header h1 img,
header .logo img{
	width:auto;
	height:60px;
}

@media screen and (max-width:767px){
header{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	box-shadow:none;
	z-index:10000;
}

header .inner{
	width:auto;
}

header h1,
header .logo{
	position:relative;
	padding:8px 0 9px 15px;
	background:#ffffff;
	border-bottom:1px solid #d7d7d7;
	z-index:10001;
}

header h1 img,
header .logo img{
	height:31px;
}
}


@media print, screen and (min-width:768px){
/* ========================================================================
	menu（PC）
======================================================================== */
#menu .btn,
#menu .gnavi span,
#menu .navi .tel,
#menu .navi p{
	display:none;
}

#menu .menu{
	display:block !important;
}

#menu a{
	text-decoration:none;
  color: #333;
}


/* ----------------------------------------
	search
---------------------------------------- */
#menu .search_open{
	position:absolute;
	bottom:5px;
	right:0;
	padding:10px;
	cursor:pointer;
}

#menu .search_close{
	position:absolute;
	top:20px;
	right:78px;
	width:80px;
	background:#ffffff;
	border:2px solid #e8e8e8;
	text-align:center;
	font-size:1.4rem;
	color:#959595;
	line-height:2.6rem;
	letter-spacing:normal;
	cursor:pointer;
}

#menu .search_close span{
	padding:0 20px 0 0;
	background:url(../../img/common/icon_search_close.png) no-repeat right center;
}


/* search_block
---------------------------------------- */
#menu .search_block{
	display:none;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:130px;	
	background:#f6f6f6;
	z-index:10;
}

#menu .search_block form{
	position:relative;
	width:800px;
	margin:37px auto 0;
}

#menu .search_block input{
	width:100%;
	height:56px;
	padding:0 52px 0 20px;
	background:#ffffff;
	border:2px solid #cccccc;
	border-radius:5px;
	box-shadow:7px 7px 6px 0 rgba(0,0,0,0.1);
}

#menu .search_block button{
	position:absolute;
	top:2px;
	right:2px;
	width:52px;
	height:52px;
	background:none;
	border:none;
	cursor:pointer;
}


/* ----------------------------------------
	gnavi
---------------------------------------- */
#menu .gnavi{
	overflow:visible;
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	margin:0 66px 0 0;
}

#menu .gnavi > li > a{
	display:block;
	border-bottom:3px solid #ffffff;
	font-size:1.8rem;
	font-weight:700;
	line-height:50px;
  color: #333;
	transition-duration:0.2s;
}

#menu .gnavi > li > a:hover{
	border-color:#0046b3;
}


/* child
---------------------------------------- */
#menu .gnavi .child{
	overflow:visible;
	display:none;
	position:absolute;
	top:53px;
	left:0;
	width:100%;
	height:220px;
	z-index:1;
}

#menu .gnavi .child::before,
#menu .gnavi .child::after{
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:300%;
	height:100%;
	margin:0 0 0 -100%;
	background:#ffffff;
}
#menu .gnavi .child::after{
	height:7px;
	background:url(../../img/common/bg_gnavi.png) repeat-x;
}

#menu .gnavi .child h2{
	display:flex;
	align-items:center;
	position:absolute;
	top:0;
	left:0;
	width:360px;
	height:100%;
	padding:0 0 0 30px;
	background:#0046b3;
	font-size:2.0rem;
	font-weight:700;
	color:#ffffff;
}

#menu .gnavi .child .close{
	position:absolute;
	top:20px;
	right:-66px;
	font-size:1.4rem;
	line-height:1;
	letter-spacing:normal;
	cursor:pointer;
	transition-duration:0.2s;
}

#menu .gnavi .child .close:hover{
	opacity:0.8;
}

#menu .gnavi .child .close img{
	margin:0 8px 0 0;
}

#menu .gnavi .child ul{
	display:flex;
	flex-wrap:wrap;
	padding:20px 0 20px 40px;
	margin:0 0 0 360px;
}
#menu .gnavi li:nth-child(1) .child ul{ padding-bottom:116px; }
#menu .gnavi li:nth-child(4) .child ul{ padding-bottom:74px; }

#menu .gnavi .child ul li{
	width:30%;
	padding:12px 0;
	font-size:1.8rem;
	font-weight:500;
	line-height:1;
	white-space:nowrap;
}
#menu .gnavi li:nth-child(4) .child ul li{ width:33.33%; }
#menu .gnavi li:nth-child(6) .child ul li{ width:45%; }
#menu .gnavi li:nth-child(6) .child ul li:nth-child(even){ width:55%; }
#menu .gnavi li:nth-child(1) .child ul li:last-child,
#menu .gnavi li:nth-child(4) .child ul li:last-child,
#menu .gnavi li:nth-child(6) .child ul li:last-child{ width:auto; }

#menu .gnavi .child ul li::before{
	content:"-";
	padding:0 8px 0 0;
	color:#0046b3;
}

#menu .gnavi .child ul li a:hover{
	text-decoration:underline;
}


/* ---------- highlight ---------- */
#menu .gnavi .child .highlight{
	position:absolute;
	bottom:20px;
	left:40px;
	padding:4px 4px 4px 20px;
	background:#e2e2e2;
	font-size:1.6rem;
	line-height:34px;
}
#menu .gnavi .child .highlight::before{ content:none; }

#menu .gnavi .child .highlight a{
	display:inline-block;
	position:relative;
	margin:0 0 0 20px;
	padding:0 57px 0 10px;
	background:#3973ce;
	border-radius:2px;
	color:#ffffff;
}
#menu .gnavi .child .highlight a:hover{ text-decoration:none; }

#menu .gnavi .child .highlight a::before,
#menu .gnavi .child .highlight a::after{
	content:"";
	position:absolute;
	top:5px;
	right:46px;
	width:1px;
	height:24px;
	background:#6a95d8;
}
#menu .gnavi .child .highlight a::after{
	top:0;
	right:14px;
	width:18px;
	height:100%;
	background:url(../../img/common/icon_download.png) no-repeat center;
	background-size:18px 16px;
}


/* ----------------------------------------
	navi
---------------------------------------- */
#menu .navi{
	position:absolute;
	top:14px;
	right:0;
}

#menu .navi ul{
	display:flex;
	flex-wrap:wrap;
}

#menu .navi ul li a{
	display:block;
	min-width:200px;
	margin:0 0 0 10px;
	padding:0 30px;
	background:#efba00;
	border-radius:28px;
	text-align:center;
	font-size:1.6rem;
	font-weight:700;
	color:#ffffff;
	line-height:56px;
}
#menu .navi .contact a{ background:#3973ce; }
#menu .navi .ec a{ background:#231815; }
#menu .navi .agency_lp a{ background:#07ab16; }

#menu .navi ul li img{
	width:auto;
	height:22px;
	margin:0 12px 0 0;
	vertical-align:text-bottom;
}
}

@media screen and (max-width:767px){
/* ========================================================================
	menu（SP）
======================================================================== */
#menu .btn{
	position:absolute;
	top:0;
	right:0;
	cursor:pointer;
	z-index:10001;
}

#menu .menu{
	display:none;
	overflow-y:scroll;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100%;
	padding:49px 0 0 0;
	z-index:10000;
}

#menu a{
	text-decoration:none;
}


/* ----------------------------------------
	search
---------------------------------------- */
#menu .search_open,
#menu .search_close{
	display:none;
}


/* search_block
---------------------------------------- */
#menu .search_block{
	display:block !important;
	padding:15px;
	background:#f6f6f6;
}

#menu .search_block form{
	position:relative;
}

#menu .search_block input{
	width:100%;
	height:44px;
	padding:0 40px 0 10px;
	background:#ffffff;
	border:2px solid #cccccc;
	border-radius:5px;
	font-size:1.4rem;
}

#menu .search_block button{
	position:absolute;
	top:2px;
	right:2px;
	width:40px;
	height:40px;
	background:none;
	border:none;
	cursor:pointer;
}

#menu .search_block button img{
	width:20px;
}


/* ----------------------------------------
	gnavi
---------------------------------------- */
#menu .gnavi{
	overflow:hidden;
	padding:15px 0;
	background:#ffffff;
}

#menu .gnavi li{
	position:relative;
}

#menu .gnavi a{
	display:block;
	padding:0 15px;
	font-size:1.4rem;
	font-weight:700;
	line-height:44px;
}

#menu .gnavi span{
	position:absolute;
	top:0;
	right:0;
	width:58px;
	height:44px;
	background:url(../../img/common/btn_open_sp.png) no-repeat center #ffffff;
	background-size:12px 8px;
	cursor:pointer;
}
#menu .gnavi span.close{ background-image:url(../../img/common/btn_close_sp.png); }
#menu .gnavi span img{ display:none; }


/* child
---------------------------------------- */
#menu .gnavi .child{
	display:none;
	padding:15px 0;
	background:#f5f6f8;
}
#menu .gnavi li:last-child .child{ margin:0 0 -15px 0; }

#menu .gnavi .child h2,
#menu .gnavi .child .close{
	display:none;
}

#menu .gnavi .child a{
	position:relative;
	padding-left:29px;
	font-size:1.2rem;
	line-height:42px;
}

#menu .gnavi .child ul li a::before{
	content:"";
	position:absolute;
	top:20px;
	left:15px;
	width:4px;
	height:2px;
	background:#0046b3;
}


/* ---------- highlight ---------- */
#menu .gnavi .child .highlight{
	display:inline-block;
	height:38px;
	margin:15px;
	padding:4px 4px 4px 10px;
	background:#e2e2e2;
	font-size:1.2rem;
	line-height:30px;
}
#menu .gnavi .child .highlight::before{ content:none; }

#menu .gnavi .child .highlight a{
	display:inline-block;
	position:relative;
	margin:0 0 0 10px;
	padding:0 47px 0 10px;
	background:#3973ce;
	border-radius:2px;
	color:#ffffff;
	line-height:30px;
}

#menu .gnavi .child .highlight a::before,
#menu .gnavi .child .highlight a::after{
	content:"";
	position:absolute;
	top:5px;
	left:auto;
	right:34px;
	width:1px;
	height:20px;
	background:#6a95d8;
}
#menu .gnavi .child .highlight a::after{
	top:0;
	right:10px;
	width:14px;
	height:100%;
	background:url(../../img/common/icon_download.png) no-repeat center;
	background-size:14px auto;
}


/* ----------------------------------------
	navi
---------------------------------------- */
#menu .navi{
	padding:20px 0;
	background:#e7f2fb;
}

#menu .navi p{
	text-align:center;
	font-size:1.4rem;
	line-height:24px;
}

#menu .navi ul{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	padding:0 10px;
}

#menu .navi ul li{
	width:50%;
	padding:0 5px 10px;
}

#menu .navi ul li a{
	display:block;
	background:#efba00;
	border-radius:17px;
	text-align:center;
	font-size:1.2rem;
	font-weight:700;
	color:#ffffff;
	line-height:34px;
}
#menu .navi .contact a{ background:#3973ce; }
#menu .navi .ec a{ background:#231815; }
#menu .navi .agency_lp a{ background:#07ab16; }
#menu .navi .tel a{ background:#c60709; }

#menu .navi ul li img{
	width:auto;
	height:16px;
	margin:0 6px 0 0;
	vertical-align:text-bottom;
}
}

@media screen and (max-width:374px){
#menu .navi p{
	font-size:1.2rem;
	line-height:22px;
}

#menu .navi ul li a{
	font-size:1.0rem;
}

#menu .navi ul li img{
	display:none;
}
}


/* ========================================================================
	footer
======================================================================== */
footer {
  background: #000000;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.6rem;	
  color: #ffffff;
  letter-spacing: 0.06em;
}

footer .inner {
  width: 1100px;
  min-height: 366px;
}

footer .logo {
  padding: 64px 0 14px 0;
}

footer address {
  padding: 0 0 0 6px;
  font-size: 1.4rem;
  line-height: 22px;
}

footer small {
  display: block;
  padding: 0 0 38px 0;
  text-align: center;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1;
}

@media screen and (max-width: 767px) {
  footer {
    padding: 0 0;
    text-align: center;
  }

  footer .inner {
  	width: auto;
    min-height: auto;
  }

  footer .logo {
    padding: 30px 0 10px 0;
  }

  footer small {
    padding: 20px 0 10px 0;
    line-height: 22px;
  }
}

/* ----------------------------------------
	menu
---------------------------------------- */
footer .menu {
  display: flex;
  flex-wrap: wrap;
  position: absolute;
  top: 58px;
  right: 0;
  line-height: 44px;
}

footer .menu ul {
  padding: 0 0 0 68px;
}

footer .menu a {
  font-weight: 700;
  color: #ffffff;
}

@media screen and (max-width: 767px) {
  footer .menu {
    display: block;
    padding: 20px 0 0 0;
    position: static;
    line-height: 32px;
  }

  footer .menu ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 0;
  }

  footer .menu ul li {
    padding: 0 10px;
  }

  footer .menu a {
    font-size: 1.2rem;
  }
}