@charset "UTF-8";


/*----------------------------------------------------
　↓ 共通
-----------------------------------------------------*/
html {
	font-size : 62.5%; /*←全体の文字サイズの基準を10pxにセット*/
	line-height: 1em; /*←全体の行間を1emにセット*/
	letter-spacing: 0.02em;
}



/* clearfix */
.clearfix::after {
	content: " ";
	display: block;
	height: 0;
	line-height: 0;
	clear: both;
	visibility: hidden;
}
 .clearfix {
	display: inline-block;
	min-height: 1%;
}
/* Hides from IE-mac */
* html .clearfix {
	height: 1%;
}
.clearfix {
	display: block;
}



/* リンクテキスト */
a:link,
a:visited {
	text-decoration: underline;
}
a.over,
.over {
	cursor: pointer !important;
}


/* 余白/フロート */
.clear {
	clear: both;
}


/*----------------------------------------------------
　↓ 各デバイスでの表示切り替え
-----------------------------------------------------*/
.sp, .tab {
	display: none;
}
.pc {
	display: block;
}

@media screen and (max-width: 768px) {
.sp, .pc {
	display: none;
}
.tab {
	display: block;
}
}

@media screen and (max-width: 640px) {
.pc, .tab {
	display: none;
}
.sp {
	display: block;
}
}



/*----------------------------------------------------
　↓ レイアウト＿全体
-----------------------------------------------------*/
html {
	width: 100%;
}
body {
	font-size : 14px; /*←サイト全体の文字サイズの基準*/
	font-family: '游明朝', 'Yu Mincho', 'Hiragino Mincho ProN', HGS明朝E, 'Noto Serif JP', 'Lora' ,serif;
	letter-spacing: 0.1em;
	font-weight: 100;
	color: #005186;
	width: 100%;
	height: 100%;
	margin: auto;
	-webkit-text-size-adjust: 100%;/*←iOS、Safari向け。*/
	position: relative;
}

@media screen and (max-width: 768px) {
body {
	font-size: 1.45em;
}
}

@media screen and (max-width: 640px) {
body {
	font-size: 1.3em;
}
}


/*-----------------------------------------------------
　↓　余白設定
-----------------------------------------------------*/
.inner-wrap { /*可変幅*/
	max-width: 1080px;
	margin-left: auto;
	margin-right: auto;
	overflow: hidden;
}
.ajs-mg { /*可変マージン*/
	margin-bottom: 3em;
	overflow: hidden;
}

@media screen and (max-width: 1100px) {
.inner-wrap	{
	margin-left: 3em;
	margin-right: 3em;
}
}

@media screen and (max-width: 900px) {
.inner-wrap {
	margin-left: 2.5em;
	margin-right: 2.5em;
}
}

@media screen and (max-width: 640px) {
.inner-wrap {
	margin-left: 2em;
	margin-right: 2em;
}
}






/*-----------------------------------------------------
　↓　追加
-----------------------------------------------------*/

p::selection,
a::selection,
span::selection {
background: #ddf2ff;
}
p::-moz-selection,
a::-moz-selection,
span::-moz-selection {
background: #ddf2ff;
}

.mar20{
	margin-top: 20px;
}

.mar30{
	margin-top: 30px;
}

.mar40{
	margin-top: 40px;
}

.mar50{
	margin-top: 50px;
}

.mar60{
	margin-top: 60px;
}

.mar70{
	margin-top: 70px;
}

.mar80{
	margin-top: 80px;
}

.list-style-none{
	color: #fff;
}

.font-gothic{
	font-family: 'Arial',YuGothic,'Yu Gothic','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','メイリオ', Meiryo,'ＭＳ ゴシック',sans-serif;
}


/*ページ内リンク*/

#newslink::before {
    content: "";
    display: inline-block;
    height: 50px;
    margin-top: -50px;
    vertical-align: top;
}


/*改行*/

.br900{
  display: none;
}

.br500{
  display: none;
}

@media screen and (max-width: 900px) {
  .br900{
    display: block;
  }
}

