@charset "UTF-8";

/* ---------------------------------------------------------------------- */
/* PC */
/* ---------------------------------------------------------------------- */
@media (min-width: 1001px) {

	/* header
  ---------------------------------------------------------------------- */
	#mainheader {
		width: 100%;
		z-index: 1000;
		position: fixed;
		top: 15px;
		left: 0;
		height: 85px;
		z-index: 9999;
		transition: background-color 0.3s, height 0.3s, top 0.3s;
	}

	#mainheader.scroll {
		width: 100%;
		top: 0;
		z-index: 1000;
		box-shadow: 0px 13px 10px -12px rgba(0, 0, 0, 0.1);
		background-color: #fff;
		height: 60px;
	}

	.open #mainheader {
		top: 15px;
	}

	#mainheader .mainheader__inr {
		display: flex;
		max-width: 1140px;
		height: 100%;
		padding: 0 20px 0 20px;
		justify-content: space-between;
		margin-right: auto;
		margin-left: auto;
		z-index: 9999;
		position: relative;
	}

	#mainheader .logo_wrap {
		flex: 0 1 230px;
		padding: 0 10px 0 0;
	}

	#mainheader .logo {
		height: 100%;
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	#mainheader .logo a {
		display: block;
		text-align: center;
		margin-right: auto;
		width: 100%;
		height: 100%;
		max-width: 250px;
		transition: none;
	}

	#mainheader .logo a img {
		width: auto;
		height: 100%;
		transform: rotate(0.0001deg);
	}

	#mainheader .default {
		display: block;
	}

	#mainheader .scroll {
		display: none;
	}

	#mainheader.scroll .default {
		display: none;
	}

	#mainheader.scroll .scroll {
		display: block;
	}

	.open #mainheader .default {
		display: none;
	}

	.open #mainheader .scroll {
		display: block;
	}

	/* hamburger
  ---------------------------------------------------------------------- */
	.hamburger {
		position: relative;
		margin-bottom: -2px;
		cursor: pointer;
		width: 40px;
	}

	.hamburger__inr {
		display: block;
		height: 22px;
		position: relative;
		font-size: 1.4rem;
	}

	.hamburger__inr span {
		display: block;
		width: 100%;
		height: 1px;
		position: relative;
		background-color: #fff;
		transition: ease all .5s;
	}

	header.scroll .hamburger__inr span {
		background-color: #000000;
	}

	.open .hamburger__inr span {
		background-color: #000000;
	}

	.hamburger__inr span:nth-child(1) {
		top: 0vw;
	}

	.hamburger__inr span:nth-child(2) {
		top: 10px;
	}

	.hamburger__inr span:nth-child(3) {
		top: 20px;
	}

	.open .hamburger__inr span:nth-child(1) {
		top: 10px;
		transform: rotate(25deg);
	}

	.open .hamburger__inr span:nth-child(2) {
		display: none;
	}

	.open .hamburger__inr span:nth-child(3) {
		top: 10px;
		transform: rotate(-25deg);
	}

	.hamburger__txt {
		color: #ffffff;
		line-height: 1.1;
		letter-spacing: 0;
		
		text-align: center;
	}

	.open .hamburger__txt {
		color: #000000;
	}

	header.scroll .hamburger__txt {
		color: #000000;
	}

	/* gnav
  ---------------------------------------------------------------------- */
	.gnav {
		flex: 1;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1.5%;
	}

	.gnav__list {
		flex: 1;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-end;
		gap: 6%;
		padding-right: 3%;
		color: #fff;
		line-height: 1.4;
		font-weight: 500;
	}

	#mainheader.scroll .gnav__list {
		color: #333333;
	}

	.open #mainheader .gnav__list {
		opacity: 0;
	}

	.gnav__btn_wrap {
		display: flex;
		height: 40px;
	}

	.gnav__btn,
	.gnav__btn_menu {
		color: #fff;
		width: 120px;
		display: flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
	}

	.gnav__btn {
		background-color: #45440A;
	}

	.gnav__btn_menu {
		width: 140px;
		position: relative;
		justify-content: flex-start;
		padding-left: 10px;
		background-color: #757D62;
		font-size: 1.5rem;
	}

	.gnav__btn_menu::before {
		content: "";
		background: url(../images/icon_language_pc.svg);
		background-size: contain;
		display: block;
		width: 17px;
		height: 17px;
		margin-right: 5px;
	}

	.gnav__btn_menu ul {
		position: absolute;
		z-index: 30;
		width: 100%;
		left: 0;
		top: 100%;
	}

	.gnav__btn_menu ul li {
		overflow: hidden;
		height: 0;
		transition: height 0.3s, background-color 0.3s;
		position: relative;
		color: #fff;
		font-size: 1.5rem;
		width: 100%;
		text-align: center;
		font-weight: 500;
	}

	.gnav__btn_menu ul li:hover {
		color: #333;
		background-color: #fff;
	}

	.gnav__btn_menu:hover ul li {
		width: 100%;
		height: 30px;
		border-bottom: 1px solid #fff;
	}

	.gnav__btn_menu ul li a {
		padding-left: 10px;
		display: flex;
		align-items: center;
		justify-content: flex-start;
		font-weight: bold;
		height: 30px;
	}

	.gnav__btn_menu ul li a::before {
		content: "";
		display: block;
		width: 17px;
		height: 17px;
		margin-right: 5px;
	}

	.gnav__btn_menu ul li a#en::before {
