@charset "UTF-8";
#header {
	opacity: 0;
	visibility: hidden;
	transition-delay: 0.8s;
}
#site-logo {
	transform: translateY(-150%);
	opacity: 0;
	visibility: hidden;
	transition: all 0.5s ease;
}
.is-showed #site-logo {
	transform: translateY(0);
	opacity: 1;
	visibility: visible;
}
/* #gnav ul li a {
	color: #ffffff;
}
#gnav ul li a:after {
	background-color: #ffffff;
} */
.is-load #header {
	opacity: 1;
	visibility: visible;
}
/* mv */
#mv {
    overflow: hidden;
    position: relative;
	height: 100vh;
    z-index: 10;
	opacity: 0;
	visibility: hidden;
	transition: all 0.5s ease-in;
	transition-delay: 0.8s;
	clip-path: polygon(0 0, 0% 0, 0% 100%, 0 100%);
}
.is-load #mv {
	opacity: 1;
	visibility: visible;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
#mv .cont {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 11;
}
#mv .mv-sliders {
	max-width: 75%;
	margin-left: auto;
	position: relative;
	z-index: 9;
}
#mv .mv-title {
	color: #403D3C;
    position: absolute;
    bottom: 40px;
    left: 40px;
    z-index: 10;
    transition: all 0.3s ease-in-out;
}
#mv .mv-title .ttl {
    font-size: 5vw;
    line-height: 1.1;
}
#mv .mv-title .sub {
    font-size: 1.8rem;
    line-height: 1.1;
    transition: all 0.3s ease-in-out;
    opacity: 0;
    transform: translateY(15px);
    transition-delay: 1.5s;
}
#mv.on .mv-title .sub {
    transform: translateY(0);
    opacity: 1;
}
#mv .mv-text {
	color: #403D3C;
    position: absolute;
    top: 30%;
    left: 3%;
    z-index: 10;
    opacity: 0;
    visibility: hidden;
    transition: all 1s ease-in-out;
    transition-delay: 2s;
}
#mv.on .mv-text {
    opacity: 1;
    visibility: visible;
}
#mv .mv-text .jp {
	font-size: 1.8rem;
	line-height: 1.7;
	margin-bottom: 20px;
}
#mv .mv-text .en {
	font-size: 1.6rem;
	line-height: 1.5;
}
#mv .image {
    background: #fff;
    position: relative;
	height: calc(100vh - 7.2vw);
}
#mv .image img {
	height: 100%;
	object-fit: cover;
}
#mv .slider-button {
	color: #000;
	margin-top: 20px;
	display: flex;
	gap: 15px;
	justify-content: flex-end;
	align-items: center;
	padding: 0 40px;
}
#mv .slider-button .per {
	font-size: 1.4rem;
	letter-spacing: 0.02em;
}
#mv .slider-button .per .cur {
	transition: all 0.5s linear;
}
#mv .slider-button .btn-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 15px;
}
#mv .slider-button .btn-list .item {
	background: url(../imgs/common/arrow_black.png) no-repeat center center / 10px auto;
	cursor: pointer;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid #000;
	transition: all 0.3s ease-in;
}
#mv .slider-button .btn-list .item-prev {
	transform: rotate(180deg);
}
#mv .slider-button .btn-list .item:hover {
	opacity: 0.7;
}
@media screen and (max-width: 767px) {
	#site-logo { display: none; }
	#mv {
		height: auto;
	}
    #mv .cont {
		display: flex;
		flex-direction: column;
		padding: 30px 0 0 0;
		position: relative;
		height: auto;
	}
    #mv .mv-title .ttl {
		font-size: 10.43vw;
		letter-spacing: 0.1em;
	}
    #mv .mv-title .sub {
        font-size: 1.6rem;
        letter-spacing: 0.1em;
    }
	#mv .mv-title {
		position: relative;
		margin-top: auto;
		transform: translateY(20%);
		display: flex;
		flex-direction: column-reverse;
		bottom: 0;
		left: 5px;
	}
	#mv .mv-text {
		position: relative;
		top: 0;
		left: 0;
		padding: 0 0 0 25%;
		transition-delay: 1s;
		margin: 0 0 30px;
	}
	#mv .mv-sliders {
		max-width: 100%;
	}
	#mv .image {
		height: calc(50vh - 130px);
		height: auto;
	}
	#mv .image img {
		height: 100%;
		object-fit: cover;
		object-position: center bottom;
	}
	#mv .slider-button {
		padding: 0 15px;
		margin: 20px 0;
	}
}