@media screen and (max-width: 500px) {
  .br500{
    display: block;
  }
}


/*-----------------------------------------------------
　↓　header
-----------------------------------------------------*/


.header{
  overflow: visible;
  position: fixed;
  width: 100%;
  height: 80px;
  background-color: rgba(13,58,119,0.7);
  z-index: 8;
  top: 0;
  left: 0;
	box-sizing: border-box;
}

.header-nav{
 	width: 100%;
	display: inline-block;
	margin-right: 20px;
	position: relative;
}

.header-nav img{
  margin-left: 40px;
  width: 110px;
  height: auto;
  margin-top: 5px;
}

.header-rightbox{
  float: right;
  width: 520px;
}

.header-btn-fa{
  position: absolute;
  bottom: 8px;
  color: #fff;
  font-size: 3em;
  right: 190px;
}

.header-nav p{
  color: #fff;
  display: block;
  margin-left: 20px;
  position: absolute;
  top: 17px;
  line-height: 1.6em;
}

.header-nav p span{
  font-size: 1.17em;
  letter-spacing: 0.1em;
}

a.header-btn-info {
  background-image: url(../img/arrow.png);
  background-position: 270px center;
  background-repeat: no-repeat;
  background-color: rgba(13,58,119,0.2);
  background-size: 10px;
  width: 300px;
  padding: 15px 0;
  text-align: center;
  font-size: 16px;
  color: #fff;
  text-decoration: none;
  transition: all .3s;
  box-sizing: border-box;
  border: 1px solid #fff;
  margin-right: 110px;
  float: right;
  margin-top: 15px;
}

a.header-btn-info:hover {
	background-image: url(../img/arrow-on.png);
	background-color: #fff;
	color: #0d3a77;
}

.header-btn-info-sp{
  background-color: #005186;
  display: inline-block;
  position: absolute;
  right: 80px;
  top: 0;
  width: 80px;
  height: 80px;
  color: #fff;
  text-decoration: none!important;
}
.header-btn-info-sp span{
  text-decoration: none;
  padding: 0px 18px;
  font-size: 12px;
  margin-left: -2px;
}
.header-btn-info-sp a{
  text-decoration: none;
}
.header-btn-info-sp-icon{
  font-size: 2.3em;
  text-align: center;
  display: block;
  text-decoration: none;
  padding: 15px 26px 7px;
}


/*レスポンシブ*/

@media screen and (max-width: 768px) {
  .header-btn-info-sp{
    height: 84px;
  }
  .header-btn-info-sp-icon{
    padding: 19px 25px 6px;
  }
  .header-nav{
     margin-top: -4px;
  }
  .header-nav img{
     margin-left: 34px;
     margin-top: 10px;
  }
  .header-nav p{
    display: none;
  }
  .header-btn-fa{
    display: none;
  }
}

@media screen and (max-width: 640px) {
  .header-btn-info-sp-icon{
    padding: 20px 25px 9px;
  }
}

@media screen and (max-width: 410px) {
  .header-nav img{
    margin-left: 20px;
    width: 110px;
    margin-top: 11px;
  }
}

@media screen and (max-width: 360px) {
	.margin-top{
		font-size: 0.7em;
	}
  .header-nav p{
 	 	margin-left: 10px;
	}
}

/* サイドナビの中身のcss
-------------------------------------*/
nav {
    position: fixed;
    max-width: 360px;
    width: 50%;
    background-color: rgba(13,58,119,0.9);
    height: 100vh;
    top: 0;
    right: 0;
    z-index: 7;
}
nav ul {
	width: 100%;
  padding: 0 30px;
  box-sizing: border-box;
	position: absolute;
	margin: auto;
	top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}
nav ul li {
    margin-bottom: 20px;
}
nav ul li:last-child {
    margin-bottom: 0px;
}
nav ul li a {
    font-size: 1.2em;
    line-height: 2;
    color: #fff;
    text-decoration: none !important;
}

nav ul li a:hover {
	border-bottom: 1px solid #d80421;
	padding-bottom: 5px;
}


