@charset "UTF-8";
/*
78aa19：緑
e16923：オレンジ
*/
/*============================================================================

 top

=============================================================================*/
main section {
 position: relative;
 padding-top: 100px;
 padding-bottom: 100px;
}
@media all and (min-width : 841px) {}
@media screen and (min-width : 641px) and (max-width : 840px) {
 main section {
  padding-top: 70px;
  padding-bottom: 70px;
 }
}
@media screen and (max-width : 640px) {
 main section {
  padding-top: 50px;
  padding-bottom: 50px;
 }
}
/* mainVisual
--------------------------------------------------------------------------------*/
#mainVisual {
 position: relative;
 width: 100%;
 padding-left: 30px;
 padding-right: 30px;
}
#mainVisual * {
 line-height: 1;
 vertical-align: bottom;
}
#mainVisual #mainVisual_txt1, #mainVisual #mainVisual_txt2 {
 position: absolute;
 left: 12.5%;
 margin: auto;
 width: 50%;
 max-width: 630px;
 z-index: 10;
}
#mainVisual #mainVisual_txt1 {
 top: 19%;
}
#mainVisual #mainVisual_txt2 {
 top: 32%;
}
#mainVisual ul {}
#mainVisual ul li {}
#mainVisual ul li img {
 border-radius: 25px;
 -webkit-border-radius: 25px;
 -moz-border-radius: 25px;
}
#mainVisual #mainVisual_circle {
 position: absolute;
 right: 50px;
 bottom: 30px;
 width: 20%;
 max-width: 270px;
}
#mainVisual #mainVisual_circle a {
 display: block;
}
@media all and (min-width : 841px) {}
@media screen and (min-width : 641px) and (max-width : 840px) {
 #mainVisual {
  padding-left: 20px;
  padding-right: 20px;
 }
 #mainVisual ul li img {
  border-radius: 20px;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
 }
}
@media screen and (max-width : 640px) {
 #mainVisual {
  padding-left: 15px;
  padding-right: 15px;
 }
 #mainVisual ul li img {
  border-radius: 15px;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
 }
 #mainVisual #mainVisual_txt1, #mainVisual #mainVisual_txt2 {
  width: 80%;
  left: 0;
  right: 0;
 }
 #mainVisual #mainVisual_circle {
  right: 20px;
  bottom: 10px;
  width: 35%;
 }
}
/* news
--------------------------------------------------------------------------------*/
#news {}
#news .inner {}
#news h2 {
 /* 16px */
 font-size: 1.25em;
 margin-bottom: 10px;
}
#news ul {
 width: 80%;
 max-width: 1000px;
 border-bottom: 1px solid #cccccc;
 margin: 0;
 padding: 0;
}
#news ul li {
 border-top: 1px solid #cccccc;
}
#news ul li a {
 position: relative;
 display: block;
 color: #333;
 text-decoration: none;
 padding-left: 1em;
 padding-top: 12px;
 padding-bottom: 12px;
}
#news ul li a:before {
 content: "";
 position: absolute;
 top: 0;
 bottom: 0;
 margin: auto;
 vertical-align: middle;
 /**/
 right: 15px;
 width: 7px;
 height: 7px;
 border-top: 1px solid #ccc;
 border-right: 1px solid #ccc;
 -webkit-transform: rotate(45deg);
 transform: rotate(45deg);
}
/**/
#news ul li div {
 display: inline-block;
}
#news ul li span {
 /* 12px */
 font-size: 0.75em;
 letter-spacing: 0.07em;
}
#news ul li span.news-date {
 color: #666;
 margin-right: 1em;
}
#news ul li span.news-ct {
 border: 1px solid #999;
 margin-right: 1em;
 padding-top: 7px;
 padding-bottom: 7px;
 padding-left: 1.5em;
 padding-right: 1.5em;
}
/**/
#news ul li span.ct-news {
 background-color: #fff;
}
#news ul li span.ct-event {
 color: #fff;
 background-color: #78aa19;
 border: 1px solid #78aa19;
}
#news .btn_orange {
 margin-top: 70px;
}
@media screen and (max-width : 1040px) {
 #news h2 br {
  content: "";
 }
 #news h2 br:after {
  margin-right: -.333em;
  content: "";
 }
 #news ul {
  width: 100%;
 }
}
@media all and (min-width : 841px) {
 #news ul li a:hover {
  background-color: #eee;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  transition: 0.3s;
 }
}
@media screen and (min-width : 641px) and (max-width : 840px) {}
@media screen and (max-width : 640px) {
 #news ul li div {
  display: block;
  margin-bottom: 5px;
 }
 #news ul li span.news-date {
  margin-right: 0.8em;
 }
 #news ul li span.news-ct {
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 1em;
  padding-right: 1em;
 }
 #news .btn_orange {
  margin-top: 40px;
 }
}
/* information
--------------------------------------------------------------------------------*/
#information {
 border-top: 8px solid #78aa19;
 text-align: center;
}
#information .inner {}
#information .inner .titleWrap {}
#information .inner .titleWrap h2 {}
#information .inner .titleWrap h2 + p {}
@media all and (min-width : 841px) {}
@media screen and (min-width : 641px) and (max-width : 840px) {}
@media screen and (max-width : 640px) {
 #information {
  padding-top: 60px !important;
  border-top: 8px solid #78aa19;
  text-align: center;
 }
 #information .inner {}
 #information .inner .titleWrap {}
 #information .inner .titleWrap h2 {}
 #information .inner .titleWrap h2 + p {
  letter-spacing: 0;
  text-align: left;
 }
}
/* contents
--------------------------------------------------------------------------------*/
.contents {
 margin-top: 100px;
 padding-top: 120px;
 padding-bottom: 120px;
}
.contents .inner {}
.contents .inner .flexL {
 width: 38.34%;
 max-width: 460px;
}
.contents .inner .flexL h2 {
 /* 42px */
 font-size: 2.625em;
 font-weight: 500;
}
.contents .inner .flexL h2 + p {
 /* 20px */
 font-size: 1.25em;
 margin-top: 20px;
 margin-bottom: 35px;
}
.contents .inner .flexL .btn_orange {
 margin-left: 0;
}
/**/
.contents .inner .flexR {
 width: 57.5%;
 max-width: 690px;
}
@media all and (min-width : 841px) {}
@media screen and (min-width : 641px) and (max-width : 840px) {
 .contents {
  margin-top: 60px;
  padding-top: 70px;
  padding-bottom: 70px;
 }
 .contents .inner .flexL .btn_orange {
  width: 100%;
 }
}
@media screen and (max-width : 640px) {
 .contents {
  margin-top: 60px;
  padding-top: 0px;
  padding-bottom: 0px;
 }
 .contents .inner .flexL h2 {
  font-size: 1.8em;
 }
 .contents .inner .flexL h2 + p {
  font-size: 1em;
  margin-top: 13px;
  margin-bottom: 17px;
 }
 .contents .inner .flexL .btn_orange {
  margin-left: auto;
  margin-right: auto;
 }
 .contents .inner .flexL .btn_orange a {
  padding-top: 10px;
  padding-bottom: 13px;
  padding-left: 0;
  padding-right: 0;
 }
}
/* service
--------------------------------------------------------------------------------*/
#service {}
#service:before, #service:after {
 content: "";
 position: absolute;
 width: 100%;
 height: 90%;
 background-size: cover;
}
#service:before {
 right: 0;
 top: 0;
 width: 78.125%;
 background-image: url(../../images/top/service_bg.jpg);
 background-position: left center;
 border-radius: 20px 0px 0px 20px;
 z-index: 2;
}
#service:after {
 left: 0;
 bottom: 0;
 width: 50%;
 background-image: url(../../images/top/service_bg2.jpg);
 border-radius: 0px 20px 20px 0px;
 z-index: 1;
}
/* */
#service .inner {
 z-index: 5;
}
#service .inner .flexL {}
#service .inner .flexR {}
#service .inner .flexR li {
 box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.3);
}
#service .inner .flexR li:not(:first-child) {
 margin-top: 20px;
}
@media all and (min-width : 841px) {}
@media screen and (min-width : 641px) and (max-width : 840px) {
 #service {
  padding-bottom: 0;
 }
 #service:before, #service:after {
  width: 93%;
 }
 #service:before {
  height: 420px;
 }
 #service:after {}
 #service .inner {
  padding-left: 0;
  padding-right: 0;
 }
 #service .inner .flexL, #service .inner .flexR {
  padding: 40px;
 }
 #service .inner .flexL {
  width: 80%;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  padding-top: 0;
 }
 #service .inner .flexR {
  width: 90% !important;
  margin-left: auto;
  margin-right: auto;
  padding-top: 60px;
 }
}
@media screen and (max-width : 640px) {
 #service {
  background-image: url(../../images/top/sp/service_bg_sp.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
 }
 #service:before, #service:after {
  content: none;
 }
 #service .inner {
  padding-left: 0;
  padding-right: 0;
 }
 #service .inner .flexL, #service .inner .flexR {
  max-width: none;
  padding: 25px;
 }
 #service .inner .flexL {
  padding-top: 30px;
  padding-bottom: 20px;
 }
 #service .inner .flexR {
  padding-left: 30px;
  padding-right: 20px;
 }
 #service .inner .flexR li {
  box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.3);
 }
 #service .inner .flexR li:not(:first-child) {
  margin-top: 20px;
 }
}
/* totalService
--------------------------------------------------------------------------------*/
#totalService {}
#totalService:before, #totalService:after {
 content: "";
 position: absolute;
 width: 100%;
 height: 90%;
 background-size: cover;
}
#totalService:before {
 left: 0;
 top: 0;
 width: 78.125%;
 background-image: url(../../images/top/total_bg.jpg);
 background-position: left center;
 border-radius: 0px 20px 20px 0px;
 z-index: 2;
}
#totalService:after {
 right: 0;
 bottom: 0;
 width: 50%;
 background-image: url(../../images/top/total_bg2.jpg);
 border-radius: 20px 0px 0px 20px;
 z-index: 1;
}
/* */
#totalService .inner {
 z-index: 5;
}
#totalService > .flex {
 justify-content: flex-start;
}
#totalService .flexL {}
#totalService .flexL h2, #totalService .flexL h2 + p {
 text-shadow: 0px 0px 1px #fff, 0px 0px 2px #fff, 0px 0px 3px #fff, 0px 0px 4px #fff, 0px 0px 5px #fff, 0px 0px 7px #fff;
}
#totalService .flexR {}
#totalService .flexR li {
 position: relative;
 width: 50%;
 max-width: 340px;
 margin-bottom: 50px;
}
#totalService .flexR li a {
 color: #666666;
 display: block;
 text-decoration: none;
}
#totalService .flexR li img {}
#totalService .flexR li p {
 /* 14px */
 font-size: 0.875em;
 width: 160px;
 position: absolute;
 right: 0;
 bottom: 0;
 font-weight: bold;
 text-align: center;
 padding-bottom: 10px;
 z-index: 2;
}
#totalService .flexR li p:before, #totalService .flexR li p:after {
 content: '';
 position: absolute;
 left: 0;
 bottom: 7px;
 height: 2px;
 border-radius: 3px;
 background-color: #666666;
}
#totalService .flexR li p:before {
 width: 15px;
}
#totalService .flexR li p:after {
 width: 10px;
 transform: rotate(50deg);
 transform-origin: 100% 100%;
 opacity: 0;
}
#totalService .flexR li a:hover p {
 color: #e16923;
}
#totalService .flexR li a:hover p:before, #totalService .flexR li a:hover p:after {
 background-color: #e16923;
}
/* hoverアニメ
#totalService .flexR li a:hover p:before {
 width: 100%;
}
#totalService .flexR li a:hover p:after {
 left: calc(100% - 10px);
 opacity: 1;
}
*/
/* hoverアニメなし */
#totalService .flexR li a p:before {
 width: 100%;
}
#totalService .flexR li a p:after {
 left: calc(100% - 10px);
 opacity: 1;
}
@media all and (min-width : 841px) {
 #totalService .flexR li a p {
  -webkit-transition: 0.8s;
  -moz-transition: 0.8s;
  transition: 0.8s;
 }
 #totalService .flexR li p:before, #totalService .flexR li p:after {
  -webkit-transition: 0.8s;
  -moz-transition: 0.8s;
  transition: 0.8s;
 }
}
@media screen and (min-width : 641px) and (max-width : 840px) {
 #totalService {
  padding-bottom: 0;
 }
 #totalService:after, #totalService:after {
  width: 93%;
 }
 #totalService:before {
  background-image: url(../../images/top/total_bg_tb.jpg);
  height: 420px;
 }
 #totalService:after {}
 #totalService .inner {
  padding-left: 0;
  padding-right: 0;
 }
 #totalService .inner .flexL, #totalService .inner .flexR {
  padding: 40px;
 }
 #totalService .inner .flexL {
  width: 80%;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  padding-top: 0;
 }
 #totalService .inner .flexR {
  width: 90% !important;
  margin-left: auto;
  margin-right: auto;
  padding-top: 50px;
  padding-bottom: 0;
 }
 #totalService .inner .flexR ul {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
 }
 #totalService .flexR li a p:before {
  width: 100%;
 }
 #totalService .flexR li a p:after {
  left: calc(100% - 10px);
  opacity: 1;
 }
}
@media screen and (max-width : 640px) {
 #totalService {
  background-image: url(../../images/top/sp/total_bg_sp.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
 }
 #totalService:before, #totalService:after {
  content: none;
 }
 #totalService .inner {
  padding-left: 0;
  padding-right: 0;
 }
 #totalService .inner .flexL, #totalService .inner .flexR {
  padding: 25px;
 }
 #totalService .inner .flexR {
  width: 90% !important;
  margin-left: auto;
  margin-right: auto;
  padding-top: 20px;
  padding-bottom: 30px;
 }
 #totalService .inner .flexR ul {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
 }
 #totalService .inner .flexR li {
  /* サービス部分 */
  width: 90%;
  margin-bottom: 0px;
 }
 #totalService .inner .flexR li:nth-child(even) {
  margin-left: 20%;
 }
 #totalService .inner .flexR li:not(:first-child) {
  margin-top: 20px;
 }
 #totalService .flexR li a p:before {
  width: 100%;
 }
 #totalService .flexR li a p:after {
  left: calc(100% - 10px);
  opacity: 1;
 }
 #totalService .flexR li p:before, #totalService .flexR li p:after {
  height: 1px;
 }
}
/* about
--------------------------------------------------------------------------------*/
#about {
 position: relative;
 background-color: #f3f0ea;
 padding-top: 0;
 padding-bottom: 0;
}
#about:before {
 content: "";
 position: absolute;
 left: 0;
 top: 0;
 width: 100%;
 height: 100%;
 background-image: url(../../images/top/about_bg_lattice.png);
 background-repeat: repeat;
 background-position: center top;
 background-size: 105px;
 z-index: 2;
}
#about .inner {
 position: relative;
 z-index: 10;
}
#about #aboutBg {
 color: #fff;
 text-align: center;
 padding-top: 80px;
 padding-bottom: 80px;
 background-image: url(../../images/top/about_bg.jpg);
 background-repeat: no-repeat;
 background-position: center center;
 background-size: cover;
}
#about #aboutBg .inner {}
#about h2 {}
#about h2 + p {}
#about .aboutNav {
 margin-top: 50px;
 /* common */
 border-top: 0px solid #ddd;
 padding-top: 0px;
 padding-bottom: 0px;
}
@media all and (min-width : 841px) {}
@media screen and (min-width : 641px) and (max-width : 840px) {}
@media screen and (max-width : 640px) {
 #about {}
 #about .inner {}
 #about #aboutBg {
  padding-top: 50px;
  padding-bottom: 40px;
 }
 #about #aboutBg .inner {}
 #about h2 {}
 #about h2 + p {}
 #about .aboutNav {
  margin-top: 25px;
 }
}
/* about_voice
--------------------------------------------------------------------------------*/
#about_voice {
 padding-top: 80px;
 padding-bottom: 80px;
 background-image: url(../../images/top/voice_bg.png);
 background-repeat: no-repeat;
 background-position: center top;
 background-size: contain;
}
#about_voice .inner {}
#about_voice h3 {
 width: 50%;
 max-width: 225px;
 margin-left: auto;
 margin-right: auto;
 margin-bottom: 40px;
}
@media all and (min-width : 841px) {}
@media screen and (min-width : 641px) and (max-width : 840px) {
 #about_voice {
  background-image: url(../../images/top/sp/voice_bg_sp.png);
  background-size: 115%;
 }
}
@media screen and (max-width : 640px) {
 #about_voice {
  background-image: url(../../images/top/sp/voice_bg_sp.png);
  padding-top: 40px;
  padding-bottom: 40px;
  background-size: 170%;
 }
 #about_voice .inner {}
 #about_voice h3 {}
}
/* about_voice .slider
--------------------------------------------------------------------------------*/
#about_voice .slider {
 width: 90%;
 margin-left: auto;
 margin-right: auto;
}
#about_voice .slider .slide {
 /*
 margin-left: 10px;
 margin-right: 10px;
 max-width: 380px;
 width: 30%;
	*/
 padding-top: 30px;
 padding-right: 30px;
 padding-left: 30px;
 padding-bottom: 15px;
 background-color: #fff;
 border-radius: 20px;
 -webkit-border-radius: 20px;
 -moz-border-radius: 20px;
}
#about_voice .slider .slick-slide {
 padding-left: 10px;
 padding-right: 10px;
}
/**/
.voice-month {
 font-weight: bold;
 color: #fff;
 letter-spacing: 0.05em;
 background-color: #78aa19;
 border-radius: 20px;
 -webkit-border-radius: 20px;
 -moz-border-radius: 20px;
 text-align: center;
}
.voice-name {
 position: relative;
 text-align: center;
 padding-top: 8px;
 padding-bottom: 8px;
 margin-bottom: 15px;
}
.voice-name:before {
 content: "";
 position: absolute;
 left: 0;
 right: 0;
 bottom: 0;
 margin: auto;
 width: 180px;
 height: 1px;
 background-color: #ccc;
}
.voice-title {
 /* 20px */
 font-size: 1.25em;
 line-height: 1.6;
}
.voice-comment {
 margin-top: 10px;
 /* 文字数リーダー */
 display: -webkit-box;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 3;
 overflow: hidden;
}
@media all and (min-width : 841px) {}
@media screen and (min-width : 641px) and (max-width : 840px) {}
@media screen and (max-width : 640px) {
 #about_voice .slider {
  width: 100%;
 }
}
/* about_voice .slider
--------------------------------------------------------------------------------*/
#about_voice .slider .slide .arrow_btn_green {
 display: block;
 width: 160px;
 margin-left: auto;
 margin-right: 0;
 padding-left: 0;
}
#about_voice .slider .slide .arrow_btn_green a {
 display: block;
 color: inherit;
 font-weight: bold;
 text-decoration: none;
 width: 160px;
 margin-top: 10px;
 margin-left: auto;
 margin-right: 0;
 text-align: center;
}
/* slick */
#about_voice .slick-arrow {
 background-color: #fff;
 width: 60px;
 height: 60px;
 border-radius: 60px;
 -webkit-border-radius: 60px;
 -moz-border-radius: 60px;
 z-index: 1000;
}
#about_voice .slick-arrow:before, #about_voice .slick-arrow:after {
 content: "" !important;
 position: absolute;
 top: 0;
 bottom: 0;
 left: 0;
 right: 0;
 margin: auto;
}
/* next */
#about_voice .slick-next {
 left: -60px;
}
#about_voice .slick-next::before {
 width: 12px;
 height: 12px;
 -webkit-border-radius: 25%;
 border-radius: 25%;
}
#about_voice .slick-next::after {
 right: -10px;
 width: 20px;
 height: 20px;
 border-bottom: 1px solid #666;
 border-left: 1px solid #666;
 -webkit-transform: rotate(45deg);
 transform: rotate(45deg);
}
/* prev */
#about_voice .slick-prev {
 right: -60px;
 left: auto;
}
#about_voice .slick-prev::before {
 width: 12px;
 height: 12px;
 -webkit-border-radius: 25%;
 border-radius: 25%;
}
#about_voice .slick-prev::after {
 left: -10px;
 width: 20px;
 height: 20px;
 border-top: 1px solid #666;
 border-right: 1px solid #666;
 -webkit-transform: rotate(45deg);
 transform: rotate(45deg);
}
/* slick-dots */
#about_voice .slider {
 margin-bottom: 40px;
}
#about_voice .slick-dots {
 bottom: -40px;
}
#about_voice .slick-dots, #about_voice .slick-dots * {
 font-size: 1em !important;
}
#about_voice .slick-dots li button:before {}
#about_voice .slick-dots li button:after {}
#about_voice .slick-dots li button:before {
 content: "●";
 font-size: 12px;
}
#about_voice .slick-dots li.slick-active button:before {
 color: #78aa19;
}
#about_voice .slick-dots li button:after {}
@media all and (min-width : 841px) {
 #about_voice .slick-arrow, #about_voice .slick-arrow:before, #about_voice .slick-arrow:after {
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  transition: 0.3s;
 }
 #about_voice .slick-arrow:hover {
  /* グレー
  background-color: rgba(0, 0, 0, 0.5) !important;
		*/
  background-color: #78aa19 !important;
 }
 #about_voice .slick-next:hover, #about_voice .slick-prev:hover {
  background-color: #fff;
  width: 60px;
  height: 60px;
  border-radius: 60px;
  -webkit-border-radius: 60px;
  -moz-border-radius: 60px;
 }
 #about_voice .slick-next:hover::after {
  border-bottom: 1px solid #FFF;
  border-left: 1px solid #FFF;
 }
 #about_voice .slick-prev:hover::after {
  border-top: 1px solid #FFF;
  border-right: 1px solid #FFF;
 }
}
@media screen and (min-width : 641px) and (max-width : 840px) {
 /* slick */
 #about_voice .slick-arrow {
  width: 44px;
  height: 44px;
 }
 /* next */
 #about_voice .slick-next {
  left: -44px;
 }
 /* prev */
 #about_voice .slick-prev {
  right: -44px;
 }
}
@media screen and (max-width : 640px) {
 #about_voice .slick-arrow {
  display: none !important;
 }
}