/*		background: url(../images/icon_en.svg);*/
		background-size: contain;
	}

	.gnav__btn_menu ul li a#zh::before {
/*		background: url(../images/icon_zh.svg);*/
		background-size: contain;
	}

	.scroll .gnav__btn_menu:hover ul li {
		color: #fff;
		background-color: #333;
		border-bottom: 1px solid #fff;
	}

	.scroll .gnav__btn_menu ul li:hover {
		color: #333;
		background-color: #fff;
	}

	/* fnav
  ---------------------------------------------------------------------- */
	#fnav {
		display: none;
		position: fixed;
		width: 100vw;
		height: 100vh;
		background: url(../images/bg_menu01.png) no-repeat,url(../images/bg_menu02.png) no-repeat;
		background-position: left top , right top 20px;
		background-size: 679px auto , 679px auto;
		background-color: #ffffff;
		top: 0;
		left: 0;
		overflow: auto;
	}

	.fnav__inr {
		display: flex;
		justify-content: center;
		width: 100%;
		height: 100%;
	}

	.fnav__wrap {
		display: flex;
		gap: 11vw;
		margin-right: -13vw;
		margin-top: 140px;
	}

	.fnav__list {
		column-count: 2;
		gap: 8vw;
	}

	.fnav__list li {
		font-size: 2rem;
		margin-bottom: 25px;
		font-weight: bold;
	}

	.fnav__list li span {
		display: block;
		font-size: 1.2rem;
		line-height: 1;
		font-weight: normal;
		letter-spacing: 0;
	}

	.fnav__list_sub {
		font-size: 1.7rem;
		font-weight: bold;
	}

	.fnav__list_sub li {
		margin-bottom: 10px;
	}

	/* footer
  ---------------------------------------------------------------------- */
	footer {
		padding: 95px 0 95px;
		color: #fff;
		background: linear-gradient(#4b5526 0%, #37420e 100%);
		
	}

	.footer__wrap {
		display: flex;
	}

	.footer__logo_wrap {
		width: 505px;
	}

	.footer__logo {
		width: 434px;
		margin-bottom: 20px;
	}

	.footer__address {
		letter-spacing: 0.05em;
		line-height: 1.5;
		text-align: left;
		font-style: normal;
	}

	.footer__address a {
		font-size: 2.2rem;
	}

	.footer__nav_wrap {
		width: 465px;
	}

	.footer__nav01 {
		display: flex;
		flex-wrap: wrap;
		font-size: 1.6rem;
		letter-spacing: 0.05em;
		font-weight: 500;
		gap: 20px 47px;
		margin-bottom: 43px;
	}

	.footer__nav02 {
		display: flex;
		flex-wrap: wrap;
		font-size: 1.4rem;
		letter-spacing: 0.05em;
		font-weight: 500;
		gap: 30px;
		margin-bottom: 48px;
	}

	footer .cbtn {
		width: 435px;
	}

	footer .cbtn span::after {
		right: -28px;
	}

	footer .cbtn:hover span::after {
		right: -33px;
	}
}

/* End @media (min-width: 1001px) */
/* ---------------------------------------------------------------------- */