@media screen and (max-width: 480px) {
  nav{
    max-width: initial;
    width: 100%;
  }
}





/* ハンバーガーボタンのcss
-------------------------------------*/
.hamburger {
	position: fixed;
	top: 0;
	right: 0;
	display: inline-block;
	cursor: pointer;
	transition-property: opacity, filter;
	transition-duration: 0.2s;
	transition-timing-function: linear;
	background-color: transparent;
	z-index: 10;
    background-color: #d80421;
    width: 80px;
    height: 80px;
}
.hamburger span {
    position: absolute;
    bottom: 12px;
    left: 0px;
    width: 100%;
    text-align: center;
    color: #fff;
    font-size: 11px;
}
.hamburger-box {
	width: 40px;
	height: 38px;
	display: inline-block;
	position: relative;
    top: 10px;
    left: 20px;
}
.hamburger-inner {
	display: block;
	top: 50%;
}
.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after {
	width: 40px;
	height: 2px;
	background-color: #fff;
	position: absolute;
	transition-property: transform;
	transition-duration: 0.2s;
	transition-timing-function: ease;
}
.hamburger-inner::before,
.hamburger-inner::after {
	content: "";
	display: block;
}
.hamburger-inner::before {
	top: -12px;
}
.hamburger-inner::after {
	bottom: -12px;
}
.hamburger .hamburger-inner {
	transition-duration: 0.2s;
	transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}
.hamburger .hamburger-inner::before {
	transition: top 0.2s 0.2s ease,
        opacity 0.2s ease;
}
.hamburger .hamburger-inner::after {
	transition: bottom 0.2s 0.2s ease,
        transform 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);
}

/*ばってん*/
.hamburger.is-active .hamburger-inner {
	transform: rotate(45deg);
	transition-delay: 0.2s;
	transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}
.hamburger.is-active .hamburger-inner::before {
	top: 0;
	opacity: 0;
	transition: top 0.2s ease,
        opacity 0.2s 0.2s ease;
}
.hamburger.is-active .hamburger-inner::after {
	bottom: 0;
	transform: rotate(-90deg);
	transition: bottom 0.2s ease,
        transform 0.2s 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);
}


/*TOPビジュアル---------------------------------------------------*/

#head-visual {
    height: 440px;
    background-image: url(../img/mainv-bg.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
    margin-bottom: 60px;
}
#head-visual div {
    position: absolute;
    width: 100%;
    text-align: center;
    color: #fff;
    top: 50%;
    left: 50%;
    transform: translate(-50%, calc(-50% + 35px));
}
#head-visual div h2 {
    font-size: 2em;
    line-height: 1.5;
    letter-spacing: 0.2em;
    margin-bottom: 30px;
}
#head-visual div p {
    font-size: 1.2em;
    letter-spacing: 0.2em;
}
@media screen and (max-width: 768px) {
#head-visual {
    height: 350px;
    margin-bottom: 40px;
}
#head-visual div h2 {
    font-size: 1.6em;
    line-height: 1.5;
    margin-bottom: 10px;
}
#head-visual div p {
    font-size: 1.1em;
    line-height: 1.5;
}
}
@media screen and (max-width: 768px) {
#head-visual {
    height: 250px;
    margin-bottom: 30px;
}
}


/*footer----------------------------------------------------*/

.copy{
  background-color: #005186;
  color: #fff;
}

.copy .inner-wrap p{
  text-align: center;
  padding: 10px 0;
  font-size: 0.8em;
}


/*追従footer----------------------------------------------------*/


.txtfooter {
  display: none;
  background-color: rgba(13,58,119,0.7);
  color: #fff;
  position: fixed;
  z-index: 8;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 60px;
}

.txtfooter .inner-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}

.txtfooter .inner-wrap p{
  text-align: center;
  padding: 10px 0;
  font-size: 0.8em;
  line-height: 2em;
}

.txtfooter .inner-wrap p span{
  font-size: 1.3em;
  letter-spacing: 0.15em;
}

