@charset "UTF-8";


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

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

	.mainheader__inr {
		display: flex;
		align-items: center;
		margin: 0 auto;
		height: 100%;
		justify-content: space-between;
		margin-right: auto;
		margin-left: auto;
		z-index: 9999;
		position: relative;
		max-width: 1240px;
		margin: 0 auto;
		padding:0 20px 0 25px;
	}

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

	 .mainheader__logo a {
		display: flex;
		align-items: center;
		justify-content: center;
		text-align: center;
		margin-right: auto;
		width: 100%;
		height: 100%;
		max-width: 170px;
		transition: none;
	}

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


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

	.gnav__list {
        flex: 1;
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        line-height: 1.4;
		row-gap: 10px;
		padding: 9px 0 9px 1%;
	}

	.gnav__list > li {
		display: flex;
		justify-content: center;
		text-align: center;
		align-items: center;
		line-height: 1;
		padding: 0 .6em;
		border-right: 1px solid #211816;
	}

	.gnav__list > li:first-of-type {
		border-right: 1px solid #211816;
	}

	.gnav__list li a {
		color: #211816;
		font-size: 1.5rem;
		letter-spacing: 0;
		display: block;
		position: relative;
		text-align: center;
	}

	.gnav__list .lang__btn {
		font-size: 1.5rem;
		gap: 20px;
	}

	.mainheader__rsv {
		width: 157px;
	}

	.mainheader__rsv a {
		width: 100%;
		padding: .5782em;
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
		width: 100%;
		height: 100%;
        line-height: 1.4;
		border-radius: 5px;
        text-align: center;
		color: #fff;
		background: url(../images/icon_calendar.svg) no-repeat center left 9%;
		background-size: 16px 16px;
		background-color: #006837;
		transition: background 0.3s;
	}

	.mainheader__rsv a::after {
		content: "";
		width: 5px;
		height: 5px;
		border-top: solid 1px #fff;
		border-right: solid 1px #fff;
		position: absolute;
		right: 20px;
		top: 50%;
		transform:translateY(-50%) rotate(45deg);
		transition: right 0.3s;
	}

	.mainheader__rsv a:hover::after {
		right: 17px;
	}

	/* sp
  ---------------------------------------------------------------------- */
	#spnav,
	.hamburger {
		display: none;
	}

	/* lang
  ---------------------------------------------------------------------- */

	.lang {
		position: relative;
		display: inline-block;
		cursor: pointer;
	}

	.lang__btn {
        display: flex;
        align-items: center;
        gap: 22px;
		letter-spacing: 0;
		padding-bottom: 10px;
		margin-bottom: -10px;
	}

	.lang__btn::after {
		content: "›";
		transform: rotate(90deg);
	}

	.lang__list {
		position: absolute;
		top: calc(100% + 5px);
		left: 0;
		list-style: none;
		padding: 0;
		margin: 0;
		width: 100%;
		opacity: 0;
		background-color: #fff;
		pointer-events: none;
		transition: .25s ease;
	}

	.lang.open .lang__list {
		opacity: 1;
		pointer-events: auto;
	}

	.lang__list li a {
		display: block;
		padding: 10px 12px;
		text-decoration: none;
		border-bottom: 1px solid #000;
	}

	.lang__list li:last-of-type a {
		border-bottom: none;
	}


	/* footer
  ---------------------------------------------------------------------- */
	.footer {
		position: relative;
		color: #fff;
		background: url(../images/bg_footer.png);
	}

	.footer__inr {
		padding: 60px  0 70px;
	}

	.footer__logo {
		max-width: 296px;
		margin:0 auto 35px;
	}

	.footer__logo a ,
	.footer__logo img {
		display: block;
		width: 100%;
	}

	.footer__address {
		font-size: 2.2rem;
		letter-spacing: 0.16em;
		margin-bottom: 40px;
		text-align: center;
	}

	.footer__wrap {
		display: flex;
		gap: 30px;
		justify-content: center;
		margin-bottom: 53px;
	}

	.footer__tel {
		width: 26.8rem;
	}

	.footer__languages {
		width: 265px;
		font-size: 1.7rem;
		line-height: 1;
		letter-spacing: 0;
		padding: 8px 0 0 23px;
	}

	.footer__languages .lang {
		padding: 0 13px;
		border-left: 1px solid #fff;
		border-right: 1px solid #fff;
	}

	.footer__languages .lang__list {
		background: transparent;
	}

	.footer__languages .lang__list li a {
		color: #fff;
		border-bottom: 1px solid #ddd;
	}

	.footer__nav ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		row-gap: 10px;
	}

	.footer__nav ul li {
		line-height: 1;
		font-size: 1.5rem;
		letter-spacing: 0;
		padding: 0 22px;
		border-left: 1px solid #fff;
	}

	.footer__nav ul li a {
		display: block;
	}

	.copyright {
		font-size: 1.4rem;
		letter-spacing: 0.16em;
		color: #000000;
		background-color: #E6E6E6;
		padding: 3px;
		text-align: center;
	}

}

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

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

	/* header
  ---------------------------------------------------------------------- */
	#mainheader {
		position: fixed;
		top: calc(116 / 750 * 100vw);
		width: 100vw;
		bottom: 0;
		z-index: 2000;
		background-color: #FAF7F4;
		opacity: 0;
		visibility: hidden;
		overflow: scroll;
		transition: opacity 0.5s , visibility 0.5s;
	}

	.open #mainheader {
		z-index: 2000;
		overflow: scroll;
		z-index: 2000;
		opacity: 1;
		visibility: visible;
	}

	.mainheader__logo {
		display: none;
	}

	.mainheader__inr {
		padding: 0 0 5vw;
	}

	.gnav__list {
		margin-bottom: 5.5vw;
	}

	.gnav__list li a {
		font-size: 4rem;
		color: var(--primary-color);
		letter-spacing: 0.06em;
		font-weight: bold;
		display: block;
		line-height: 1.5;
		padding: 0.74em 0;
		position: relative;
		text-align: center;
		border-top: 1px solid #ccc;
		background: linear-gradient(to top, #dedede 0%, #eee 6.54%, #fff 20.62%);
	}

	.gnav__list li a span {
		display: block;
		color: #1EA264;
		font-size: 1.8rem;
		letter-spacing: 0.08em;
	}

	.gnav__list-sub {
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 2.8rem;
		letter-spacing: 0.06em;
		gap: 5%;
		margin-bottom: 5vw;
	}

	.gnav__list-sns {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 6%;
	}

	.gnav__list-sns img {
		width: 7.2rem;
	}

	/* spnav
---------------------------------------------------------------------- */
	#spnav {
		display: flex;
		justify-content: space-between;
		height: 100%;
		width: 100%;
		position: fixed;
		right: 0;
		top: 0;
		z-index: 20000;
		background: #ffffff;
		height: calc(116 / 750 * 100vw);
	}

	#spnav ul {
		display: flex;
		width: 100%;
	}

	#spnav ul li {
		display: flex;
		flex-direction: column;
		text-align: center;
		position: relative;
		font-size: 2.4rem;
		flex: 0 0 calc(116 / 750 * 100vw)
	}

	#spnav li.spnav__tel a ,
	#spnav li.spnav__rsv a {
		display: flex;
		flex-direction: column;
		height: 100%;
		align-items: center;
		justify-content: flex-start;
		color: #Fff;
		line-height: 1;
		font-size: 2.4rem;
		padding: .8em;
		position: relative;
	}

	#spnav li.spnav__tel a::before ,
	#spnav li.spnav__rsv a::before {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
		border: 1px solid #fff;
		width: calc(100% - 8px);
		height: calc(100% - 8px);
	}

	#spnav li.spnav__rsv a {
		background: url(../images/icon_calendar.svg) no-repeat bottom .9em center ;
		background-size: 3.6rem;
	}

	#spnav li.spnav__tel a {
		background: url(../images/icon_tel02.svg) no-repeat bottom .9em center;
		background-size: 4.5rem;
	}

	#spnav ul li.spnav__menu {
		flex: 1;
		display: flex;
		align-items: center;
		flex-direction: row;
		padding: 0 4% 0 2%;
		background: linear-gradient(to top, #dedede 0%, #eee 6.54%, #fff 20.62%);
		border-bottom: 2px solid var(--primary-color);
		position: relative;
	}

	#spnav ul li.spnav__menu::after {
		content: "";
		width: 100%;
		height: 1px;
		background-color: var(--primary-color);
		position: absolute;
		bottom: 2px;
		left: 0;
	}

	.spnav__logo {
        width: 68%;
	}

	#spnav ul li:nth-of-type(2){
		background-color: var(--secondary-color);
	}

	#spnav ul li:nth-of-type(3) {
		background-color: var(--primary-color);
	}


	/* hamburger
---------------------------------------------------------------------- */
	.hamburger {
		flex: 1;
		position: relative;
		height: 100%;
		flex-shrink: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		padding: 4% 6% 4% 4.9%;
	}

	.hamburger__inr {
		display: block;
		flex: 1;
		position: relative;
		width: 100%;
		max-width: 100%;
	}

	.hamburger__inr span {
		display: block;
		width: 100%;
		height: 4px;
		position: relative;
		background-color: var(--primary-color);
		transition: ease all .5s;
		position: absolute;
	}

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

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

	.hamburger__inr span:nth-child(1) {
		top: 25%;
	}

	.hamburger__inr span:nth-child(2) {
		top: 49%;
	}

	.hamburger__inr span:nth-child(3) {
		top: 73%;
	}

	.open .hamburger__inr span:nth-child(1) {
		top: 50%;
		transform: rotate(21deg) translateY(-50%);
		background-color: var(--primary-color);
	}

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

	.open .hamburger__inr span:nth-child(3) {
		top: 50%;
		transform: rotate(-21deg) translateY(-50%);
		background-color: var(--primary-color);
	}

	.hamburger__txt {
		color: #ffffff;
		line-height: 1;
		letter-spacing: 0;
		font-size: 2.7vw;
		text-align: center;
		transition: color 0.3s;
	}

	.open .hamburger__txt {
		color: #ffffff;
	}

	.open .hamburger__txt {
		color: var(--primary-color);
	}


	/* lang
  ---------------------------------------------------------------------- */

	.lang {
		position: relative;
		display: inline-block;
		cursor: pointer;
	}

	.lang__btn {
        display: flex;
        align-items: center;
        gap: 22px;
		letter-spacing: 0;
		padding-bottom: 10px;
		margin-bottom: -10px;
	}

	.lang__btn::after {
		content: "›";
		transform: rotate(90deg);
	}

	.lang__list {
		position: absolute;
		top: calc(100% + 5px);
		left: 0;
		list-style: none;
		padding: 0;
		margin: 0;
		width: 100%;
		opacity: 0;
		background-color: #fff;
		pointer-events: none;
		transition: .25s ease;
	}

	.lang.open .lang__list {
		opacity: 1;
		pointer-events: auto;
	}

	.lang__list li a {
		display: block;
		padding: 10px 12px;
		text-decoration: none;
		border-bottom: 1px solid #000;
	}

	.lang__list li:last-of-type a {
		border-bottom: none;
	}

	/* footer
  ---------------------------------------------------------------------- */
	.footer {
		position: relative;
		color: #fff;
		background: url(../images/bg_footer.png);
	}

	.footer__inr {
		padding: 6rem  0 7rem;
	}

	.footer__logo {
		max-width: 50%;
		margin:0 auto 3.5rem;
	}

	.footer__logo a ,
	.footer__logo img {
		display: block;
		width: 100%;
	}

	.footer__address {
		font-size: 3.3rem;
		letter-spacing: 0.16em;
		margin-bottom: 4rem;
		text-align: center;
	}

	.footer__wrap {
		display: flex;
		flex-direction: column;
		gap: 3rem;
		justify-content: center;
		margin-bottom: 5.3rem;
	}

	.footer__languages {
		display: flex;
		justify-content: center;
		line-height: 1;
		letter-spacing: 0;
	}

	.footer__languages .lang {
		padding: 0 13px;
		border-left: 1px solid #fff;
		border-right: 1px solid #fff;
	}

	.footer__languages .lang__list {
		background: transparent;
	}

	.footer__languages .lang__list li a {
		color: var(--primary-color);
		border-bottom: 1px solid var(--primary-color);
		background-color: #fff;
	}

	.footer__nav ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		row-gap: 10px;
	}

	.footer__nav ul li {
		line-height: 1;
		letter-spacing: 0;
		padding: 0 2.2rem;
		border-left: 1px solid #fff;
	}

	.footer__nav ul li a {
		display: block;
	}

	.copyright {
		font-size: 1.4rem;
		letter-spacing: 0.16em;
		color: #000000;
		background-color: #E6E6E6;
		padding: 3px;
		text-align: center;
	}

}

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