/*
Theme Name: Genova Template
File: top.css
Theme Author: Genova Design
Author URI: https://genova.co.jp/
Description: Description: This file is reserved for the top-page css
Version: 1.0
*/
/*--------------------------------------
	mainimage
--------------------------------------*/

#mainimage img {
	width: 100%;
}
#mainimage h1 {
	display: none;
}
.home #wrapper {
	padding-top: 100vh;
}

@media screen and (max-width: 767px) {
.home #wrapper {
	padding-top: 175vw;
}

}
/*--------------------------------------
	key
--------------------------------------*/
#key {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
}
#key p {
	margin-bottom: 0;
}
#key .key-visual {
	background: url(../img/top/kv_key.jpg) no-repeat top center;
	background-size: cover;
	height: 100vh;
}

#key .catch-txt {
	color: #268D50;
	font-size:1.27vw;
	line-height: 1.8;
	text-align: center;
	position: absolute;
	font-weight: 700;
	margin-bottom: 0;
}
#key .catch-1 {
	top: 28vw;
	left: 1vw;
	width: 14vw;
}
#key .catch-2 {
	top: 44vw;
	left: 24vw;
	width: 10vw;
}
#key .catch-3 {
    top: 26vw;
    right: 6.5vw;
	width: 17vw;
}

@media screen and (max-width: 1499px) {
#key .catch-txt {
    font-size: 1.32vw;
    line-height: 2;
}
#key .catch-3 {
	top:25.5vw;
}
#key .catch-2 {
	top: 44.3vw;
}
}

@media screen and (max-width: 767px) {
#key .key-visual {
	background: url(../img/top/key_sp.jpg) no-repeat top center;
	background-size: cover;
	height: 175vw;
}
#key .catch-txt {
	font-size:3.4vw;
	letter-spacing: 0.01em;
	line-height: 1.7;}
#key .catch-1 {
        width: 42vw;
        top: 147vw;
        left: -5vw;
}
#key .catch-2 {width: 29vw;top: 30vw;height: 14vw;left: 17vw;}
#key .catch-3 {
	right: 2vw;
	width: 45vw;
	top: 126vw;
}
}
.home .elementor-section.elementor-section-boxed > .elementor-container {
	max-width: 100%;
}
.home #main {
	position: relative;
	z-index: 3;
}
.home #content {
	position: relative;
	padding-top: 115px;
}
.home #content::before {
	content: "";
	background: #3FAD64;
	background: linear-gradient(100deg, #3fad64 0%, #1f8b85 100%);
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1912px;
	opacity: .9;


}
.home #content::after {
	content: "";
	background: url(../img/top/bg_caro.png);
	position: absolute;
	top: 1912px;
	bottom: 0;
	left: 0;
	right: 0;


}

@media screen and (max-width: 767px) {
.home #content {
	padding-top: 10vw;
}
.home #content::before {
	height: 395vw;
}
.home #content::after {
	top: 395vw;
}
}

@media screen and (max-width: 399px) {
.home #content::before {
	height: 460vw;
}
.home #content::after {
	top: 460vw;
}	
}
@media screen and (max-width: 345px) {

	#top-history h2 {
		font-size: 64px;
	}
.home #content::before {
	height: 560vw;
}
.home #content::after {
	top: 560vw;
}	
}



