@charset "utf-8";
/* レイアウトのためのCSS */

body{
/*  background-image: linear-gradient(90deg, rgba(216, 245, 153, 1), rgba(235, 254, 209, 1));
  background-image: linear-gradient(90deg, rgba(244, 153, 92, 1), rgba(213, 115, 96, 1));
  background-image: linear-gradient(90deg, rgba(250, 207, 177, 1), rgba(249, 171, 127, 1));
  background-image: repeating-linear-gradient(0deg, transparent, transparent 1px, rgba(255, 190, 139, 1) 1px, rgba(255, 190, 139, 1) 2px );*/
  background: #f9db9b;
  background: rgba(56, 101, 168, 0.2);
  font-family: "Meiryo", sans-serif;
  font-family: YakuHanJP, "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴシック Pro", Meiryo, "メイリオ", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  color: #333;
  font-size:1rem;
  line-height:1.85;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%; 
  word-wrap: break-word;
}

body.appear{
  background:#fbfbfb;
}

*{box-sizing: border-box;}

ul{
  margin:0;
  padding: 0;
  list-style: none;
}

a{
  color: #fff;
  text-decoration: none;
  outline: none;
}

img{
  width: 100%;
  height: auto;
}

/* font-family */

.heading{
  font-family: 'Alex Brush', cursive;
  font-size: 4vw;
  font-weight: normal;
  color: #182578;
  animation-delay: 0.3s;
}

@media screen and (max-width:960px) {
.heading{
  font-size:3.5rem;
}
}



#container{
  overflow-x: hidden;
}

/* header */

#header{
  background:#fff;
  background: rgba(56, 101, 168, 0.8);
}

#header h1{
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  position: absolute;
  top: 25px;
  left: 10px;
/*    transform: translateX(-50%);*/
  color:#182578;
  color:#ffffff;
}

#g-nav ul{
  display: flex;
/*  left:0;*/
  justify-content: right;
  padding: 0 0 0 0;
}

#g-nav ul li{
  letter-spacing: 0.1em;
  white-space: nowrap;
}

#g-nav ul li:last-child{
  display: none;
}

#g-nav ul li a{
  display: block;
  padding: 6px 15px;
	color: #fff;
}

@media screen and (max-width:1300px) {
#g-nav ul{
  display: block;
  padding: 0;
}
   
#g-nav ul li a{
  padding:6px 15px;
}
}

#header ul#utility-navi{
  position: fixed;
  top:0;
  right:0;
  z-index: 999;
  display: flex;
  font-size: 0.8rem;
}

#header ul#utility-navi li{
  text-align: right;
}

#header ul#utility-navi li span{
  display: block;
}

#header ul#utility-navi li a{
  color: #fff;
  padding: 15px 0;
  display: block;
  width:100px;
  transition: all .5s;
}

#header ul#utility-navi li img{
  width:35%;
}

#header ul#utility-navi li:first-child a{
  background:#666;
}

#header ul#utility-navi li:first-child a:hover{
  background:#888;   
}

#header ul#utility-navi li:last-child a{
  background:#182578;
}

#header ul#utility-navi li:last-child a:hover{
  background:#1e2f98;
}
@media screen and (max-width: 1300px) {

  #header h1{
    top: 24px;
    left: 52%;
    transform: translateX(-70%);
  }

  #header ul#utility-navi li span{
    display:none;
  }

  #header ul#utility-navi li a{
    width: 70px;
    height: 70px;
    padding: 0;
  }

  #header ul#utility-navi li img {
    width: 45%;
    margin: 17px 0 0 0px;
  }
}

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

  #header h1{
    top:9px;
    left: 50%;
    transform: translateX(-70%);
  }

  #header ul#utility-navi li span{
    display:none;
  }

  #header ul#utility-navi li a{
    width: 70px;
    height: 70px;
    padding: 0;
  }

  #header ul#utility-navi li img {
    width: 45%;
    margin: 17px 0 0 0px;
  }
}

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

  #header h1{
    font-size: 1.3rem;
    top:14px;
    transform: translateX(-50%);
  }

  #g-nav ul li:last-child{
    display: block;
  }

  #header ul#utility-navi li:first-child{
    display: none;
  }

  #header ul#utility-navi li:last-child a{
    background:#666;
}

  #header ul#utility-navi li:last-child a:hover{
    background:#888;
  }
}