/* merit */
#merit ul {
	display: flex;
	justify-content: center;
	padding: 0;
	position: relative;
	z-index: 0;
}
#merit ul li {
	padding: 80px 60px;
	position: relative;
	width: 25%;
}
#merit ul span {
	display: block;
}
#merit ul span.en {
	color: #237553;
	font-size: 3.2rem;
	font-weight: 300;
	margin-bottom: 10px;
}
#merit ul span.jp {
	font-size: 1.6rem;
	line-height: 1.7;
	text-align: left;
}
#merit .lines-list {
	position: absolute;
	width: 100%;
	height: 100%;
	z-index: -1;
}
#merit .lines-list .item {
	position: absolute;
	left: 25%;
	bottom: 0;
	width: 1px;
	height: calc(100% + 100vh);
}
#merit .lines-list .item:nth-child(2) { left: 50% }
#merit .lines-list .item:nth-child(3) { left: 75% }
#merit .lines-list .item-h { 
	top: 0;
	width: 100%;
	height: 1px;
	left: 0;
}
#merit .lines-list .item-h:last-child { bottom: 0; top: auto; }
.is-load #merit .lines-list .item .line-v {
	height: 100%;
}

@media screen and (min-width:768px) and (max-width:1200px){
#merit ul li {
    padding: 80px 30px;
    width: 25%;
}
  #merit ul span.en {
    font-size: 2.6rem;
}
  #merit ul span.jp {
    font-size: 1.4rem;
    line-height: 1.6;
}
}

@media screen and (max-width: 767px){
	#merit ul {
		flex-wrap: wrap;
	}
	#merit ul li {
		width: 50%;
		padding: 20px 15px;
	}
	#merit ul li > .item-h {
		position: absolute;
		height: 1px;
		bottom: 0;
		top: auto;
		width: 100vw;
		left: auto;
		right: 0;
	}
	#merit ul li:not(:last-child):after {
		height: 1px;
		width: 100px;
		margin: auto;
		top: 100%;
		left: 0;
		right: 0;
	}
	#merit ul span.en {
		font-size: 1.6rem;
	}
	#merit ul span.jp {
		font-size: 1rem;
	}
	#merit .lines-list .item:nth-child(3),
	#merit .lines-list .item:nth-child(1) {
		/* height: calc(100vh + 30px); */
		height: calc(100% + 100vh + 130px);
		bottom: 100%;
	}
	#merit .lines-list .item:nth-child(2) {
		height: calc(100% + 100vh + 130px);
	}
	#merit .line-h,
	#merit .lines-list .item .line-v {
		background: rgba(64,61,60,0.1);
	}	
}

/* section common */
.sec-head {
	font-size: 8rem;
	line-height: 1;
	margin-bottom: 40px;
}
.sec-text {
	line-height: 2;
	letter-spacing: 0.1em;
}
.sec-link {
	display: inline-block;
	padding: 0 15px;
	position: relative;
}
.sec-link:before {
	background-color: #251e1c;
	content: "";
	display: inline-block;
	height: 2px;
	width: 50px;
	position: absolute;
	right: calc(100% + 0px);
	top: 50%;
	vertical-align: middle;
	transition: all ease 0.25s;
}
.sec-link:hover:before {
	width: 0;
}
.sec-link:after {
	background-color: #251e1c;
	border-radius: 3px;
	content: "";
	display: inline-block;
	height: 6px;
	width: 6px;
	position: absolute;
	left: 0;
	top: calc(50% - 2px);
	vertical-align: middle;
	opacity: 0;
	transform: scale(0);
	transition: all 0.25s ease 0.15s;
}
.sec-link:hover:after {
	opacity: 1;
	transform: scale(1);
}
@media screen and (max-width: 767px){
	.sec-head {
		font-size: 4rem;
		line-height: 1;
		margin-bottom: 20px;
	}
	.sec-text {
		font-size: 1.3rem;
		letter-spacing: 0;
	}
}