/* ---------------------------------------------------------------------- */
/* SP */
/* ---------------------------------------------------------------------- */
@media (max-width: 1000px) {

	/* header
  ---------------------------------------------------------------------- */
	#mainheader {
		width: 100%;
		z-index: 1000;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 9999;
		transition: background-color 0.3s, height 0.3s, top 0.3s;
	}

	#mainheader.scroll {
		width: 100%;
		top: 0;
		z-index: 1000;
		box-shadow: 0px 13px 10px -12px rgba(0, 0, 0, 0.1);
		background-color: #fff;
	}

	#mainheader .mainheader__inr {
		display: flex;
		max-width: 1140px;
		height: 100%;
		padding: 2vw 3vw;
		align-items: flex-start;
		justify-content: space-between;
		margin-right: auto;
		margin-left: auto;
		z-index: 9999;
		position: relative;
	}

	#mainheader .logo_wrap {
		flex: 0 1 25vw;
		padding: 0 10px 0 0;
		max-width: 128px;
	}

	#mainheader .logo {
		height: 100%;
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	#mainheader .logo a {
		/*display: block;*/
		display: flex;
		text-align: center;
		margin-right: auto;
		width: 100%;
		height: 100%;
		max-width: 250px;
		transition: none;
	}

	#mainheader .logo a img {
		width: auto;
		/*height: 100%;*/
		transform: rotate(0.0001deg);
	}

	#mainheader .default {
		display: block;
	}

	#mainheader .scroll {
		display: none;
	}

	#mainheader.scroll .default {
		display: none;
	}

	#mainheader.scroll .scroll {
		display: block;
	}

	.open #mainheader .default {
		display: none;
	}

	.open #mainheader .scroll {
		display: block;
	}

	/* hamburger
---------------------------------------------------------------------- */
	.hamburger {
		position: relative;
		flex-shrink: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: space-between;
		flex: 1 0 12vw;
		max-width: 40px;
	}

	.hamburger__inr {
		display: block;
		position: relative;
		font-size: 1.4rem;
		width: 10vw;
		height: 4vw;
		max-width: 100%;
	}

	.hamburger__inr span {
		display: block;
		width: 100%;
		height: 1px;
		position: relative;
		background-color: #fff;
		transition: ease all .5s;
	}

	header.scroll .hamburger__inr span {
		background-color: #000000;
	}

	.open .hamburger__inr span {
		background-color: #000000;
	}

	.hamburger__inr span:nth-child(1) {
		top: 0vw;
	}

	.hamburger__inr span:nth-child(2) {
		top: min(2vw,12px);
	}

	.hamburger__inr span:nth-child(3) {
		top: min(4vw,22px);
	}

	.open .hamburger__inr span:nth-child(1) {
		top: 10px;
		transform: rotate(25deg);
	}

	.open .hamburger__inr span:nth-child(2) {
		display: none;
	}

	.open .hamburger__inr span:nth-child(3) {
		top: 10px;
		transform: rotate(-25deg);
	}

	.hamburger__txt {
		color: #ffffff;
		line-height: 1;
		letter-spacing: 0;
		font-size: 1.4rem;
		text-align: center;
	}

	.open .hamburger__txt {
		color: #000000;
	}

	header.scroll .hamburger__txt {
		color: #000000;
	}

	/* gnav
---------------------------------------------------------------------- */
	.gnav {
		flex: 1;
		display: flex;
		justify-content: flex-end;
		gap: 3%;
	}

	.gnav__list {
		display: none;
	}

	.gnav__btn_wrap {
		display: flex;
	}

	.gnav__btn,
	.gnav__btn_menu {
		color: #fff;
		font-size: min(3.5vw, 1.6rem);
		padding: 1vw 0;
		display: flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
	}

	.gnav__btn {
		background-color: #45440A;
		width: min(20vw, 120px);
	}

	.gnav__btn_menu {
		position: relative;
		background-color: #757D62;
		width: min(32vw, 150px);
		justify-content: flex-start;
		justify-content: flex-start;
		padding-left: min(2vw, 10px);
	}

	.gnav__btn_menu::before {
		content: "";
		background: url(../images/icon_language_pc.svg);
		background-size: contain;
		display: block;
		width: min(4vw,17px);
		height:  min(4vw,17px);
		margin-right: min(1vw,5px);
	}

	.gnav__btn_menu ul {
		position: absolute;
		z-index: 30;
		width: 100%;
		left: 0;
		top: 100%;
		display: none;
	}

	.gnav__btn_menu ul li {
		overflow: hidden;
		transition: height 0.3s, background-color 0.3s;
		position: relative;
		color: #fff;
		font-size: min(3.4vw, 1.6rem);
		width: 100%;
		text-align: center;
		font-weight: 500;
	}

	.gnav__btn_menu ul li:hover {
		color: #333;
		background-color: #fff;
	}

	.gnav__btn_menu ul li {
		width: 100%;
		border-bottom: 1px solid #fff;
	}

	.gnav__btn_menu ul li a {
		display: block;
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		font-weight: bold;
		justify-content: flex-start;
		padding:1vw 0 1vw min(1.5vw, 7px);
	}

	.gnav__btn_menu ul li a::before {
		content: "";
		display: block;
		width: min(4vw,17px);
		height:  min(4vw,17px);
		margin-right: min(1vw,5px);
	}

	.gnav__btn_menu ul li a#en::before {
