@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, #ffd8d8, #ffd8d8 1px, transparent 1px, transparent 2px);*/
  background: #f0f0f0;


  font-family: "Meiryo", sans-serif;
  font-family:  '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  font-family: Arial, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "verdana", 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: #333;
  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(200,0,0,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:#b60707;
	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:#b60707;
}


/*==3階層目*/

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

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: 46%;
  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;
}

#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: 42%;
    transform: translate(-50%,-50%);
  }
}

@media screen and (max-width:960px) {
  #lead .lead{
    font-size:1.6rem;
    right: 3%;
  }
  #news{
    padding: 20px 30px;
  }
  #news li time{
    display: block;
  }
}

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

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

  #lead h2.heading{
    width: 40%;
    top: 45%;
    left: 30%;
    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:550px) {

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

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

/* service */

#service{
  position: relative;
  text-align: center;
  padding: 0px 0 0 0;
}

#service header{
  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(198, 0, 0, 1), rgba(240, 40, 40, 1));
  width:100%;
  padding: 50px 0 100px 0;
  z-index: 1;
}

#service header h2{
  color: #fff;
  font-size:  2.5vw;
  margin: 0 0 10px 0;
  letter-spacing: 0.1em;
  text-shadow: 2px 2px 0 rgba(60,60,60,0.8);
}

#service header p{
  color: #fff;
  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: 1280px) {
  #service{
    padding: 200px 0px 0 0px;
  }
  #service header h2{
    font-size: 5vw;
  }
  #service header p{
    font-size: 3vw;
    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;
  }
}

/* message */

#message{
  position: relative;
  padding:0 70px;
}

#message h2{
  text-align: center;
  font-size:  2.5vw;
  position: absolute;
  left: 20%;
  z-index: 2;
}

.message-area{
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  flex-direction: row-reverse;
}

.message-img{
  background:url("../images/pict_01.jpg") no-repeat center;
  background-size: cover;
  height: 50vh;
  width:48%;
}

.message-content{
  display: flex;
  justify-content: center;
  padding: 150px 0 0 0;
  width:48%;
}

.message-box{
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
}

_:-ms-lang(x)::-ms-backdrop, .message-content h3{/*IE11用ハック*/
  width:30%;
}

.message-content p{
  line-height: 2.0;
  margin: 0 0 0 50px;
}

_:-ms-lang(x)::-ms-backdrop, .message-content p{/*IE11用ハック*/
  width:60%;
}

_:-ms-lang(x)::-ms-backdrop, .message-content .message-btn{/*IE11用ハック*/
  width:10%;
}

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

  .message-content h3{
    line-height: 2;
    margin: 0 0 0 10px;
  }

  .message-content p{
    line-height: 3;
    margin: 0 0 0 20px;
  }
}

@media screen and (max-width:1000px) {
  .message-content p{
    line-height: 2;
  }
}

@media screen and (max-width:768px) {
  #message{
    padding: 0 30px;
  }

  #message h2 {
    position: relative;
    right: inherit;
    left: 0;
    top: 20px;
    font-size: 8vw;
  }
  .message-img,
  .message-content{
    width:100%;
  }

  .message-img{
    height:40vh;
  }

  .message-content{
    padding:50px 0 0 0;
  }

  .message-content h3,
  .message-content p,
  .message-content .message-btn{
    -ms-writing-mode: lr-tb;
    -webkit-writing-mode: horizontal-tb;
    writing-mode: horizontal-tb;
    height: inherit;
    margin: 0 0 50px 0;
  }

  _:-ms-lang(x)::-ms-backdrop, .message-content h3,
  _:-ms-lang(x)::-ms-backdrop, .message-content p,
  _:-ms-lang(x)::-ms-backdrop, .message-content .message-btn{/*IE11用ハック*/
    width:100%;
  }

  .message-content h3{
    text-align: center;
    font-size: 1.2rem;
  }

  .message-box{
    display: block;
  }

  .message-box .btn{
    padding: 10px;
    display: block;
  }

}

@media screen and (max-width:430px) {
  .message-img{
    height:20vh;
  }
}

@media screen and (max-width:370px) {
 .message-content p br{
    display: none;
  }
}

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

.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(250,250,250,0.2);
  font-size: 100px;
  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; }
}

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


/*************** history *****************/

#history{
  font-family:  '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  position: relative;
  padding:0 70px;
  margin: 20px 0 100px 0;
  background:rgba(255,255,255,0.4);
}