/*******************== 2・3階層目の共通設定 **********************/
/*2階層目以降は横並びにしない*/
nav ul ul{
	display: block;
}

/*下の階層を持っているulの指定*/
nav li.has-child ul{
    /*絶対配置で位置を指定*/
	position: absolute;
	left:0;
	top: 50px;
	z-index: 10;
    /*形状を指定*/
	background:#28BFE7;
	width:180px;
    /*はじめは非表示*/
	visibility: hidden;
	opacity: 0;
    /*アニメーション設定*/
	transition: all .3s;
}

/*hoverしたら表示*/
nav li.has-child:hover > ul,
nav li.has-child ul li:hover > ul,
nav li.has-child:active > ul,
nav li.has-child ul li:active > ul{
  visibility: visible;
  opacity: 1;
}

/*ナビゲーションaタグの形状*/
nav li.has-child ul li a{
	color: #fff;
	border-bottom:solid 1px rgba(255,255,255,0.6);
}

nav li.has-child ul li:last-child > a{
	border-bottom:none;
   }

nav li.has-child ul li a:hover,
nav li.has-child ul li a:active{
	background:#3577CA;
}


/*==3階層目*/

/*3階層目の位置*/
nav li.has-child ul ul{
	top:0;
	left:182px;
	background:#66ADF5;
}

nav li.has-child ul ul li a:hover,
nav li.has-child ul ul li a:active{
	background:#448ED3;
}


/*==768px以下の形状*/

@media screen and (max-width:768px){
	nav{
		padding: 0;
	}
	
	nav ul{
		display: block;
	}
	
	nav li.has-child ul,
	nav li.has-child ul ul{
  	position: relative;
	left:0;
	top:0;
	width:100%;
	visibility:visible;/*JSで制御するため一旦表示*/
	opacity:1;/*JSで制御するため一旦表示*/
	display: none;/*JSのslidetoggleで表示させるため非表示に*/
	transition:none;/*JSで制御するためCSSのアニメーションを切る*/
}

nav ul li a{
	border-bottom:1px solid #ccc;
}

/*矢印の位置と向き*/

nav ul li.has-child::before{
	left:20px;	
}

nav ul ul li.has-child::before{
    transform: rotate(135deg);
	left:20px;
}

nav ul li.has-child.active::before{
    transform: rotate(-45deg);
}

}

/***********************************************************/

/*********************** lead ******************************/

#lead{
  position: relative;
  padding: 0px 0 0 0;
  height: 100vh;
}

#slider-area{
  width: 100%;
  height: 100vh;
  position: relative;
  top: 0;
  left: 0;    
  z-index: -1;
}

#slider-area #slider{
  width:100%;
  height:100vh;
}

#lead h2.heading {
  position: absolute;
  top: 50%;
  left: 40%;
  transform: translate(-50%, -50%);
}

#lead .lead{
  position: absolute;
  top:320px;
  right:4%;
  font-size: 2rem;
  letter-spacing: 0.2em;
  line-height: 1.6;
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  white-space: nowrap;
}

#lead .lead span{
  display: block; 
  padding: 100px 0 0 0;
}

/*************************** new *************************/

#news{
  position: absolute;
  left: 0;
  bottom: 0;
  background: #fff;
  background: rgba(255,255,255,0.8);
  width:40%;
  z-index: 2;
  padding: 40px;
}

#news h2{
  position: relative;
  font-size:1.2rem;
  margin: 0 0 30px 0;
}

#news h2::before{
  content:'';
  position: absolute;
  width:30px;
  height: 1px;
  background: #182578;
  left:0;
  bottom:-5px;
}

#news li{
  margin:0 0 10px 0;
}

#news li a{
  transition: all .3s;
  color: #1050a7;
}

#news li a:hover{
  background:#efefef;
}