/* section information */
.information {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: calc(20% - 40px);
	padding: 100px 40px 280px;
}
.information .news {
	width: 50%;
}
.information .ttl {
	font-size: 2rem;
}
.information .news {
	display: grid;
	grid-template-columns: auto;
	gap: 40px;
}
.information .news-item {
	font-size: 1.4rem;
	line-height: 1.5;
	letter-spacing: 0.02em;
	padding: 0 0 20px;
	border-bottom: 1px solid rgba(64,61,60,0.1);
}
.information .news-item .dates {
	display: inline-block;
	margin: 0 0 5px;
	color: #949683;
	font-size: 86%;
}
@media screen and (max-width: 767px){
	.information {
		justify-content: flex-start;
		gap: 30px;
		padding: 40px 15px 126px;
	}
	.information .news {
		width: 100%;
		padding-left: 30px;
		gap: 20px;
	}
}

/* section position */
.position {
	color: #fff;
	padding: 200px 0;
	position: relative;
	z-index: 0;
}
.position .inner {
	max-width: 1040px;
}
.position .sec-head {
	color: #403D3C;
	position: absolute;
	left: 40px;
	top: 0;
	transform: translateY(-83%);
	font-size: 8.356vw;
	line-height: 1;
}
.position .sec-head .ml {
	margin-left: 10rem;
}
.position .block {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding: 0 40px;
}
.position .block + .block {
	margin-top: 100px;
}
.position .block .block-col {
	width: 50%;
}
.position .block .cont {
	padding-left: 80px;
}
.position .block .ttl {
	font-size: 2rem;
	line-height: 1;
	letter-spacing: 0;
	margin: 0 0 15px;
}
.position .block .ttl .large {
	color: #63A589;
	display: block;
	font-size: 400%;
}
.position .block .sub {
	font-size: 2.4rem;
	letter-spacing: 0.02em;
	line-height: 1.5;
	margin: 0 0 20px;
}
.position .block .txt {
	padding-top: 40px;
	border-top: 1px solid rgba(255,255,255,0.1);
	font-size: 1.4rem;
	letter-spacing: 0.02em;
	line-height: 2;
}
.position .block .img {
	width: calc(100% + (100vw - 1040px)/2);
	max-width: 680px;
	margin-left: calc(-1*(680px - 100%));
}
.position .block-south .block-left {
	order: 2;
}
.position .block-south .cont {
	padding-left: 0;
	padding-right: 80px;
}
.position .block-south .ttl .large {
	color: #CEA387;
}
.position .block-south .img {
	max-width: 566px;
	margin-left: 0;
}
@media screen and (max-width: 1500px){
	.position .block .img {
		width: calc(100% + (1500px - 1040px)/2);
	}
}
@media screen and (max-width: 767px){
	.position {
		padding: 100px 0;
	}
	.position .sec-head {
		left: 15px;
		font-size: 16.356vw;
	}
	.position .block {
		padding: 0;
	}
	.position .block .block-col {
		width: 100%;
	}
	.position .block .cont {
		padding: 0;
		margin-top: 30px;
	}
	.position .block .img {
		width: 100%;
		margin: 0 !important;
		max-width: 100%;
	}
	.position .block-south .block-left { order: 0; }
	.position .block .ttl {
		font-size: 1.6rem;
	}
	.position .block .ttl .large {
		font-size: 335%;
	}
	.position .block .sub {
		font-size: 2rem;
	}
	.position .block .txt { padding-top: 20px; }
}