#history h2{
  position: absolute;
  right: 20%;
  font-size:  2.5vw;
  z-index: 2;
}

.history-area{
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.history-img{
  margin-top: 5em;
  background:url("../images/pict_02.jpg") no-repeat center;
  background-size: cover;
  height: 50vh;
  width:48%;
}

.history-content{
  width:45%;
  padding: 150px 0 0 0;
}

@media screen and (max-width:768px) {
  #history{
    padding: 0 30px;
  }
  #history h2 {
    position: relative;
    right: inherit;
    left: 0;
    top: 20px;
    font-size: 8vw;
  }
  .history-img,
  .history-content{
    width:100%;
  }

  .history-img{
    height:40vh;
  }

  .history-content{
    padding:50px 0 0 0;
  }

  .history-img{
    margin-top: 0em;
  }
}

@media screen and (max-width:430px) {
  .history-img{
    height:20vh;
  }
}

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

.b_title {
  font-size: 110%;
  font-weight: bold;
}
.box_m {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 100px;
}
.box_m .box1_1 {
  width: 35%;
}
.box_m .box1_2 {
  width: 60%;
}
.box_m .box2 {
  width: 49%;
}
.box_m .box3 {
  width: 30%;
}
.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{
  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.4);
}
.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 .box-1_1 { width: 100%; }
  .box_m .box-1_2 { width: 100%; }
  .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%;
  }
  .box_m dd {
  width: 100%;
  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: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(198, 0, 0, 1), rgba(240, 40, 40, 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(198, 0, 0, 1), rgba(240, 40, 40, 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 {
  margin: 0;
  padding-top: 50px;
  padding-bottom: 100px;
}
@media screen and (max-width: 768px) {
  .para {
    padding-bottom: 60px;
  }
}

.para h3 {
  padding: 0 5px;;
  text-align: center;
  font-size: 1.5vw;
  display: block;
}
.para .tc {
  padding: 2.0em 2.0em;;
  text-align: center;
  font-size: 150%;
  font-weight: bold;
  display: block;
}
.para-message {
  margin-bottom: 0px;
  padding: 20px;
  display: flex;
}
@media screen and (max-width: 1280px) {
  .para-message {
    flex-direction: column;
  }
}

.para-message h2 {
  flex-grow: 1;
  flex-direction: column;
  font-size: 2.5vw;
  font-weight: bold;
  margin-top: 1.5em;
  text-align: center;
/*  width: 40%;*/
  color: #b60707;
}

@media screen and (max-width: 1300px) {
  .para-message h2 { font-size: 3vw; text-align: center; display: block; }
}

@media screen and (max-width: 768px) {
  .para h3 { padding: 0 1.0em; }
  .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-h2 {
  font-size: 2.5vw;
  font-weight: bold;
  text-align: left;
  color: #b60707;
  text-shadow: 2px 2px 0 rgba(255,255,255,0.8);
}

.para-h2::before {
  content: attr(data-tx);
  position: absolute;
  top: -120px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(250,250,250,0.2);
  font-size: 100px;
  font-family: "Tangerine", cursive;
}

.para-h2::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: 768px) {
  .para-h2 {
    font-size: 8vw;
    text-align: center;
    width: 100%;
  }
}
.para-h2flow {
  font-size: 2.0vw;
  font-weight: bold;
  margin-top: 1.5em;
  text-align: center;
  color: #b60707;
}
@media screen and (max-width: 768px) {
  .para-h2flow {
    font-size: 7vw;
    text-align: center;
    width: 100%;
  }
}
.para-h2cap {
  font-size: 2.5vw;
  font-weight: bold;
  text-align: center;
  color: #fff;
  text-shadow: 2px 2px 0 rgba(60,60,60,0.8);
}
@media screen and (max-width: 768px) {
  .para-h2cap {
    font-size: 9vw;
    text-align: center;
    width: 100%;
  }
}
@media screen and (max-width: 500px) {
  .para-h2cap {
    font-size: 160%;
    text-align: center;
    width: 100%;
  }
}



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

@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: 768px) {
  .para-list li p{
   font-size: 4vw;
  }
}

.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_sub {
  width: 18%;
}

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

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

@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_sub { width: 98%; }
}

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

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

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

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

.para_slider li {
  display: block;
  background: #fff;
  padding: 10px;
}

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

.col_bred {
  color: #d80808;
  font-weight: bold;
}
.f40 {
  font-size: 150%;
}
.tsha_b {
  text-shadow: 2px 2px 0 rgba(0,0,0,0.8);
}
.tsha_w {
  text-shadow: 2px 2px 0 rgba(255,255,255,0.8);
}

.3q_h2 {
  margin-left: 10%;
  color: #d80808;
  font: bold;
  text-align: left!important;
  text-shadow: 2px 2px 0 rgba(255,255,255,0.8);
}
.tal {
  padding: 0 1.0em 0!important;
  font-size: 110%!important;
  text-align: left!important;
}

.tl {
  text-align: left!important;
}

.tar {
  text-align: right!important;
}

.mt_80 {
  margin-top: 80px!important;
}
.mb_80 {
  margin-bottom: 80px!important;
}

.pl_40 {
  padding-left: 40px!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(198, 0, 0, 1), rgba(240, 40, 40, 1));
  font-weight: bold;
  text-align: center;
  color: #fff;
}