.footer-btn-fa{
  color: #fff;
  font-size: 3em;
  right: 20px;
}


@media screen and (max-width: 768px) {
  .txtfooter {
    display: block;
  }
  footer{
    padding-bottom: 60px;
  }
}


@media screen and (max-width: 340px) {
  .txtfooter p {
    text-align: left;
  }
}




/*loader----------------------------------------------------*/

#loader{
	width: 100%;
	height: 100vh;
	background-color: #005186;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
}


.spinner {
    width: 50px;
    height: 40px;
    font-size: 10px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
}

.spinner > div {
  background-color: #fff;
  height: 100%;
  width: 6px;
  display: inline-block;
  -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out;
  animation: sk-stretchdelay 1.2s infinite ease-in-out;
}

.spinner .rect2 {
  -webkit-animation-delay: -1.1s;
  animation-delay: -1.1s;
}

.spinner .rect3 {
  -webkit-animation-delay: -1.0s;
  animation-delay: -1.0s;
}

.spinner .rect4 {
  -webkit-animation-delay: -0.9s;
  animation-delay: -0.9s;
}

.spinner .rect5 {
  -webkit-animation-delay: -0.8s;
  animation-delay: -0.8s;
}

@-webkit-keyframes sk-stretchdelay {
  0%, 40%, 100% { -webkit-transform: scaleY(0.4) }  
  20% { -webkit-transform: scaleY(1.0) }
}

@keyframes sk-stretchdelay {
  0%, 40%, 100% { 
    transform: scaleY(0.4);
    -webkit-transform: scaleY(0.4);
  }  20% { 
    transform: scaleY(1.0);
    -webkit-transform: scaleY(1.0);
  }
}


@media screen and (max-width: 640px) {
  .spinner {
      padding-bottom: 60px;
  }
}


/*----------------------------------------------------
　↓　ふわっと表示
-----------------------------------------------------*/
.animation {
    visibility: hidden;
}
.fadeInDown {
    -webkit-animation-fill-mode:both;
    -ms-animation-fill-mode:both;
    animation-fill-mode:both;
    -webkit-animation-duration:1s;
    -ms-animation-duration:1s;
    animation-duration:1s;
    -webkit-animation-name: fadeInDown;
    animation-name: fadeInDown;
    visibility: visible !important;
}

@keyframes fadeInDown {
0% {
    opacity: 0;
    -webkit-transform: translateY(50px);
    -ms-transform: translateY(50px);
    transform: translateY(50px);
}
100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
}
}
/*** -webkit-用の記述 ***/
@-webkit-keyframes fadeInDown {
0% {
    opacity: 0;
    -webkit-transform: translateY(50px);
}
100% {
    opacity: 1;
    -webkit-transform: translateY(0);
}
}


/*----------------------------------------------------
　↓　ふわっと表示　すぐでる
-----------------------------------------------------*/
.animation2 {
    visibility: hidden;
}
.fadeInDown {
    -webkit-animation-fill-mode:both;
    -ms-animation-fill-mode:both;
    animation-fill-mode:both;
    -webkit-animation-duration:1s;
    -ms-animation-duration:1s;
    animation-duration:1s;
    -webkit-animation-name: fadeInDown;
    animation-name: fadeInDown;
    visibility: visible !important;
}

@keyframes fadeInDown {
0% {
    opacity: 0;
    -webkit-transform: translateY(0px);
    -ms-transform: translateY(0px);
    transform: translateY(0px);
}
100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
}
}
/*** -webkit-用の記述 ***/
@-webkit-keyframes fadeInDown {
0% {
    opacity: 0;
    -webkit-transform: translateY(50px);
}
100% {
    opacity: 1;
    -webkit-transform: translateY(0);
}
}



/*サブページの共通*/ 

.sub-ttl h2{
  border-bottom: 1px solid #005186;
  font-size: 1.8em;
  line-height: 1.5;
  padding-bottom: 16px;
  margin-bottom: 40px;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 480px) {
  .sub-ttl h2{
    font-size: 1.5em;
  }
}




