@charset "utf-8";

/*-　+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
■　header・グローバルナビ
@media screen and (min-width:1280px) {※以下：PCのみ}
@media screen and (max-width:1279px) {※以下：タブレットのみ}
@media screen and (max-width:599px) {※以下：スマホのみ}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++　--*/

/*------------------------------------------------------------
■　共通
------------------------------------------------------------*/
header{
background:#ffffff;
width: 100%;
height: 80px;
z-index: 300;
position: fixed;
box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 3px 0px;
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 3px 0px;
-moz-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 3px 0px;
}

/*-- 位置 --*/
header h1,
header .h_btn a,
header .h_btn_02 a,
header .h_tel a,
header .h_tel_02 a,
header .h_btn_img a,
header .h_btn_img_02 a,
header .h_sns{
position: absolute;
display: block;
}

/*-- ロゴ --*/
header h1 {
top: 10px;
height: auto;
left: 25px;
/* margin-left: -600px;*/
}
header h1 a .logo_header {
height: 50px;
margin:5px;
}
/*-- 説明 --*/
header h1 .header_h1_text{
font-size: 13px;
line-height: 1.4;
font-weight: normal;
color: #000000;
float: right;
padding-top: 5px;
padding-left: 30px;
}
/*-- SNS --*/
header .h_sns{
float: right;
margin: 5px 20px;
}
header .h_sns a img{padding: 0 1px}

/*-- TEL・BTN --*/
header .h_tel a,
header .h_btn a{
/*font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;*/
line-height:1.4;
font-weight: bold;
text-align: center;
text-decoration: none;
letter-spacing: 1px;
top: 12px;
}
header .h_tel a i, 
header .h_tel_02 a i {
transform: skew(30deg, -30deg);
display: inline-block;
font-size: 110%;
vertical-align: top;
padding-left: 6px;
padding-top: 4px;
color: #001c58;
}

/*-- TEL --*/
header .h_tel a,
header .h_tel_02 a{
/* margin-right: -340px; */
margin-top: 0px;
right: 280px;
width: auto;
font-family: 'impact', sans-serif;
font-family: "Noto Serif JP", serif;
color: #000;
font-size: 28px;
font-weight: 900;
}
header .h_tel_02 a{margin-right: -540px;}

/*-- BTN --*/
header .h_btn a,
header .h_btn_02 a{
margin-right: -640px;
margin-top: 3px;
right: 50%;
width: auto;
border-radius: 5px;
color: #FFF;
background: linear-gradient( #a1d164 0%, #8dc641 100%);
background: #003567;
font-size: 14px;
display: inline-block;
padding: 11px 20px 10px;
}
header .h_btn a:hover {
opacity: 0.85;
background: #001c58;
}

header .h_btn_02 a{margin-right: -340px;}

/*-- 画像BTN --*/
/*header .h_btn_img a,
header .h_btn_img_02 a{
right: 50%;
width: auto;
margin-top: 14px;
margin-right: -640px;
}
header .h_btn_img_02 a{margin-right: -395px;}*/

/*-- SNS --*/
header .h_sns{
right: 85px;
width: auto;
margin-top: 15px;
}
header .h_sns a{
margin: 0 10px;
}

/*追記*/
header .cap {
font-size: 12px;
position: absolute;
top: 43px;
right: 286px;
/* margin-right: -335px; */
z-index: 15;
text-align: center;
font-weight: normal;
letter-spacing: 1px;
}

/*-- 2階層式メニュー --*/
#g_navi ul li a.ac_menu {
cursor: pointer;
overflow: hidden;
}

/*--group_title --*/
#g_navi li .ac_list ul li.group_title{
display: block;
width: 100%;
font-weight: bold;
padding: 5px 10px 0;
margin: 10px auto 0;
/*background: #efefef;*/
border-top: #cc0000 1px dashed;
color: #001c58;
}
/*NEWS*/
.h_news{
color: #fff;
background: #001c58;
position: relative;
top: 78px;
text-align: center;
}

/*-- 翻訳 --*/
header .translate {
color: #333;
font-size: 14px;
top: 8px;
line-height: 150%;
position: absolute;
letter-spacing: 0;
right: 250px;
}
header .translate p{
color: #333;
font-size: 14px;
display: none;
}
header .translate select {
font-family: inherit;
padding: 5px;
margin: 5px auto;
	font-size: 12px;
}