#news li time{
  display: inline-block;
  padding:0 20px 0 0;
  font-size:0.8rem;
  color: #999;
}

@media screen and (max-width:1300px) {
  #lead .lead{
    font-size:1.8rem;
    right: 2.5%;
  }
  #news{
    width:50%;
  }
  #lead h2.heading{
    top: 46%;
    left: 38%;
    transform: translate(-50%,-50%);
  }
}

@media screen and (max-width:1024px) {
  #lead .lead{
    font-size:1.6rem;
    right: 3%;
  }
  #news{
    padding: 20px 30px;
  }
  #news li time{
    display: block;
  }
  #lead h2.heading{
  top: 45%;
  left: 30%;
  width: 40%;
  transform: translate(-50%, -50%);  }

}

@media screen and (max-width:768px) {
  #slider-area {
    width: 100%;
    height: 100vh;
    left: 0;
  }

  #slider-area #slider{
  height: 100vh;
  }

  #lead h2.heading{
  top: 45%;
  left: 29%;
  width: 45%;
  transform: translate(-50%, -50%);  }

  #lead{
    padding: 0px 0 0 0;
  }

  #lead .lead{
    right:7%;
    top:260px;
  }

  #news{
    width:100%;
    bottom:-200px;
  }
}

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

  #lead .lead {
    font-size: 1.3rem;
    right:5%;
  } 

  #lead h2.heading{
  top: 48%;
  left: 25%;
  width: 55%;
  transform: translate(-50%, -50%);  }

}

@media screen and (max-width:350px) {
  #lead .lead {
    right:2%;
  }
}

/* service */

#service{
  font-family:  '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  font-family: YakuHanJP, "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴシック Pro", Meiryo, "メイリオ", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  position: relative;
  text-align: center;
  padding: 0px 0 0 0;
}

#service header{
  background-image: linear-gradient(90deg, rgba(6, 100, 182, 1), rgba(106, 163, 245, 1));
  background-image: linear-gradient(90deg, rgba(0, 123, 199, 1), rgba(106, 163, 245, 1));
  color: #fff;
  width:100%;
  padding: 50px 0 100px 0;
  z-index: 1;
}

#service header h2{
  font-size:  2.5vw;
  margin: 0 0 10px 0;
  letter-spacing: 0.1em;
}

#service header p{
  font-size:  1.2vw;
  margin: 0 20px 30px 20px;
}

#service header p br{
  display: none;   
}

#service .service-area{
  background:#fff;
  background:rgba(255,255,255,0.8);
  padding: 70px;
  width:80%;
  position: relative;
  top:-50px;
  left: 10%;
  z-index: 2;
}

#service .service-area img{
  border-radius: 10px;
/*  border: 1px solid #ccc;*/
  box-shadow: 4px 4px 10px 0px rgba(0, 0, 0, 0.3);
}

#service .service-area ul{
  display: flex;
  flex-wrap: wrap;
  justify-content:space-around;
/* スマホ表示用。flipDownを指定している親要素に指定しないとうまく動かない*/
  transform:  translate3d(0, 0, 0);
}

#service .service-area ul li{
  opacity: 0;
  width:30%;
  padding: 0 0 0px 0;
}

#service .service-area ul li a{
  display: block;
}

#service .service-area ul li a:hover{
  transition-duration: 0.5s;
  opacity: 0.5;
}

@media screen and (max-width:960px) {
  #service header{
    width:100%;
  }
  #service .service-area{
    width:80%;
    left:10%;
    padding: 40px 20px 30px 20px;
  }
  #service .service-area ul li{
    width: 90%;
  }

  #service header p br{
    display:block;
  }
}

@media screen and (max-width:768px) {
  #service{
    padding: 200px 0px 0 0px;
  }
  #service header h2{
    font-size: 8vw;
  }
  #service header p{
    font-size: 4vw;
    text-align: left;
  }
}

@media screen and (max-width:550px) {
  #service .service-area{
    width:90%;
    left:5%;
  }
}

@media screen and (max-width:400px) {
  #service .service-area{
    width:100%;
    left:0;
    font-size: 0.9rem;
  }
}