.post-box {
	position: relative;
	z-index: 2;
	max-width: 1080px;
	margin: 0 auto 84px;
	background: #FFFFFF;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	align-items: center;
}
.post-box .post-box__header {
	width: 180px;
	border-right: 1px solid #268D50;
	border-bottom: none;
	position: static;
	padding: 0;
}
.post-box .post-box__header h2 {
	font-size: 26px;
	font-weight: 700;
	text-transform: uppercase;
	color: #268D50;
	height: 81px;
	line-height: 80px;
}
.post-box .post-box__header .post-box__summary-link {
	position: absolute;
	top: 50%;
	right: 27px;
	border-radius: 5px;
	background: url(../img/top/bnr_bg01.jpg);
	line-height: 37px;
	text-align: center;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	width: 123px;
	border: 1px solid #fff;
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	justify-content: center;
	margin-top: -21px;
	letter-spacing: 0px;
}
.post-box .post-box__header .post-box__summary-link:hover {
	border-color: #268D50;
	color: #268D50;
	background: none;
}
.post-box .post-box__header .post-box__summary-link:hover::after {
	display: none;
}
.post-box .post-box__content {
	padding-left: 35px;
}
.post-box .post-box__content dl {
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	font-size: 15px;
	padding-left: 35px;
	align-items: center;
	padding: 0;
}
.post-box .post-box__content dl dt {
	color: #BEBEBE;
	font-size: 14px;
	margin-bottom: 0;
	font-weight: 500;
	margin-right: 22px;
}
.post-box .post-box__content dl dt .new-label {
    background: #268D50;
}
.post-box .post-box__content dl dd {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 433px;
    display: inline-block;
}
@media screen and (min-width: 767px) and (max-width: 999px) {
.post-box .post-box__content dl dd {
    max-width: 190px;
}
.post-box .post-box__content {
	padding-left: 20px;
}
}
@media screen and (max-width: 767px) {
.post-box {
	margin: 0 30px 16vw;
	display: block;
}
.post-box .post-box__header {
	width: auto;
	border-right: none;
	border-bottom: 1px solid #268D50;
	position: relative;
	padding: 0 20px;
}
.post-box .post-box__header h2 {
	font-size: 20px;
	height: 60px;
	line-height: 60px;
	text-align: left;
}
.post-box .post-box__header .post-box__summary-link {
	top: 14px;
	right: 14px;
	width: 90px;
	font-size: 11px;
	padding: 10px 0;
	margin-top: 0px;
	line-height: 1;
}
.post-box .post-box__header .post-box__summary-link:hover {
	border-color: #fff;
	color: #fff;
	background: url(../img/top/bnr_bg01.jpg);
}
.post-box .post-box__content {
	padding: 20px;
}
.post-box .post-box__content dl {
	display: block;
	font-size: 14px;
	padding-left: 35px;
	padding: 0;
	line-height: 24px;
}
.post-box .post-box__content dl dt {
	width: 100%;
	margin-bottom: 5px;
	margin-right: 0;
}
.post-box .post-box__content dl dd {
	max-width: 100%;
}
}
#top-message {
	position: relative;
	z-index: 2;
	padding-bottom: 126px;
}
#top-message .wrap {
	position: relative;
	z-index: 2;
	text-align: center;
	color: #fff;
}
#top-message .title-c {
	position: relative;
	margin-bottom: 42px;
	padding-top: 77px;
}
#top-message .title-c h2 {
	font-weight: 500;
	line-height: 1;
	font-size: 35px;
}
#top-message .title-c .tt__sub {
	font-size: 116px;
	line-height: 1;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	opacity: .3;
}
#top-message .text {
	font-size: 18px;
	line-height: 37px;
	  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
#top-message .text p {
	margin-bottom: 37px;
}

@media screen and (max-width: 767px) {
#top-message {
	padding: 0 30px 25vw;
}
#top-message .title-c {
	margin-bottom: 10vw;
	padding-top: 43px;
}
#top-message .title-c h2 {
	font-size: 28px;
}
#top-message .title-c .tt__sub {
	font-size: 65px;
	top: 0;
}
#top-message .text {
	font-size: 15px;
	line-height: 28px;
	text-align: left;
}
#top-message .text p {
	margin-bottom: 6vw;
}
}
#top-history {
	position: relative;
	z-index: 3;
}
#top-history::before {
	content: "";
	background: #fff;
	box-shadow: 0 3px 36px rgba(0, 0, 0, 0.16);
	position: absolute;
	top: 0;
	left: 0;
	right: 62px;
	bottom: 0;
}
#top-history h2 {
	font-size: 146px;
	line-height: 1;
	position: absolute;
	top: -27px;
	right: -111px;
	opacity: .5;
}
#top-history .wrap {
	padding-top: 114px;
	padding-bottom: 92px;
	position: relative;
	z-index: 2;
}
#top-history .box {
	width: 640px;
	position: relative;
	z-index: 2;
}
#top-history .box h3 {
	font-size: 34px;
	border-bottom: 1px solid #92C5A7;
	padding-bottom: 27px;
	margin-bottom: 26px;
	font-weight: 500;
}
#top-history .box .text {
	margin-bottom: 55px;
	font-size: 16px;
	line-height: 34px;
	  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