/*-- TEL画像 --*/
header .header_tel_img {
right: 450px;
width: auto;
margin-top: 15px;
position: absolute;
display: block;
float: right;
}
/*-- SP画像 --*/
.logo_header_sp{
	display: none;
}
/*------------------------------------------------------------
■　PCワイド
------------------------------------------------------------*/
@media screen and (max-width:1600px){
header .header_tel_img {
display: none;
}
header h1 a .logo_header {
height: 50px;
margin: 5px;
}
header .translate p {
display: none;
}
}
/*------------------------------------------------------------
■　PC
------------------------------------------------------------*/
@media screen and (min-width:1280px) {

/*ページ内リンクの余白＝headerの高さ*/
html {scroll-padding-top: 60px;scroll-behavior: smooth;}

/*header固定分の上部余白＝headerの高さ*/
#top_slide{padding-top: 80px;}
#top_img_bg {padding-top: 80px;}

/*フル画面imgのモーションで下が見えるのを防ぐ余白*/
.sm-slider, .sm-slider:after {margin-top: 100px !important;}

/* PCでは非表示のメニュー */
#g_navi ul li.pc_none {display: none;}

/*---------------------【header】---------------------*/

header {
height: 80px;
transition: all 0.3s ease;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
}
/*-- 翻訳 --*/
header .translate {
font-size: 18px;
top: 18px;
right: 280px;
position: absolute;
}
}

/*------------------------------------------------------------
■　PC 三
------------------------------------------------------------*/

/*---------------------【menu_btn】---------------------*/
.menu_btn {
display: block;
height: 80px;
width: 80px;
text-align: center;
padding-top: 0;
padding-bottom: 0;
position: fixed;
z-index: 5000;
top: 0;
right: 0;
background:#001c58;
}
.menu_btn:hover {
cursor: pointer;
}
.menu_btn span {
width: 40px;
height: 2px;
display: block;
position: absolute;
left: 50%;
top: 60%;
margin-left: -20px;
}
.menu_btn span {
transition: all 0.3s;
transform: rotate(0deg);
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
}
.menu_btn span.top {
background-color: #ffffff;
transform: translateY(-9px);
-webkit-transform: translateY(-9px);
-moz-transform: translateY(-9px);
}
.menu_btn span.middle {
background-color: #ffffff;
}
.menu_btn span.bottom {
background-color: #ffffff;
transform: translateY(9px);
-webkit-transform: translateY(9px);
-moz-transform: translateY(9px);
}
.menu_btn:hover span.top {
background-color: #ffffff;
transform: translateY(-11px);
-webkit-transform: translateY(-11px);
-moz-transform: translateY(-11px);
}
.menu_btn:hover span.middle {
background-color: #ffffff;
}
.menu_btn:hover span.bottom {
background-color: #ffffff;
transform: translateY(11px);
-webkit-transform: translateY(11px);
-moz-transform: translateY(11px);
}
.menu_btn.opened span {
/*background-color:#ffffff;*/
}
.menu_btn.opened span.top {
background-color: #ffffff;
transform: rotate(-45deg) translateY(0px);
-webkit-transform: rotate(-45deg) translateY(0px);
-moz-transform: rotate(-45deg) translateY(0px);
}
.menu_btn.opened span.middle {
/*background-color: rgb(0 160 233);
transform: translateY(-2px);
-webkit-transform: translateY(-2px);
-moz-transform: translateY(-2px);
height: 3px;*/
background-color: transparent !important;
}
.menu_btn.opened span.bottom {
background-color: #ffffff;
transform: rotate(45deg) translateY(0px);
-webkit-transform: rotate(45deg) translateY(0px);
-moz-transform: rotate(45deg) translateY(0px);
}

.menu_btn .txt {
transform: translateY(14px);
-webkit-transform: translateY(14px);
-moz-transform: translateY(14px);
font-size: 14px;
color: #ffffff;
font-weight: bold;
/* background-color: #fff !important; */
line-height: 1;
display: block;
position: absolute;
left: 50%;
top: 0%;
margin-left: -30px;
width: 60px;
}

