@charset "UTF-8";


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

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

	.mainheader__inr {
		display: flex;
		margin: 0 auto;
		height: 100%;
		justify-content: space-between;
		margin-right: auto;
		margin-left: auto;
		z-index: 9999;
		position: relative;
		min-height: 75px;
	}

	.mainheader__wrap {
		display: flex;
		flex: 1;
		position: relative;
		padding: 0 0 0 1%;
		border-bottom: 2px solid var(--primary-color);
		background: linear-gradient(#fff 0%, #dedede 43.4%);
		position: relative;
	}

	.mainheader__wrap::before {
        content: "";
        width: 100%;
        height: 1px;
        background-color: var(--primary-color);
        position: absolute;
        bottom: 2px;
        left: 0;
	}

	.mainheader__logo {
        width: 16%;
        max-width: 220px;
		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: 220px;
		transition: none;
	}

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

	.mainheader__address {
		margin-left: auto;
		align-self: center;
		padding: 0 2% 0 1%;
	}

	.mainheader__tel {
		display: flex;
		align-items: flex-end;
		justify-content: center;
		font-size: 2.1rem;
		line-height: 1;
		gap: 2px;
		margin-bottom: 8px;
		letter-spacing: 0.02em;
		color: var(--primary-color);
	}

	.mainheader__tel::before {
		content: "";
		display: block;
		width: 14px;
		height: 18px;
		background: url(../images_new/icon_tel.svg) no-repeat;
		background-size: contain;
	}

	.mainheader__hours {
		display: flex;
		gap: 8px;
		color: var(--primary-color);
		font-size: min(1vw, 1.2rem);
		line-height: 1;
		letter-spacing: 0.08em;
	}

	/* 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;
		padding: 9px 0 9px 11px;
	}

	.gnav__list li {
		display: flex;
		justify-content: center;
		text-align: center;
		align-items: center;
		border-left: 1px solid #E6E6E6;
	}
	.gnav__list li::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 1px;
		height: 100%;
		background-color: #E6E6E6;;
	}

	.gnav__list li:last-of-type {
		border-right: 1px solid #E6E6E6;
	}

	.gnav__list li a {
		padding: 0 0.714em;
		font-size: min(1.25vw,1.4rem);
		letter-spacing: 0.03em;
		font-weight: bold;
		display: block;
		line-height: 1.1;
		position: relative;
		text-align: right;
	}

	@media (min-width: 1351px) {
		.gnav__list-br {
			display: block;
		}
	}

	.gnav__icon {
		display: flex;
		align-items: center;
		gap: min(.7vw,10px);
	}

	.gnav__icon a {
		display: flex;
		align-items: center;
		width: min(3.5vw, 48px);
	}

	.btn__rsv {
		max-width: 200px;
		width: 13%;
		color: #fff;
		background: linear-gradient( var(--primary-color) 0%, #001C12 65.34%);
		font-size: min(1.1vw,1.6rem);
		position: relative;
	}

	.btn__rsv a {
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
		width: 100%;
		height: 100%;
		gap: 0.625em;
        line-height: 1.4;
        text-align: center;
		transition: opacity 0.3s;
	}

	.btn__rsv a::before {
		content: "";
		display: block;
		width: 1.563em;
		height: 1.25em;
		background: url(../images_new/icon_online.svg) no-repeat;
		background-size: contain;
	}

	.btn__rsv a:hover {
		opacity: 0.7;
	}

	.btn__rsv::before {
		content: "";
		display: block;
		width: calc(100% - 6px);
		height: calc(100% - 6px);
		position: absolute;
		border: 1px solid #fff;
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
	}

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


	/* footer
  ---------------------------------------------------------------------- */
	.footer {
		position: relative;
	}

	.footer__inr {
		position: relative;
		background-color: #F2EDE7;
		padding: 58px 0 40px;
	}

	.footer__wrap {
		display: flex;
		justify-content: space-between;
		max-width: 1100px;
		margin: 0 auto;
        gap: 1.5%;
	}

	.footer__logo {
		max-width: 858px;
		margin:0 auto 58px;
		box-sizing: content-box;
	}

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

	.footer__address {
		font-size: 2rem;
		line-height: 1.45;
		text-align: left;
	}

	.footer__address dl {
		display: flex;
		gap: 5px;
	}

	.footer__tel {
		margin-top: 25px;
	}

	.footer__tel dl {
		display: flex;
		font-size: 2.8rem;
	}

	.footer__nav {
		font-size: 2rem;
		line-height: 1;
		letter-spacing: 0.04em;
		display: flex;
		flex-direction: column;
	}

	.footer__nav-list ul {
		display: flex;
		flex-wrap: wrap;
		margin-bottom: 25px;
		row-gap: 20px;
		margin-left: 5px;
	}

	.footer__nav-list ul li {
		padding: 0 10px;
		text-align: center;
	}

	.footer__nav-list ul li + li {
		border-left: 1px solid #B3B3B3;
	}

	.footer__nav-other {
        display: flex;
		align-items: center;
		gap: 55px;
        margin-top: auto;
        margin-bottom: 12px;
        margin-left: 2.4%;
	}

	.footer__nav-sns {
		display: flex;
		gap: 20px;
		margin-left: 25px;
	}

	.footer__nav-live {
		display: flex;
		align-items: center;
		gap: 20px;
	}

	.copyright {
		font-size: 1.2rem;
		background-color: #fff;
		color: var(--primary-color);
		padding: 8px;
		text-align: center;
	}

	/* loading
  ---------------------------------------------------------------------- */
	#loading{
		position: fixed !important;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 9999;
		transition: 1s all ease-in-out;
		opacity: 1;
		background-color: #fff;
	}

	#loading.loaded{
		opacity: 0;
		pointer-events: none;
	}

	#loading img{
		width: 500px;
		height: auto;
		z-index: 1;
		margin-top: 10px;
	}

}