#top-history .photo__group {
	width: 374px;
	position: absolute;
	top: 94px;
	right: 12px;
}
#top-history .photo__group .photo-1 {
	/*height: 241px;*/
	width: 374px;
	margin-bottom: 20px;
}
#top-history .photo__group .photo-2 {
	/*height: 188px;*/
	margin-left: auto;
	width: 297px;
}

@media screen and (max-width: 767px) {
#top-history::before {
	top: 0;
	left: 20px;
	right: 20px;
	bottom: 0;
}
#top-history h2 {
	font-size: 65px;
	top: -8px;
	right: 20px;
	opacity: .25;
}
#top-history .wrap {
	padding: 31px 50px 10vw 50px;
}
#top-history .box {
	width: auto;
	margin-bottom: 15vw;
}
#top-history .box h3 {
	font-size: 28px;
	line-height: 40px;
	padding-bottom: 20px;
	margin-bottom: 20px;
}
#top-history .box .text {
	margin-bottom: 10vw;
	font-size: 15px;
	line-height: 28px;
}
#top-history .photo__group {
	width: 100%;
	position: relative;
	top: 0;
	right: 0;
}
#top-history .photo__group .photo-1 {
	/*height: 50vw;*/
	width: 100%;
	margin-bottom: 5vw;
}
#top-history .photo__group .photo-2 {
	/*height: 40vw;*/
	width: 80%;
}
}
#top-gallery {
	padding-top: 89px;
	padding-bottom: 42px;
	position: relative;
	z-index: 2;
}
#top-gallery .title {
	position: relative;
	text-align: center;
}
#top-gallery .title h2 {
	opacity: .8;
	line-height: 1;
	font-size: 116px;
	margin-bottom: 22px;
}
#top-gallery .title h2 a {
	color: transparent;
}
#top-gallery .title h3 {
	font-size: 30px;
	font-weight: 500;
	color: #268D50;
}

@media screen and (max-width: 767px) {
#top-gallery {
	padding-top: 20vw;
	padding-bottom: 7vw;
}
#top-gallery .title h2 {
	font-size: 65px;
	margin-bottom: 5px;
}
#top-gallery .title h3 {
	font-size: 28px;
}
}
.works__wrap {
	position: relative;
	z-index: 2;
	max-width: 1080px;
	margin: 0 auto 40px;
}
.works__wrap .works-box {
	margin-bottom: 0;
}
.works__wrap .works-box .works-box__header {
	display: none;
}
.works__wrap .works-box .works-box__content {
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	align-items: center;
	gap: 0 2%;
}
.works__wrap .works-box .works-box__content .works-item {
	width: 32%;
}
.works__wrap .works-box .works-box__content .works-item a {
	display: block;
}
.works__wrap .works-box .works-box__content .works-item a:hover img {
	-webkit-filter: blur(8px);
	filter: blur(8px);
}
.works__wrap .works-box .works-box__content .works-item a:hover span {
	opacity: 1;
}
.works__wrap .works-box .works-box__content .works-item .works-item__thumb {
	background-size: cover;
	background-position: center center;
	position: relative;
	height: 254px;
	background: rgba(0, 0, 0, 0.5);
	-webkit-clip-path: inset(0);
	        clip-path: inset(0);
	overflow: hidden;
}
.works__wrap .works-box .works-box__content .works-item .works-item__thumb img {
	-o-object-fit: cover;
	   object-fit: cover;
	width: 100% !important;
	height: 100% !important;
	position: absolute;
	top: 0px;
	left: 0px;
	right: 0px;
	bottom: 0px;
	transition: all 0.3s;
}
.works__wrap .works-box .works-box__content .works-item .works-item__info {
	text-align: center;
	padding-top: 22px;
}
.works__wrap .works-box .works-box__content .works-item .works-item__info .works-item__title {
	font-size: 23px;
	font-weight: 700;
	margin-bottom: 5px;
}
.works__wrap .works-box .works-box__content .works-item .works-item__info .works-item__date {
	font-weight: 700;
	color: #9F9F9F;
	font-size: 16px;
	letter-spacing: 2px;
}
.works__wrap .works-box .works-box__content .works-item .link {
	position: absolute;
	top: 50%;
	text-transform: uppercase;
	font-size: 18px;
	color: #fff;
	text-align: center;
	left: 0;
	right: 0;
}
.works__wrap .works-box .works-box__content .works-item .link span {
	display: inline-block;
	padding-right: 20px;
	position: relative;
	opacity: 0;
	transition: all .4s ease;

	font-family: "Manrope", sans-serif;
	font-optical-sizing: auto;
	font-weight: 500;
	font-style: normal;


}
.works__wrap .works-box .works-box__content .works-item .link span::before {
	content: "";
	background: url(../img/top/link_icon.png) no-repeat center;
	width: 12px;
	height: 24px;
	position: absolute;
	top: 0;
	right: 0;
}
.works__wrap .bnr__shared {
	margin-bottom: 0;
}

