@charset "utf-8";


/*メインイメージ*/
.mainimage{
	position: relative;
	background: url("../img/main02.jpg") no-repeat center/cover;
	height: 680px;
	overflow: hidden;
	
}
.mainimage .main_img02 {
}
.mainimage .main_img01 {
}
.mainimage .main_img01 img {
    height: 100%;
    width: auto;
    left: 70px;
    position: absolute;
}
.mainimage .main_text {
	position: absolute;
    right: 5%;
    top: 50%;
    max-width: 700px;
    width: 70%;
}
.mainimage-image {
    height:600px;
    width: auto;
	margin-bottom: 0;
	position: relative;
	overflow: hidden;
}
.mainimage-image img {
    height: 100%;
    width: auto;
    max-width: 1920px;
    max-height: 600px;
    margin: auto;
    position: absolute;
    top: -200%;
    left: -200%;
    right: -200%;
    bottom: -200%;
}
/*アニメーションNI*/
.main_img01 img{
    opacity: 0;
    transform: translateX(-260px);
    transition: 2s;
}
.main_img01.show img{
    opacity: 1;
    transform: translateX(0);
}

@media screen and (min-width:768px) and  (max-width: 1650px){
.mainimage-image {
    padding-bottom: 36%;
	height: auto;
}
}
@media (max-width: 1200px) and (min-width: 768px) {
	
	.mainimage{
height: 500px;
	}
.mainimage-image {
    padding-bottom: inherit;
}
}

@media screen and (max-width:767px) {
.mainimage {
    height: 300px;
}
}
.wave{
height:200px;/*何も表示されない場合は各波の親要素に高さを持たせましょう。*/
	position: absolute;
    height: 200px;
    bottom: 0;
    width: 100%;
}
canvas{
position: absolute;
bottom: 0;
left:0;
width: 100%;
}

/*ループスライダー*/
.loop_wrap{
}
.loop li {
 max-width: 100%;
    position: relative;
	overflow: hidden;
}
.loop a{
	position: absolute;
	left:0;
	right: 0;
	top:0;
	bottom: 0;
	margin: auto;
	transition: .5s;
}
.loop .text{
    visibility: hidden;
    transition: .5s;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    opacity: 0;
    font-size: 1.8vw;
    font-weight: 500;
    text-align: center;
    padding-top: 25%;
    color: #3B4043;
	text-shadow:1px 1px 0 #FFF, -1px -1px 0 #FFF,
              -1px 1px 0 #FFF, 1px -1px 0 #FFF,
              0px 1px 0 #FFF,  0-1px 0 #FFF,
              -1px 0 0 #FFF, 1px 0 0 #FFF;
	line-height: 1.3;
}
.loop .text.double{
	 padding-top: 18%;
}
.loop a:before{
	content: "";
	width:calc(100% - 50px);
	height: calc(100% - 50px);
	position: absolute;
	left:0;
	top:0;
	right:0;
	bottom:0;
	margin: auto;
	background: rgba(255,255,255,.5);
	transition: .5s;
	opacity: 0;
}
.loop a:hover:before{
	width:100%;
	height: 100%;
	opacity: 1;
}
.loop img{
	width: 100%;
    max-width: 366px;
}
.loop li:hover img{
	transform: scale(1.1);
	transition: .5s;
}
.loop li:hover .text{
	visibility: visible;
	display: block;
	opacity: 1;
}
.loop .slick-slide{
	padding:0 10px;
}
@media screen and (max-width:767px){
	.loop  .text{
		font-size:5vw;
	}
}


/*TOPページ*/

 h3.top_h3{
	font-size: 2.4rem;
	text-align:left;
	 padding:0;
	 margin:0 auto 5%;
	 line-height: 1.3;
	     background: none;
    border: none;
}
.top_section{
	margin:0 auto;
}
.section01{
	padding:0 0 90px;
	    background: url(../img/mission_bg.jpg) no-repeat center / cover;
margin-top:90px;
}
.section01 .h2_wrap {
    top: -40px;
}
.section01 .text-box{
	background-size: 184px 147px;
	box-sizing: border-box;
	padding:0;
	position: relative;
}
.section02{
	margin-top:90px;
	padding:90px 0;
	background: url("../img/business_bg.jpg") no-repeat center / cover;
}
.section02 .container{
	width: 900px;
	position: relative;
}
.section02 .text-box {
        max-width: 518px;
    background: rgba(255, 255, 255, .8);
    box-sizing: border-box;
    padding: 40px 60px 12px;
    position: absolute;
    right: -308px;
    top: 88px;
    z-index: 1;
}
.section02 .flex{
	margin-top:50px;
}
.section02 .flex-2 {
    max-width: 440px;
}

.section02 ul.ul01 {
    margin-left: 50px;
    margin-bottom: 40px;
}
.section03 {
background: url(../img/profile_bg.jpg) no-repeat center / cover;
	background-attachment: fixed;
	padding:90px 0;
	position: relative;
}
.section03:before{
	content: "";
	background: url(../img/profile_img01.png) no-repeat center / cover;
	width:100%;
	height: 100%;
	position: absolute;
	left:0;
	top:0;
	
}
.section03 .container {
    background:rgba(242,242,242,.6);
    padding: 5% 10%;
    box-sizing: border-box;
	position: relative;
	z-index: 1;
}
#Access{
	background: #81D1F2;
}
.googlemap.top_map {
    padding-bottom: 500px;
	filter: opacity(80%);
    -webkit-filter: opacity(80%);
	margin-bottom: 0;
}
.googlemap.top_map:before{
	content: "";
	
}
@media (min-width: 768px){/*PC Only*/
	.section02 .flex-2:nth-of-type(2n){
	margin-top:80px;
}
}
@media screen and (min-width:768px) and (max-width:1400px){
.section02 .text-box {
           right: 0;
        top: 0;
        position: relative;
}
}