.bg_stripe {
  background-image: repeating-linear-gradient(0deg, transparent, transparent 1px, rgba(255, 213, 161, 1) 1px, rgba(255, 213, 161, 1) 2px );
}

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

.para .w2 {
  width: 25%;
}
.para .w3 {
  width: 30%;
}
.para .w4 {
  width: 48%;
}
.para .w5 {
  width: 55%;
}
.para .w6 {
  width: 65%;
}
.para .w7 {
  width: 75%;
}
.para .w8 {
  width: 80%;
}
.para .w9 {
  width: 90%;
}
.para .w9m {
  width: 96%;
}
@media screen and (max-width: 1024px) {
  .para .w4 { width: 100%; }
  .para .w5 { width: 100%; }
  .para .w6 { width: 100%; }
  .para .w7 { width: 100%; }
  .para .w8 { width: 100%; }
  .para .w9 { width: 100%; }
}

@media screen and (max-width: 768px) {
  .para .w2 { width: 100%; }
  .para .w3 { width: 98%; }
  .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 .hpa {
  width: auto;
}
.para .hp2 {
  width: 100%;
}
.m_r {
  margin: 0 0 0 auto;
}
.m_l10 {
  margin-left: 10%;
}
.mt10 {
  margin-top: 10px;
}
.mt20 {
  margin-top: 20px;
}
.mt30 {
  margin-top: 30px;
}
.pt10 {
  padding-top: 10px;
}
.pt20 {
  padding-top: 20px;
}
.pt30 {
  padding-top: 30px;
}
.pt80 {
  padding-top: 80px;
}
.ptb80 {
  padding-top: 80px;
  padding-bottom: 80px;
}
.pb80 {
  padding-bottom: 80px;
}
.m_a {
  margin: 0 auto;
}
.mpa0 {
  margin: 0;
}
.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(254, 28, 28, 1), rgba(240, 230, 230, 1) 12%, rgba(226, 230, 230, 1) 31%, rgba(255, 255, 255, 1));
/*  background: #ffd3cd;*/
}

.bg_type02{
  background-image: linear-gradient(270deg, rgba(232, 149, 91, 1), rgba(236, 190, 158, 1) 26%, rgba(240, 227, 218, 1) 31%, rgba(255, 246, 246, 1));
}

.bg_img_type01:before {
  content: "";
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -5;
  width: 100%;
  height: 100vh;
  background: url("../images/bg_0000_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_0001_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;
  }
}


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

/******************************************************************************/
/********************************** flip-card *********************************/
/******************************************************************************/

.flip-card {
  background-color: transparent;
  width: 100%;
  height: 16vw;
  border: 2px solid #f1f1f1;  perspective: 1000px; /* Remove this if you don't want the 3D effect */
}
@media screen and (max-width: 768px) {
  .flip-card {
    height: 90vw;
  }
}

.flip-card_name {
  text-align: center;
  font-weight: bold;
  font-size: 1.5rem;
}

.flip-card_name span {
  display: block;
  font-size: 0.9rem;
}

.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.8s;
  transform-style: preserve-3d;
}

.flip-card:hover .flip-card-inner {
  transform: rotateY(180deg);
}

.flip-card-front, .flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden; /* Safari */
  backface-visibility: hidden;
}

.flip-card-front {
  background-color: #fff;
  color: black;
}

.flip-card-back {
  background-image: linear-gradient(90deg, rgba(198, 0, 0, 1), rgba(240, 40, 40, 1));
  color: white;
  transform: rotateY(180deg);
}