/**********************************************************/

.heading01 {
  position: relative;
  padding-top: 50px;
  padding-bottom: 50px;
  font-size: 26px;
  text-align: center;
  align-items: center;
}

.heading01 span {
	position: relative;
	z-index: 2;
}

.heading01::before {
  content: attr(data-en);
  position: absolute;
  top: -60px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(230,230,230,0.4);
  font-size: 100px;
  font-family: 'Annabelle JF','Alex Brush', cursive;
  font-family: "Tangerine", cursive;
}

.heading01::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
/*	transform: translate(-50%) rotate(30deg);
	width: 1px;
	height: 40px;
	background-color: rgba(224,66,114,1);*/
}

@media screen and (max-width:960px) {
.heading01{
  font-size: 50px;
}
}

/**********************************************************/


/******************** box **********************/

.b_title {
  font-size: 110%;
  font-weight: bold;
}
.box_m {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-bottom: 100px;
}
.box_m .box2 {
  width: 49%;
}
.box_m .box3 {
  width: 32%;
}
.box_m .box4 {
  width: 24%;
}
.box_m .b_obj {
  padding: 5px 10px;
/*  border: 2px solid #ccc;
  border-radius: 10px; */
  margin-bottom: 1.0em;;
  margin-right: 0.5em;;
}
.box_m h2{
  font-family:  '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  font-family: YakuHanJP, "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴシック Pro", Meiryo, "メイリオ", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  text-align: center;
  font-size:  2.5vw;
  margin: 0 0 10px 0;
  letter-spacing: 0.1em;
}
.box_m img {
  width: 100%;
  height: auto;
  align-items: flex-start;
}
.box_m ul {
  margin: 0 auto;
  width: 90%;
  background:rgba(255,255,255,0.6);
}
.box_m dl {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.box_m dt {
  width: 30%;
  padding: 20px;
}
.box_m dd {
  width: 70%;
  padding: 20px;
}
.box_m .u_line{
  border-bottom: 1px solid #ccc;
}
.box_m .map-ar{
  display: block;
  margin: 0 auto;
}

@media screen and (max-width: 768px) {
  .box_m { flex-direction: column; }
  .box_m .box2 { width: 100%; }
  .box_m .box3 { width: 100%; }
  .box_m .box4 { width: 100%; }

  .box_m h2{
  font-size: 8vw;
  }

  .box_m p{
  font-size: 4vw;
  text-align: left;
  }
  .box_m dt {
  width: 100%;
  padding-bottom: 5px!important;
  }
  .box_m dd {
  width: 100%;
  padding-top: 0!important;
  padding-left: 40px!important;
}
}

@media screen and (max-width:550px) {
  .box_m {
  width:90%;
  left:5%;
  }
}

@media screen and (max-width:400px) {
  .box_m {
  width:100%;
  left:0;
  font-size: 0.9rem;
  }
}
/******************** inq **********************/

#inq{
  font-family:  '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  position: relative;
  text-align: center;
  padding: 0px 0 0 0;
}
#inq h2{
  background: #fff;
  color: #666;
  width:100%;
  padding: 50px 0 50px 0;
  z-index: 1;
  font-size: 2vw;
  letter-spacing: 0.1em;
}

#inq br{
  display: none;
}

#inq a {
  color: #333;
}

#inq a:hover{
  background: #ccc;
  transition-duration: 0.5s;
  opacity: 0.7;}

@media screen and (max-width:768px) {
  #inq h2{
  font-size: 5vw;
  }
  #inq p{
  font-size: 4vw;
  text-align: left;
  }
}

/*
/******************* footer *********************/

#footer{
  font-family:  '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  padding: 100px 0;
  border-top:1px solid #6b8e23;
  text-align: center;
  background-image: linear-gradient(90deg, rgba(74, 141, 32, 1), rgba(154, 198, 86, 1));
  background-image: linear-gradient(210deg, rgba(227, 111, 34, 1), rgba(179, 58, 11, 1));
  background-image: linear-gradient(90deg, rgba(0, 123, 199, 1), rgba(106, 163, 245, 1));
  position: relative;
  text-transform: uppercase;
}