/*---------------------【navigation】---------------------*/
#g_navi {
position: fixed;
/* background-color: rgba(255, 255, 255, 0.8); */
font-size: 14px;
padding-top: 78px;
width: 100%;
max-width: 680px;
height: 100%;
top: 0px;
right: 0px;
display: none;
overflow: auto;
z-index: 3000;
letter-spacing: 1px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#g_navi ul {
display: block;
margin: 0px;
padding: 0px;
clear: both;
background: #fff;
}
#g_navi ul li {

}
#g_navi ul li a {
font-family: "Zen Maru Gothic", sans-serif;
text-decoration: none;
display: block;
padding: 1em 2em;
font-size: 18px;
line-height: 1.6;
vertical-align: middle;
border-bottom: rgb(255 255 255 / 50%) 1px solid;
border-bottom: #ccc 1px dotted;
color: #006390;
font-weight: 500;
}
#g_navi ul li a .en {
display: none;
}
#g_navi ul li a::before {
content: "\f105";
font-family: FontAwesome;
margin-right: 1em;
color: #001c58;
}
#g_navi ul li a:hover {
color: #fff;
background-color: #001c58;
/*opacity: 0.85;*/
}
#g_navi ul li a:hover:before {
color: #fff;
}
body.fixed {
overflow: hidden;
}

/*-- メニューシャドウ --*/
.bg_bl {
background-color:rgba(255,255,255,0.8);
height: 100%;
width: 100%;
opacity: 0.80;
filter: alpha(opacity=80);
-ms-filter: "alpha( opacity=80 )";
display: block;
position: fixed;
z-index: 2000;
}

/*-- *****　▼2階層メニュー▼　***** --*/
#g_navi ul li a.ac_menu {
position: relative;
background-image: none;
}
#g_navi ul li a.ac_menu::after {
content: "+";
font-size: 16px;
/*line-height: 32px;*/
position: absolute;
right: 20px;
color:#006390;
}
#g_navi ul li a.ac_menu.active {

}
#g_navi ul li a.ac_menu.active::before {
content: "\f107";
font-family: FontAwesome;
margin-right: 1em;
}
#g_navi ul li ul li {
background: rgba(255,255,255,0.2);
padding-left: 2em;
}
#g_navi ul li ul li a::before {
content: "\2517";
font-family: FontAwesome;
padding-right: 5px;
}
/* ↓CLOSE↓*/
/*#g_navi div.ac_list {display: none;}*/

/* ↓OPEN↓*/
#g_navi div.ac_list {display: block;}

/*-- *****　//2階層メニュー　***** --*/

/*------------------------------------------------------------
■　タブレット
------------------------------------------------------------*/
@media screen and (max-width:1279px) {

/*ページ内リンクの余白＝headerの高さ*/
html {scroll-padding-top: 60px;scroll-behavior: smooth;}

/*header固定分の上部余白＝headerの高さ*/
#top_slide{padding-top: 60px;}
#top_img_bg {padding-top: 60px;}
	
/*スマホお問い合わせボタン*/
header .h_btn,header .h_btn_img {display:none;}

/*ホームアイコン*/
#g_navi ul li.home-sp{display:block;}
#g_navi ul li.home-pc{display: none;}

/*--dot--*/	
.sp-buttons {display: none;}

/*---------------------【header】---------------------*/
.sm-slider, .sm-slider::after {
top: 60px !important;
}
header {
background: #ffffff;
height: 60px;
}
header h1 {
top: 0px;
height: auto;
left: 0;
margin-left: 30px;
}
header h1 a .logo_header {
position: relative;
height: 40px;
top: 5px;
left: 0px;
}
header .h_sns {
float: right;
margin: 8px 10px;
}
header .h_sns a img {
padding: 1px;
width: 40px;
}
header h1 .header_h1_text {
font-size: 11px;
font-weight: normal;
color: #000000;
padding-top: 8px;
margin-left: 0px;
width: auto;
display: inline-block;
}
header .h_btn a {
width: 172px;
top: 9px;
right: 54px;
line-height: 1;
padding: 10px;
font-size: 13px;
}
header .h_tel a {
display: none;
top: 19px;
right: 240px;
line-height: 1;
font-size: 18px;
}
header .h_menu {
display: none;
}
header #info {
display: none;
}
header .cap {
display: none;
}
.h_news {
top: 55px;
font-size: 13px;
}