/* section categories */
.categories {
	padding: 150px 0 200px;
}
.box-categories {
	position: relative;
	z-index: 0;
	margin-bottom: 40px;
}
.categories .inner {
	max-width: 1130px;
}
.categories .sec-head {
	text-align: center;
	margin: 0 0 80px;
}
.categories.ttl-fixed .sec-head > span {
	position: fixed;
	min-width: 1200px;
	width: 100%;
	left: 0;
	z-index: 100;
}
.categories.ttl-bottom .sec-head > span {
	position: absolute;
	width: 100%;
	left: 0;
	top: auto !important;
	bottom: 0;
}
.categories .block {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
.categories .block .img {
	width: 50%;
}
.categories .block .cont {
	width: 50%;
	padding-left: 60px;
}
.categories .block .cont .txt {
	font-size: 1.6rem;
	line-height: 2;
	letter-spacing: 0.02em;
}
.categories .block-02 {
	margin-top: 355px;
	align-items: flex-end;
	padding-bottom: 120px;
}
.categories .block .img-large {
	width: 60%;
}
.categories .block .img-large figure {
	width: calc(100% + (100vw - 1130px)/2 - 8px);
	margin-left: calc(-1*(100vw - 1130px)/2);
}
.categories .block .img-small {
	order: 2;
	width: 40%;
	padding-left: 20%;
	transform: translateY(-100%);
}
.categories .block .img-small figure {
	width: calc(100% + (100vw - 1130px)/2 - 8px);
}
.categories .lines-ani {
	margin: 0 0 160px;
}
.block-category {
	padding: 160px 0 0;
	position: relative;
	overflow: hidden;
	z-index: 0;
}
.cate-box {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.cate-box .b-image {
	width: 48.7%;
	position: relative;
}
.cate-box .b-cont {
	width: 38.5%;
}
.cate-box  .img-list {
	position: relative;
	z-index: 0;
}
.cate-box.is_start .img-list {
	position: fixed;
}
.cate-box.is_bottom .img-list {
	position: absolute;
	top: auto !important;
	left: 0 !important;
	bottom: 0;
}
.cate-box.is_start .img-list .item:first-child,
.cate-box .img-list .item {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	opacity: 0;
	visibility: hidden;
	transition: all 0.5s linear;
}
.cate-box .img-list .item:first-child {
	opacity: 1;
	visibility: visible;
}
.cate-box.is_bottom .img-list .item:last-child,
.cate-box .img-list .is-active {
	opacity: 1;
	visibility: visible;
	position: relative;
}
.cate-box .cont-list .item {
	border-bottom: 1px solid rgba(64,61,60,0.1);
	padding: 100px 0;
}
.cate-box .cont-list .item:first-child {
	padding-top: 0;
}
.cate-box .cont-list .item .ttl {
	color: #237553;
	font-size: 3.2rem;
	line-height: 1;
	margin: 0 0 40px;
}
.cate-box .cont-list .item .txt {
	font-size: 1.6rem;
	line-height: 2;
	letter-spacing: 0.02em;
	margin: 0 0 40px;
}
.cate-box .cont-list .item .txt .capt {
	font-size: 87.5%;
	line-height: 1.5;
	display: block;
	margin-top: 10px;
}
.cate-box .button {
	line-height: 0;
}
@media screen and (max-width: 1500px){
	.categories .block .img-small figure {
		width: calc(100% + (1500px - 1130px)/2);
	}
	.categories .block .img-large figure {
		width: calc(100% + (1500px - 1130px)/2 - 8px);
		margin-left: calc(-1*(1500px - 1130px)/2);
	}
}
@media screen and (max-width: 767px) {
	.categories {
		padding: 100px 0;
	}
	.box-categories {
		margin-bottom: 30px;
	}
	.categories .block .img {
		width: 80%;
		margin: 0 0 20px;
	}
	.categories .block .cont {
		width: 100%;
		padding-left: 0;
	}
	.categories .block .img-small {
		order: 0;
		width: calc(100% + 15px);
		padding-left: 52%;
		transform: translateY(0);
		margin-right: -15px;
	}
	.categories .block .img-large {
		width: calc(100% - 30px);
		margin-top: 80px;
	}
	.categories .block-02 {
		margin-top: 40px;
		padding-bottom: 60px;
	}
	.categories .block .img-small figure {
		width: 100%;
	}
	.categories .block .img-small figure .img-cap {
		top: 0;
		bottom: auto;
		text-align: right;
	}
	.categories .block .img-large figure {
		width: calc(100% + 15px);
		margin-left: -15px;
	}
	.categories.ttl-fixed .sec-head > span {
		min-width: inherit;
	}
	.cate-box .b-image {
		display: none;
	}
	.cate-box .cont-list .item {
		padding: 40px 0;
	}
	.cate-box .b-cont {
		width: 100%;
	}
	.cate-box .b-cont .img {
		margin: 0 0 30px;
	}
	.cate-box .page-btn {
		max-width: 100%;
	}
	.cate-box .cont-list .item .ttl {
		margin: 0 0 20px;
	}
	.cate-box .cont-list .item .txt {
		font-size: 1.4rem;
		margin: 0 0 20px;
	}
}

/* section map */
.map {
	position: relative;
	padding-left: 37.45%;
}
.map .info .sec-head {
	font-size: 6.4rem;
	margin-bottom: 0 !important;
	position: absolute;
	right: 62.55%;
	text-align: left;
	width: 37.45%;
	max-width: 455px;
	top: 50%;
	transform: translateY(-50%);
  padding-left: 10px;
}
.map .g-map {
	border-left: 1px solid rgba(64,61,60,0.1);
	border-top: 1px solid rgba(64,61,60,0.1);
}
.map .g-map .tab-cont .cus-map {
	height: 640px;
	width: 100%;
}
.map .tab-box {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
}
.map .tab-box .item {
	color: #403D3C;
	cursor: pointer;
	text-align: center;
	padding: 20px 15px;
	transition: all 0.3s ease;
}
.map .tab-box .item:hover {
	opacity: 0.7;
}
.map .tab-box .item.is-active {
	pointer-events: none;
	background: #403D3C;
	color: #fff;
}
.map .tab-box .item .ttl {
	font-size: 3.2rem;
	line-height: 1;
	letter-spacing: 0;
}
.map .tab-cont {
	position: relative;
	z-index: 0;
	overflow: hidden;
}
.map .tab-cont .item {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
}
.map .tab-cont .is-active {
	position: relative;
	opacity: 1;
	visibility: visible;
}
@media screen and (max-width: 767px){
	.map {
		padding-left: 0;
	}
	.map .tab-box .item {
		padding: 18px 15px;
	}
	.map .tab-box .item .ttl {
		font-size: 2rem;
	}
	.map .g-map { border-left: none; }
	.map .g-map .tab-cont .cus-map {
		height: 480px;
	}
	.map .info .sec-head {
		font-size: 3.2rem;
		position: relative;
		right: 0;
		width: 100%;
		max-width: 100%;
		top: 0;
		transform: translateY(0);
		padding: 0 20px 20px;
	}
	.map .line-h { display: none; }
}
/*20250724add*/
.dinb {
  display: inline-block;
}
.map .info .info_inner {
  font-size: 1.6rem;
  margin-top: 20px;
  line-height: 1.6;
}
.map .info .info_inner p {
    margin-top: 20px;
}
@media screen and (min-width:768px) and (max-width:1009px){
  .position .block .img {
	margin-left: calc(-1*(580px - 100%));
}
  .position .block.block-south .img {
	margin-left: calc(-1*(370px - 100%));
}
  .position .block .ttl .large {
    font-size: 350%;
}
  .categories.ttl-fixed .sec-head > span {
	min-width: 768px;
}
  .map {
	padding-left: 20%;
}
  .map .info .info_inner {
  font-size: 1.2rem;
  width: 40%;
}
  .map .info .sec-head {
    font-size: 5.4rem;
    right: 60.55%;
}
}