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

body{
  background-image: linear-gradient(90deg, rgba(216, 245, 153, 1), rgba(235, 254, 209, 1));
  font-family: "Meiryo", sans-serif;
  font-family:  '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',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(255,255,255,0.8);
}

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

#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;
}

@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:  100px;
  right: 50%;*/
  top: 50%;
  left: 40%;
  transform: translate(-50%,-50%);
}


/*#lead .lead{
  position: absolute;
  top: 50%;
  left: 50%;
  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;
}

@media screen and (max-width:1300px) {
  #lead h2.heading{
    top: 45%;
    left: 36%;
    transform: translate(-50%,-50%);
  }
}

/*************************** 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%;
  }
}

@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: 60%;
    top: 50%;
    left: 21%;
    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{
  font-family:  '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  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));
  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.7;
}

@media screen and (max-width:1300px) {
  #service header p{
    font-size: 1.9vw;
  }
}
@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;
  }
}

/* message */

#message{
  font-family:  '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  position: relative;
  padding:0 70px 70px;
}

#message h2{
  text-align: center;
  font-size:  2.5vw;
  color: #3f6902;
  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;
}

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

.heading01::before {
  content: attr(data-en);
  position: absolute;
  top: -50px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(180,120,150,0.31);
  font-size: 100px;
  font-family: '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;
}
}

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


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

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

#history h2{
  position: absolute;
  color: #3f6902;
  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: 20px 30px 70px;
  }
  #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: 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;
  text-align: center;
  font-size:  2.5vw;
  color: #3f6902;
  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 .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: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));
  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));
  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);
  }
}

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

.pl_40 {
  padding-left: 40px!important;
}

.ptb40 {
  padding-top: 40px!important;
  padding-bottom: 40px!important;
}

.bg_grl {
  background: #c7fbab;
}



/******************** para *******************/

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

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

.para-message h2 {
  font-family:  '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  flex-grow: 1;
  flex-direction: column;
  font-size: 3vw;
  font-weight: bold;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .para-message h2 {
    font-size: 30px;
    text-align: center;
  }
}

.para-message p {
  flex-grow: 2;
  font-size: 16px;
  line-height: 2.2;
  letter-spacing: 2px;
  background: #fff;
}
@media screen and (max-width: 768px) {
  .para-message p {
    font-size: 14px;
    margin-top: 30px;
  }
}

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

.para-list li {
  flex:1;
  margin: 1%;
  padding: 10px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 5px;
}
@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 0 5px 10px;
}
@media screen and (max-width: 768px) {
  .para-list h3 {
    margin: 10px 0;
    font-size: 5vw;
  }
}

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

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


/******************** 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;
}

.tx_sya {
  text-shadow: 1px 1px 0 rgba(255,255,255,0.6);
}

.tx_syb {
  text-shadow: 1px 1px 0 rgba(10,10,10,0.8);
}