/*---------------------【navigation】---------------------*/
#g_navi {
position: fixed;
/*background-color: rgba(255,255,255,0.8);*/
font-size: 14px;
padding-top: 60px;
width: 100%;
height: 100%;
top: 0px;
right: 0px;
display: none;
overflow: auto;
z-index: 3000;
letter-spacing: 1px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#g_navi ul {
display: block;
margin: 0px;
padding: 0px;
clear: both;
}
#g_navi ul li {

}
#g_navi ul li a {
text-decoration: none;
display: block;
padding: 1em 2em;
line-height: 1.6;
font-size: 16px;
vertical-align: middle;
border-bottom: rgb(255 255 255 / 50%) 1px solid;
border-bottom: #ccc 1px dotted;
}
#g_navi ul li a .en {
display: none;
}
#g_navi ul li a::before {
content: "\f105";
font-family: FontAwesome;
margin-right: 1em;
color: #001c58;
}
#g_navi ul li a:hover {
color: #fff;
background-color: #001c58;
/*opacity: 0.85;*/
}
#g_navi ul li a:hover:before {
color: #fff;
}
body.fixed {
overflow: hidden;
}

/*-- メニューシャドウ --*/
.bg_bl {
background-color:rgba(255,255,255,0.8);
height: 100%;
width: 100%;
opacity: 0.80;
filter: alpha(opacity=80);
-ms-filter: "alpha( opacity=80 )";
display: block;
position: fixed;
z-index: 2000;
}

/*-- *****　▼2階層メニュー▼　***** --*/
#g_navi ul li a.ac_menu {
position: relative;
background-image: none;
}
#g_navi ul li a.ac_menu::after {
content: "+";
font-size: 16px;
/*line-height: 32px;*/
position: absolute;
right: 20px;
color: #001c58;
}
#g_navi ul li a.ac_menu.active {

}
#g_navi ul li a.ac_menu.active::before {
content: "\f107";
font-family: FontAwesome;
margin-right: 1em;
}
#g_navi ul li ul li {
background: rgba(255,255,255,0.2);
padding-left: 2em;
}
#g_navi ul li ul li a::before {
content: "└";
padding-right: 5px;
}
/* ↓OPEN・CLOSE↓*/
#g_navi div.ac_list {display: none;}
/*-- *****　//2階層メニュー　***** --*/

.menu_btn {
height: 60px;
width: 60px;
}
.menu_btn .txt {
top: -6px;
font-size: 12px;
letter-spacing: 0;
}
.menu_btn span {
width: 36px;
left: 54%;
}
}
@media screen and (max-width:1024px) {
/*-- 翻訳 --*/
header .translate {
font-size: 13px;
right: 86px;
position: absolute;
}
header .h_sns a img {
display: none;
}
}
/*------------------------------------------------------------
■　スマホ
------------------------------------------------------------*/
@media screen and (max-width:720px) {
.logo_header{display: none;}
.logo_header_sp{display: block;}
.logo_header_sp img{
height: 22px;
margin-top: 5px;
display: block;
}
}
@media screen and (max-width:599px) {
header h1 {
top: 0px;
height: auto;
left: 0;
margin-left: 7px;
}
header h1 a .logo {
position: relative;
height: 18px;
top: 16px;
left: 20px;
}
header .h_btn a {
width: 40px;
top: 8px;
right: 52px;
font-size: 16px;
line-height: 1;
border: none !important;
}
header .h_tel a {
top: 15px;
width: auto;
font-size: 24px;
right:60px;
}
header .h_tel a span.txt,
header .h_btn a span.txt{
display: none;
}
header .h_sns a {
margin: 0 5px;
}
header .h_sns {
margin: 8px 0px;
display: none;
}
header h1 a .logo_header {
position: relative;
height: 28px;
top: 12px;
left: 0px;
margin: 0;
		display: none;
}
/*-- 翻訳 --*/
header .translate {
right: 74px;
top: 23px;
font-size: 12px;
}
}
@media screen and (max-width:420px) {
header h1 .header_h1_text {
display: none;
}
header .translate select {
padding: 0px;
margin: 5px auto;
}
}
/*------------------------------------------------------------
■　ニュースティッカー
------------------------------------------------------------*/
.ticker {
white-space:nowrap;
width: 100%;
height: 30px;
display: flex;
align-items: center;
overflow: hidden;
}
.ticker ul {
display: flex;
align-items: center;
animation: ticker 50s linear infinite;
}
.ticker li {
margin: 0 5em;
}

@keyframes ticker {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-100%);
}
}