/*		background: url(../images/icon_en.svg);*/
		background-size: contain;
	}

	.gnav__btn_menu ul li a#zh::before {
/*		background: url(../images/icon_zh.svg);*/
		background-size: contain;
	}

	.scroll .gnav__btn_menu ul li ,
	.open .gnav__btn_menu ul li {
		color: #fff;
		background-color: #333;
		border-bottom: 1px solid #fff;
	}

	.scroll .gnav__btn_menu ul li:hover ,
	.open .gnav__btn_menu ul li:hover {
		color: #333;
		background-color: #fff;
	}

	/* fnav
---------------------------------------------------------------------- */
	#fnav {
		display: none;
		position: fixed;
		width: 100vw;
		height: 100vh;
		background: url(../images/bg_menu01.png) no-repeat,url(../images/bg_menu02.png) no-repeat;
		background-position: left top , right bottom;
		background-size: 80% auto , 80% auto;
		background-color: #ffffff;
		top: 0;
		left: 0;
		overflow: auto;
	}

	.fnav__inr {
		display: flex;
		justify-content: center;
		width: 100%;
		padding: 140px 0 100px;
	}

	.fnav__list {
		column-count: 2;
		margin-bottom: 50px;
		gap: 8vw;
	}

	.fnav__list li {
		font-size: 2rem;
		margin-bottom: 25px;
		font-weight: bold;
	}

	.fnav__list li span {
		display: block;
		font-size: 1.2rem;
		line-height: 1;
		font-weight: normal;
		letter-spacing: 0;
	}

	.fnav__list_sub {
		font-size: 1.7rem;
		font-weight: bold;
		column-count: 2;
	}

	.fnav__list_sub li {
		margin-bottom: 10px;
/*		width: 50%;*/
	}

	/* footer
  ---------------------------------------------------------------------- */
	footer {
		padding: calc(100 / 750 * 100vw) 0 calc(430 / 750 * 100vw);
		color: #fff;
		background: linear-gradient(#4b5526 0%, #37420e 100%);
	}

	.footer__wrap nav {
		width: 100%;
	}

	.footer__logo_wrap {
		width: 100%;
	}

	.footer__logo {
		width: calc(540 / 750 * 100vw);
		margin: 0 auto calc(35 / 750 * 100vw);
	}

	.footer__logo img {
		width: 100%;
	}

	.footer__address {
		text-align: center;
		margin: 0 0 calc(35 / 750 * 100vw);
		font-size: max(13px, 2.9333333333vw);
	}

	.footer__address span {
		display: block;
		margin-bottom: calc(16 / 750 * 100vw);
		;
		font-size: max(13px, 3.8666666667vw);
		font-weight: bold;
		letter-spacing: 0.025em;
	}

	.footer__nav01 {
		display: none;
		font-size: max(13px, 4.2666666667vw);
		letter-spacing: 0.05em;
		text-align: center;
		font-family: 'Shippori Mincho', serif;
		margin-bottom: 8vw;
	}

	.footer__nav01 li {
		margin-bottom: 4vw;
	}

	.footer__nav02 {
		display: none;
		font-size: max(13px, 3.8666666667vw);
		text-align: center;
		font-family: 'Shippori Mincho', serif;
	}

	.footer__nav02 li {
		margin-bottom: 2vw;
	}

	footer .cbtn::after {
		right: 10vw;
	}

}

/* End @media (max-width:1000px) */