.works__wrap-btn {
	margin-bottom: 80px;
	position:relative;
	z-index: 3;
}

@media screen and (max-width: 767px) {
.works__wrap {
	margin: 0 20px 10vw;
}
.works__wrap .works-box {
	margin-bottom: 0;
}
.works__wrap .works-box .works-box__content {
	display: block;
	align-items: center;
	gap: 0;
}
.works__wrap .works-box .works-box__content .works-item {
	width: 100%;
}
	.works__wrap .works-box .works-box__content .works-item + .works-item {
		margin-top: 10vw;
	}
.works__wrap .works-box .works-box__content .works-item a {
	display: block;
}
.works__wrap .works-box .works-box__content .works-item a:hover img {
	-webkit-filter: blur(0px);
	filter: blur(0px);
}
.works__wrap .works-box .works-box__content .works-item a:hover span {
	opacity: 0;
}
.works__wrap .works-box .works-box__content .works-item .works-item__thumb {
	height: 60vw;
}
.works__wrap .works-box .works-box__content .works-item .works-item__info {
	padding-top: 20px;
}
.works__wrap .works-box .works-box__content .works-item .works-item__info .works-item__title {
	margin-bottom: 10px;
}
.works__wrap .works-box .works-box__content .works-item .link {
	display: none;
}
.works__wrap .bnr__shared {
	max-width: 300px;
}
.works__wrap-btn {
	margin-bottom: 10vw;
}
}
#top-about {
	position: relative;
	z-index: 2;
}
#top-about::before {
	content: "";
	background: #fff;
	position: absolute;
	top: 57px;
	left: 63px;
	bottom: 0;
	right: 0;
	box-shadow: 0 3px 36px rgba(0, 0, 0, 0.16);
}
#top-about .wrap {
	padding-top: 135px;
	padding-bottom: 96px;
	z-index: 2;
}
#top-about h2 {
	position: absolute;
	top: 0;
	opacity: .8;
	line-height: 1;
	font-size: 116px;
}
#top-about h3 {
	font-size: 30px;
	font-weight: 500;
	margin-bottom: 61px;
	position: relative;
	z-index: 2;
}
#top-about .row {
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	justify-content: space-between;
	position: relative;
	z-index: 2;
}
#top-about .row .info {
	width: 36%;
	margin-bottom: 50px;
}
#top-about .row .info dl {
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	line-height: 26px;
	padding: 0;
	justify-content: space-between;
	margin-bottom: -1px;
	font-size: 16px;
}
#top-about .row .info dl dt {
	width: 120px;
	border-bottom: 1px solid #278C50;
	font-weight: 700;
	color: #278C50;
	border-top: 1px solid #278C50;
	
}
#top-about .row .info dl dt,
#top-about .row .info dl dd {
	padding: 14px 0px;
}
#top-about .row .info dl dd {
	border-bottom: 1px solid #CECECE;
	border-top: 1px solid #CECECE;
	width: calc(100% - 120px);
}
#top-about .row .mmap {
	width: 59.3%;
	height: 418px;
}
#top-about .row .mmap iframe {
	width: 100%;
	height: 100%;
}
#top-about .row .bnr__group {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 36%;
}
#top-about .row .bnr__group .bnr__shared {
	width: 100%;
	margin-bottom: 0;
}
#top-about .row .bnr__group .bnr__shared + .bnr__shared {
	margin-top: 12px;
}