@media screen and (max-width:767px) {
	.mainimage .main_img01 img {
    height: 100%;
    width: auto;
    position: absolute;
		left: -60px;
}
	.mainimage .main_text {
    top: 43%;
	}
	h2.top_h2 {
    font-size: 2.2rem;
    /* padding-top: 55px; */
    background-size: 30px;
		padding:18px 70px 10px 0;
	}
	.section01 .h2_wrap {
    top: -7px;
}
	.section03 .container,
	.section04 .container{
		padding:5%;
	}
	.section03 {
	 background-attachment: inherit;
		padding: 50px 0
}
	.section01 {
    margin-top: 20px;
		padding-bottom: 50px;
}
	.section02 {
    margin-top: 0;
    padding: 40px 0;
	}
	.section02 .text-box {
    position: relative;
    left: 0;
    top: 0;
    padding: 20px 30px 1px;
}
	.section02 .flex {
    margin-top: 30px;
}
	.section02 h3 {
    margin-left: 20px;
}
	.googlemap.top_map {
    padding-bottom: 250px;
	}
	.home h2:after {
    left: 0;
	}
}



/*下層ページ*/

/*ページタイトル*/
.h2_bg{
	background: #DEEAE0;
	text-align: center;
	position: relative;
	padding-top: 60px;
}
/*.h2_bg:after {
content: "";
    width: 450px;
    height: 100px;
    background: url(../img/h2_text.png) no-repeat left bottom/100% auto;
    position: absolute;
    left: 0;
    bottom: -15px;
    max-width: 70%;
}*/
.h2_bg .h2_bg_inner{
	max-width: 1000px;
	width: 96%;
	margin: 0 auto;
	padding: 40px 0;
    box-sizing: border-box;
}
.h2_bg h2{
	font-weight: 600;
	font-size: 3.2rem;
	margin-bottom: 0;
}
.h2_bg p {
    position: relative;
    z-index: 1;
}
@media screen and (max-width:767px) {
	.h2_bg {
		padding-top:0;
}
	.h2_bg .h2_bg_inner{
		width:80%!important;
	}
	.h2_bg h2 {
    font-size: 2.5rem;
}
	.h2_bg:after {
    bottom: -1.9vw;
}
	.h2_bg p {
    line-height: 1.4;
    font-size: 1.4rem;
}
}


/*サイトマップ*/
.section-sitemap01 ul li{
	margin-bottom: 0;
}
.section-sitemap01 ul.ul04 > li {
    margin: 0;
    border-bottom: 1px dotted #008DB2;
}
.section-sitemap01 ul{
	margin: 0 auto;
}
.section-sitemap01 .ul04 li.none:before{
	display: none;
}
.section-sitemap01 ul li a,
.section-sitemap01 span.non{
    padding: 1.5rem 2rem;
    display: block;
    text-decoration: none;
}
.section-sitemap01  ul.ul03 li a {
    padding: 1rem;
}
.section-sitemap01 .ul04 li:before {
    left: 2rem;
    top: 1.5em;
}
.section-sitemap01 ul.ul03 li a {
    padding-left: 1.5em;
}
.section-sitemap01 .ul03 li:before {
    top: 1.2em;
    border: none;
}

/*お問い合わせ*/
.section-contact {
    background: url(../img/contact01_bg.png) no-repeat right 10% bottom 10%/auto;
}
.section-thanks01{
    background: url(../img/contact01_bg.png) no-repeat center/auto;
}
@media screen and (max-width:767px) {
.section-thanks01 {
    background-size: auto 80%;
}
}

/*20240705追記　ニュース*/
.section_news {
    padding: 90px 0;
    background: rgba(242, 242, 242, .6);
}
.section_news .container {
    background: #fff;
    padding: 5% 10%;
    box-sizing: border-box;
}
.news_bg li {
    position: relative;
    line-height: 1.3;
}
.news_bg li.pdf a {
    background-image: url(../img/icon_pdf.png);
    background-repeat: no-repeat;
    background-position: right 13px center;
    padding: 1rem 4rem 1rem 0;
    background-size: 24px 24px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    text-decoration: none;
}
.news_bg span.day {
    padding-right: 1em;
    display: inline-block;
    vertical-align: top;
    width: 150px;
    flex: 0 1 150px;
}
.news_bg span.title {
    display: inline-block;
    flex: 1;
    width: calc(100% - 150px);
}
@media screen and (max-width: 767px) {
	    .news_bg li.pdf a {
        display: block;
    }
.news_bg  span.title {
        display: block;
        width: 100%;
    }
.news_bg  span.day {
        margin-bottom: 4px;
    }
}

.section02 h3{
	    -webkit-transform: skew(-25deg);
    transform: skew(-25deg);
	background: #B8CCD2;
	    box-sizing: border-box;
    padding: 10px 0 10px 50px;
}
.section02 h3 span{
	 -webkit-transform: skew(25deg);
    transform: skew(25deg);
	display: block;
}