/* 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__icon {
		display: flex;
		justify-content: center;
		align-items: center;
		margin: 0 auto;
		gap: 3%;
	}

	.gnav__icon li {
		display: block;
		width: 15%;
	}

	.gnav__icon li a {
		display: block;
	}

	.gnav__icon img {
		width: 100%;
	}

	.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_new/icon_calendar.svg) no-repeat bottom .9em center ;
		background-size: 3.6rem;
	}

	#spnav li.spnav__tel a {
		background: url(../images_new/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);
	}

	/* footer
  ---------------------------------------------------------------------- */
	.footer {
		position: relative;
	}

	.footer__inr {
		position: relative;
		background-color: #F2EDE7;
		padding: 15vw 0 8vw;
	}

	.footer__wrap {
		max-width: 1100px;
		margin: 0 auto;
        gap: 1.5%;
	}

	.footer__logo {
		max-width: 42rem;
		margin:0 auto 9vw;
		box-sizing: content-box;
	}

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

	.footer__address {
		font-size: 2.7rem;
		line-height: 1.83;
		text-align: center;
	}

	.footer__address dl {
		display: flex;
		justify-content: center;
		gap: 5px;
	}

	.footer__tel {
		margin: 6vw 0 8.5vw;
	}

	.footer__tel dl {
		display: flex;
		font-size: 3.9rem;
		line-height: 1.7;
	}

	.footer__nav {
		flex: 1;
		font-size: 1.8rem;
		line-height: 1;
		letter-spacing: 0.06em;
		display: flex;
		flex-direction: column;
	}

	.footer__nav-list {
		display: none;
	}

	.footer__nav-other ul {
        display: flex;
        justify-content: center;
        gap: 11%;
        margin-bottom: 7.5vw;
	}

	.footer__nav-other {
		font-size: 3.2rem;
		letter-spacing: 0.02em;
        margin-top: auto;
        display: flex;
        flex-direction: column;
	}

	ul.footer__nav-sns {
		display: flex;
		justify-content: center;
		gap: 5%;
		margin-bottom: 0;
		order: 3;
	}

	.footer__nav-sns img {
		width: 8rem;
	}

	ul.footer__nav-live {
		display: flex;
		align-items: center;
		gap: 5%;
	}

	.footer__nav-live img {
		width: 9rem;
	}

	.copyright {
		font-size: 2.4rem;
		background-color: #fff;
		color: var(--primary-color);
		padding: 8px;
		text-align: center;
	}


	/* loading
  ---------------------------------------------------------------------- */
	#loading {
		background: #fff;
		position: fixed !important;
		top: 0;
		left: 0;
		bottom: 0;
		right: 0;
		width: 100%;
		height: 100vh;
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 99999;
		opacity: 1;
		transition: 1s all ease-in-out;
	}

	#loading.loaded{
		opacity: 0;
		pointer-events: none;
	}

	#loading img{
		width: 80vw;
		height: auto;
		z-index: 1;
	}

}

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