#footer .inq{
  font-size:  40px;
  letter-spacing: 0.3em;
  margin: 0 0 50px 0;
  color: #fff;
}

#footer .footer-logo{
  font-size:  20px;
  letter-spacing: 0.3em;
  margin: 0 0 50px 0;
  color: #fff;
}

#footer small{
  color: #fff;
}

/******************** page-top *******************/

/*リンクの形状*/
#page-top a{
  display: flex;
  justify-content:center;
  align-items:center;
  background:#942D2F;
  background-image: linear-gradient(90deg, rgba(57, 210, 248, 1), rgba(48, 97, 96, 1));
  background-image: linear-gradient(90deg, rgba(101, 179, 21, 1), rgba(59, 145, 4, 1));
  background-image: linear-gradient(90deg, rgba(227, 111, 34, 1), rgba(179, 58, 11, 1));
  background-image: linear-gradient(90deg, rgba(9, 92, 169, 1), rgba(54, 153, 232, 1));
  border-radius: 5px;
  width: 60px;
  height: 60px;
  color: #fff;
  text-align: center;
  text-transform: uppercase; 
  text-decoration: none;
  font-size:0.6rem;
  transition:all 0.3s;
}

#page-top a:hover{
  transition-duration: 0.5s;
  opacity: 0.7;
}

/*リンクを右下に固定*/
#page-top {
  position: fixed;
  right: 10px;
  bottom:10px;
  z-index: 2;
  /*はじめは非表示*/
  opacity: 0;
  transform: translateX(100px);
}

/*　左の動き　*/

#page-top.LeftMove{
  animation: LeftAnime 0.5s forwards;
}

@keyframes LeftAnime{
  from {
  opacity: 0;
  transform: translateX(100px);
  }
  to {
    opacity: 1;
	transform: translateX(0);
  }
}

/*　右の動き　*/

#page-top.RightMove{
  animation: RightAnime 0.5s forwards;
}
@keyframes RightAnime{
  from {
    pacity: 1;
    transform: translateX(0);
  }
  to {
  	opacity: 1;
	transform: translateX(100px);
  }
}
/************************************************************/
/*************************** para ***************************/
/************************************************************/

.para {
  padding-bottom: 10px;
}
@media screen and (max-width: 768px) {
  .para {
    padding-bottom: 60px;
  }
}

.para h3 {
  padding: 0 5px;
  text-align: center;
  font-size: 1.2vw;
  display: block;
}

.para-message {
  margin-bottom: 60px;
  padding: 20px;
  display: flex;
}
@media screen and (max-width: 1300px) {
  .para h3 { font-size: 1.5vw; }
}
@media screen and (max-width: 1024px) {
  .para h3 { font-size: 2.0vw; }
}
@media screen and (max-width: 768px) {
  .para h3 { font-size: 5.0vw; }
  .para-message { flex-direction: column; }
}

.para-message h2 {
  font-family:  '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  font-family: YakuHanJP, "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴシック Pro", Meiryo, "メイリオ", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  flex-grow: 1;
  flex-direction: column;
  font-size: 2.5vw;
  font-weight: bold;
  margin-top: 1.5em;
  text-align: center;
  width: 40%;
  color: #1050a7;
}
@media screen and (max-width: 768px) {
  .para-message h2 {
    font-size: 8vw;
    text-align: center;
    width: 100%;
  }
}

.para-message p {
  flex-grow: 2;
  font-size: 0.8vw;
  line-height: 2.2;
  letter-spacing: 2px;
  padding: 20px;
  background: #fff;
  background:rgba(255,255,255,0.8);
}
@media screen and (max-width: 1300px) {
  .para-message p { font-size: 1.0vw; margin-top: 30px; }
}
@media screen and (max-width: 1024px) {
  .para-message p { font-size: 1.3vw; margin-top: 30px; }
}
@media screen and (max-width: 768px) {
  .para-message p { font-size: 3.5vw; margin-top: 30px; }
}

.para-list {
  display: flex;
}
@media screen and (max-width: 768px) {
  .para-list {
    flex-direction: column;
  }
}