/* 反転した時の囲み枠 */
.cardbox1 {
    padding: 1em 1em;
    margin: 1em 2em;
    font-weight: bold;
    border: solid 3px #FFFFFF;
}

.flip-card-inner dl {
  padding: 10px;
}

.flip-card-inner dt {
  font-weight: bold;
}

.flip-card-inner dd {
  font-size: 85%;
  line-height: 1.6em;
  margin-top: -0.5em;
  margin-left: 1.0em;
}

.flip-card-inner dd a {
  color: #fff;
}

/******************************************************************************/
/********************************** flex-wrap *********************************/
/******************************************************************************/

.para_wrap {
  display: flex;
/*  justify-content: space-between;*/
  justify-content: center;
  flex-wrap: wrap;
}

.item {
  width: 15.5%;
  margin-right: 1%;
}
.f-pt {
  padding-top: 0.8em; 
}

@media not all and (min-width: 1900px) {
  .item { width: 19%; }
  .flip-card { height: 20vw; }
  .f-pt { padding-top: 0.8em; }
  .flip-card-back { font-size: 85%; }
  .item:not(:last-child) { margin-bottom: 10px; }
}

@media not all and (min-width: 1700px) {
  .item { width: 24%; }
  .flip-card { height: 20vw; }
  .f-pt { padding-top: 0.1em; }
  .flip-card-back { font-size: 100%; }
  .item:not(:last-child) { margin-bottom: 10px; }
}

@media not all and (min-width: 1400px) {
  .item { width: 31%; }
  .flip-card { height: 30vw; }
  .f-pt { padding-top: 0.6em; }
  .flip-card-back { font-size: 115%; }
  .item:not(:last-child) { margin-bottom: 10px; }
}

@media not all and (min-width: 1300px) {
  #header h1{left: 50%; }
  .para-list { flex-direction: row; w7: width: 98%; }
  .para-message h2 { font-size: 5vw; text-align: center; width: 100%; display: block; margin: 0 auto; }
  .para-h2 { font-size: 5vw; text-align: center; width: 100%; }
  .para-h2flow { font-size: 5vw; text-align: center; width: 100%; }
  .para-h2cap { font-size: 5vw; text-align: center; width: 100%; }
  .para h3 { font-size: 2.8vw; }
  .item { width: 48%; }
  .w2 { width: 98%; }
  .flip-card { height: 42vw; }
  .f-pt { padding-top: 0.2em; }
  .flip-card-back { font-size: 120%; }
  .item:not(:last-child) { margin-bottom: 10px; }
}
@media not all and (min-width: 1024px) {
  #header p{ font-size: 2vw; }
  .para h3 { font-size: 6vw; }
  .item { width: 48%; }
  .flip-card { height: 48vw; }
  .f-pt { padding-top: 0.2em; }
  .flip-card-back { font-size: 100%; }
  .item:not(:last-child) { margin-bottom: 10px; }
}

@media not all and (min-width: 768px) {
  .item { 
    width: 90%;
    margin: 0 auto;
   }
  .flip-card { height: 79vw; }
  .f-pt { padding-top: 0.2em; }
  .flip-card-back { font-size: 120%; }
  .item:not(:last-child) { margin-bottom: 10px; }
}
@media not all and (min-width: 599px) {
  #service header h2 {font-size: 8vw; }
  #service header p {font-size: 4vw; }
  .item { width: 90%; margin: 0 auto; }
  .heading01{font-size: 8vw; }
  .para-message h2{font-size: 8vw; }
  .para-h2 { font-size: 8vw; }
  .para-h2cap { font-size: 6vw; }
  .para h3 { font-size: 7vw; }
  .para-list1 li p { font-size: 3vw; }
  .flip-card_name { font-size: 120%; }
  .flip-card { height: 90vw; }
  .f-pt { padding-top: 0.2em; }
  .flip-card_name { font-size: 150%; }
  .flip-card-back { font-size: 110%; }
  .item:not(:last-child) { margin-bottom: 10px; }
}


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

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


.flow_no {
  font-family: 'Times New Roman',serif;
  font-size: 50px;
  position: absolute;
  top:0;
  left:0;
  color: #fff;
  background-color: #b60707;
  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);
  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);
  border-radius: 50%;
  width: 30%;
  height: 100px;
  padding: 0;
}

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

.l_txw {
  text-align: left;
  font-size: 110%;
  font-weight: bold;
  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;
}

.f80 {
  font-size: 70%;
}
.f120 {
  font-size: 120%;
}
.f180 {
  font-size: 180%;
}

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