@media screen and (max-width: 767px) {
#top-about {
	margin-bottom: 0;
}
#top-about::before {
	top: 36px;
	left: 20px;
	bottom: 0;
	right: 20px;
}
#top-about .wrap {
	padding: 75px 40px 10vw;
}
#top-about h2 {
	font-size: 65px;
}
#top-about h3 {
	font-size: 28px;
	margin-bottom: 5vw;
	line-height: 40px;
}
#top-about .row {
	display: block;
}
#top-about .row .info {
	width: 100%;
	margin-bottom: 10vw;
}
#top-about .row .info dl {
	line-height: 24px;
	font-size: 15px;
	padding: 0;
}
#top-about .row .info dl dt {
	width: 74px;
	font-size: 15px;
}
	
#top-about .row .info dl dt,
#top-about .row .info dl dd {
	padding: 14px 0px;
}
	#top-about .row .info dl dd {
		width: calc(100% - 74px);
	}
#top-about .row .mmap {
	width: 100%;
	height: 70vw;
	margin-bottom: 10vw;
}
#top-about .row .bnr__group {
	position: relative;
	width: 100%;
	right: 0;
}
#top-about .row .bnr__group .bnr__shared {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}
#top-about .row .bnr__group .bnr__shared + .bnr__shared {
	margin-top: 2vw;
}
}

@media screen and (min-width: 768px) and (max-width: 1199px) {
	.works__wrap,
	#top-message .wrap,
	.post-box {
		margin-left: 20px;
		margin-right: 20px;
	}
	#top-history::before {
		right: 20px;
	}
	#top-history .wrap {
		padding-left: 20px;
		padding-right: 20px;
	}
	#top-history h2 {
		right: 20px;
	}
	#top-history .box {
		width: 50%;
	}
	#top-history .box h3 {
		line-height: 1.5;
	}
	#top-history .box h3 br.sp {
		display: block;
	}
	#top-history .photo__group {
		width: 43%;
		right: 35px;
	}
	#top-history .photo__group .photo-1 {
		width: 100%;
	}
	#top-history .photo__group .photo-2 {
		width: 80%;
	}
	
	#top-about::before {
		left: 20px;
	}
	#top-about .wrap {
		padding-left: 40px;
		padding-right: 40px;
	}
	#top-about .row .mmap {
		width: 49.3%;
	}
	#top-about .row .info,
	#top-about .row .bnr__group {
		width: 45%;
	}
	#top-about .row .info dl dt {
		width: 96px;
	}
	#top-about .row .info dl dd {
		width: calc(100% - 96px);
	}
	
}


@media only screen
and (min-device-width: 1024px)
and (max-device-width: 1366px)
and (-webkit-min-device-pixel-ratio: 2) {
	.home #wrapper {
		padding-top: 560px;
	}
}


@media only screen
and (min-device-width: 768px)
and (max-device-width: 1024px)
and (orientation: portrait)
and (-webkit-min-device-pixel-ratio: 2) {
#key .catch-txt {
	font-size: 1.36vw;
	        line-height: 1.6;
}
#key .key-visual {
    background: url(../img/top/kv_key_ipad.jpg) no-repeat top center;
    background-size: cover;
    height: 415px;
}

	
	.home #wrapper {
		padding-top: 414px;
	}
	
	#key .catch-1 {
		top: 28vw;
		left: -2vw;
		width: 19vw;
	}
	#key .catch-3 {
        top: 25vw;
        right: 3.5vw;
		width: 21vw;
	}
	#key .catch-2 {
		top: 44.5vw;
		left: 24vw;
	}
}

@media screen and (min-width: 1500px) and (max-width: 1599px) {
#key .key-visual {
    height: 88vh;
}

	
	.home #wrapper {
		padding-top: 88vh;
	}
}
@media screen and (min-width: 768px) and (max-width: 1499px) {
#key .key-visual {
    height: 54vw;
}

	
	.home #wrapper {
		padding-top: 54vw;
	}
}

@media screen and (min-width: 768px) and (max-height: 865px) {
	#key .key-visual {
		background: url(../img/top/kv_key.jpg) no-repeat 50% 12%;
		background-size: cover;
		height: 51vw;
	}
	.home #wrapper {
		padding-top: 51vw;
	}
	#key .catch-3 {
		top: 21vw;
	}
	#key .catch-2 {
		top: 40vw;
	}
	#key .catch-1 {
		top: 24vw;
	}
}