.para-list li {
  flex-wrap:wrap;
}

@media screen and (max-width: 768px) {
  .para-list li {
    width: 95%;
    margin: 2%;
    margin-bottom:30px;
  }
}

.para-list li a {
  display: block;
}
.para-list li img {
  width: 100%;
  display: block;
}
.para-list h3 {
  margin: 5px 10px 5px 10px;
}
@media screen and (max-width: 768px) {
  .para-list h3 {
    margin: 10px 0;
    font-size: 4vw;
  }
}

.para-list li p{
  padding: 0 10px 0 10px;
}

@media screen and (max-width: 1300px) {
  .para-list li p{ font-size: 1.0vw; }
}
@media screen and (max-width: 1024px) {
  .para-list li p{ font-size: 1.4vw; }
}
@media screen and (max-width: 768px) {
  .para-list li p{ font-size: 3vw; }
}

.para-list li a {
  overflow: hidden;
  cursor: pointer;
}
.para-list li a img {
  transition: transform .6s ease; /* ゆっくり変化させる */
}
.para-list li a:hover img {
  transform: scale(1.2); /* 拡大 */
}
.para-list li a:hover {
  transition-duration: 0.5s;
  opacity: 0.5;
}


/*********************************************************/

.para-list1 {
  display: flex;
  flex-wrap: wrap;
}

.para-list1 li a {
  display: block;
}
.para-list1 li img {
  width: 100%;
  display: block;
}
.para-list1 h3 {
  margin: 5px 10px 5px 10px;
}

.para-list1 li p{
  padding: 0 10px 0 10px;
}

.item_top { width: 20%; }
.item_top0 { width: 40%; }
.item_top1 { width: 30%; }
.item_sub { width: 18%; }
.item_sub0 { width: 23%; }
.item_sub1 { width: 24%; }
.item_sub2 { width: 60%; }

@media screen and (max-width: 1300px) {
  .item_top { width: 100%; }
  .item_sub { width: 23%; }
  .item_sub0 { width: 23%; }
  .item_sub1 { width: 30.5%; }
}

@media screen and (max-width: 1024px) {
  .item_top { width: 100%; }
  .item_sub { width: 48%; }
  .item_sub0 { width: 48%; }
  .item_sub1 { width: 30.5%; }
}

@media screen and (max-width: 768px) {
  .para-list1 { flex-direction: column; }
  .para-list1 li { padding: 2%; margin: 1.0%; }
  .para-list1 h3 { margin: 10px 0; font-size: 4vw; }
  .para-list1 li p{ font-size: 4vw; }
  .item_top1 { width: 98%; }
  .item_sub { width: 98%; }
  .item_sub0 { width: 98%; }
  .item_sub1 { width: 98%; }
  .item_sub2 { width: 98%; }
}

/************************************************************/
/*********************** para slider ************************/
/************************************************************/

.para_slider img {
  width: 100%;/*スライダー内の画像を横幅100%に*/
  height: auto;
}

/*slickのJSで書かれるタグ内、スライド左右の余白調整*/

.para_slider .slick-slide {
  margin: 0 10px 10px;/*スライド左右の余白調整*/
}

.para_slider li {
  background: #fff;
  padding: 10px;
  border-radius: 6px;
  box-shadow: 4px 4px 10px 0px rgba(0, 0, 0, 0.3);
}

.para_slider p {
  font-weight: bold;
  text-align: center;
  margin: 0;
  padding: 3px;
}

/************************************************************/
/************************** common **************************/
/************************************************************/

.col_bred {
  color: #d80808;
  font-weight: bold;
}

.tal { text-align: left!important; }
.tar { text-align: right!important; }
.ml_40 { margin-left: 40px!important; }
.mt_80 { margin-top: 80px!important; }
.mb_80 { margin-bottom: 80px!important; }
.m_80 {
  margin-top: 80px!important;
  margin-bottom: 80px!important;
}
.pt_20 { padding-top: 20px!important; }
.pt_30 { padding-top: 30px!important; }
.pt_40 { padding-top: 40px!important; }
.pt_80 { padding-top: 80px!important; }
.pl_40 { padding-left: 40px!important; }
.pb_20 { padding-bottom: 20px!important; }
.pb_30 { padding-bottom: 30px!important; }
.pb_40 { padding-bottom: 40px!important; }
.pb_80 { padding-bottom: 80px!important; }
.pl_40 { padding-left: 40px!important; }
.p_20 { padding: 20px!important; }
.p_30 { padding: 30px!important; }

@media screen and (max-width: 500px) {
  .ml_40 { margin-left: 0px!important; }
}

.bg_grl { background: #e59998; }
.bg_gra_g {
  background-image: linear-gradient(90deg, rgba(74, 141, 32, 0.8), rgba(154, 198, 86, 0.8));
  background-image: linear-gradient(210deg, rgba(227, 111, 34, 1), rgba(179, 58, 11, 1));
  background-image: linear-gradient(90deg, rgba(0, 123, 199, 1), rgba(106, 163, 245, 1));
  text-align: center;
  font-size: 125%;
  font-weight: bold;
  color: #fff;
}

.bg_gra_g0 {
  background:rgba(255,255,255,0.4);
  border: 4px solid #1050a7;
  text-align: center;
  font-size: 125%;
  font-weight: bold;
  color: #333;
}

.brs10{
  border-radius: 10px;
/*  border: 1px solid #ccc;*/
  box-shadow: 4px 4px 10px 0px rgba(0, 0, 0, 0.3);
}

.flx1{
  flex:1;
}

.para .odr0{
  order: 0;
}

.para .odr1{
  order: 1;
}

.f_8 {
  font-size: 80%;
}

.f_re8 {
  color: #ee0000;
  font-size: 80%;
}

.fb_re14 {
  color: #ee0000;
  font-size: 140%;
  font-weight: bold;
}

.fb_bl14 {
  color: #1050a7;
  font-size: 140%;
  font-weight: bold;
}

.para .w2 {
  width: 25%;
}
.para .w3 {
  width: 35%;
}
.para .w4 {
  width: 40%;
}
.para .w5 {
  width: 55%;
}
.para .w6 {
  width: 65%;
}
.para .w7 {
  width: 75%;
}
.para .w8 {
  width: 80%;
}
.para .w9 {
  width: 90%;
}
.para .w9x {
  width: 95%;
}

@media screen and (max-width: 768px) {
  .para .w2 { width: 100%; }
  .para .w3 { width: 100%; }
  .para .w4 { width: 100%; }
  .para .w5 { width: 100%; }
  .para .w6 { width: 100%; }
  .para .w7 { width: 100%; }
  .para .w8 { width: 100%; }
  .para .w9 { width: 100%; }
  .para .odr1{ order: 0; }
}

.m_r {
  margin: 0 0 0 auto;
}
.m_a {
  margin: 0 auto;
}
.mpa2 {
  margin: 0.2%;
}
.mpa5 {
  margin: 0.5%;
}
.mpa8 {
  margin: 0.8%;
}
.mpa10 {
  margin: 1.0%;
}

.bgcl {
  background: #fff;
  background:rgba(255,255,255,0.8);
}

.bg_type01{
  background-image: linear-gradient(90deg, rgba(32, 116, 193, 1), rgba(93, 161, 215, 1) 7%, rgba(221, 236, 255, 1) 37%, rgba(255, 255, 255, 1) 98%);
  padding: 40px 0;
}

.bg_type02{
  background-image: linear-gradient(270deg, rgba(32, 116, 193, 1), rgba(93, 161, 215, 1) 7%, rgba(221, 236, 255, 1) 37%, rgba(255, 255, 255, 1) 98%);
  padding: 40px 0;
}

.bdr1 {
  border-top: 10px solid;
  border-bottom: 10px solid;
  border-image:  linear-gradient(90deg, rgba(255, 80, 80, 1), rgba(233, 178, 45, 1) 20%, rgba(192, 202, 75, 1) 34%, rgba(53, 179, 56, 1) 58%, rgba(86, 110, 243, 1) 79%, rgba(154, 39, 238, 1))1;
}

.l_box01{
  padding: 6px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 5px;
}

.para-h2 {
  font-size: 2.5vw;
  font-weight: bold;
  margin-top: 1.5em;
  text-align: center;
  color: #1050a7;
}
@media screen and (max-width: 768px) {
  .para-h2 {
    font-size: 8vw;
    text-align: center;
    width: 100%;
  }
}

.tc {
  text-align: center;
}

.tx_sya {
  text-shadow: 1px 1px 0 rgba(255,255,255,0.8);
}
.tb_sya {
  text-shadow: 1px 1px 0 rgba(10,10,10,0.8);
}
.tbl_sya {
  text-shadow: 1px 1px 0 rgba(10,10,10,0.8);
  color: #1050a7;
}

/*************************************************/

.mn_o dl {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.mn_o dt {
  padding: 4px 10px 2px;
}
.mn_o dd {
  padding: 4px 10px 2px;
}
.mn_o .mu_line{
  border-bottom: 1px solid #ccc;
}
.mn_o .w3 {
  width: 30%;
}
.mn_o .w7 {
  width: 70%;
}
.mn_o dd a {
  color: #333;
}

@media screen and (max-width: 768px) {
  .mn_o { flex-direction: column; }
  .mn_o p{
  font-size: 4vw;
  text-align: left;
  }
  .mn_o dt {
  width: 100%;
  padding: 2px 10px 0px;
  }
  .mn_o dd {
  width: 100%;
  padding: 2px 10px 0px;
  }
  .mn_o .w3 { width: 100%; }
  .mn_o .w7 { width: 100%; }
  .f_8 { font-size: 100%; }
}

@media screen and (max-width:550px) {
  .mn_o {
  width:90%;
  left:5%;
  }
  .mn_o .w3 { width: 100%; }
  .mn_o .w7 { width: 100%; }
}

@media screen and (max-width:400px) {
  .mn_o {
  width:100%;
  left:0;
  font-size: 0.9rem;
  .mn_o .w3 { width: 100%; }
  .mn_o .w7 { width: 100%; }
  }
}
/*****************************************************************/
.bg_img_type01:before {
  content: "";
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -5;
  width: 100%;
  height: 100vh;
  background: url("../images/bg_01.jpg") center no-repeat;
  background-size: cover;
}
.bg_img_type02:before {
  content: "";
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -6;
  width: 100%;
  height: 100vh;
  background: url("../images/bg_02.jpg") center no-repeat;
  background-size: cover;
}

/*.bg_img_type02 {
  background-image: url('../images/bg_0001_02.jpg');
  background-attachment: fixed;
  background-size: cover;
  background-position: center;
}
*/

@media screen and (max-width: 768px) {
  .bg_img_type01 .bg_img_type02 {
    height: 100vw;
  }
}


/*************************************************/

.b_img {
  display: inline-block;
  padding: 10px;
}
.b_img img {
  vertical-align: top!important;
}

/********************************************/
a.btn_blu {
	display: block;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	margin: 0 auto;
	padding: 0.2rem 0.2rem;
	font-weight: bold;
	background: #1050a7;
	border: 2px solid #fff;
	color: #fff!important;
	border-radius: 100vh;
	transition: 0.5s;
}
a.btn_blu:hover {
	color: #1050a7!important;
	background: #fff;
	border: 2px solid #1050a7;
}

/*******************************************/

.l_txw {
  text-align: left;
  font-weight: normal;
  list-style: none;
  margin: 0;
  padding: 1.0em;
}

.l_tx:before {
  content: "";
  width: 10px;
  height: 10px;
  display: inline-block;
  background-color: #fff;
  border-radius:  50%;
  position: relative;
  top: -1px;
  margin-right: 10px;
}
.l_tx1:before {
  content: "";
  width: 10px;
  height: 10px;
  display: inline-block;
  background-color: #1050a7;
  border-radius:  50%;
  position: relative;
  top: -1px;
  margin-right: 10px;
}

.shadow_img {
  filter: drop-shadow(0px 0px 3px #fff);
}

