@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.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;
	}

	.mainheader__wrap {
		display: flex;
		flex: 1;
		position: relative;
		padding: 0 0 0 18px;
		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 {
		height: 100%;
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 24%;
		max-width: 213px;
	}

	.mainheader__logo a {
		display: flex;
		align-items: center;
		justify-content: center;
		text-align: center;
		margin-right: auto;
		width: 100%;
		height: 100%;
		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/icon_tel.svg) no-repeat;
		background-size: contain;
	}

	.mainheader__hours {
		display: flex;
		gap: 8px;
		color: var(--primary-color);
		font-size: 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 1.5%;
	}

	.gnav__list li {
		flex: 1 0 auto;
		display: flex;
		justify-content: center;
		text-align: center;
		align-items: center;
		border-left: 1px solid #E6E6E6;
	}

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

	.gnav__list li a {
		padding: 0 10px;
		font-size: 1.4rem;
		letter-spacing: 0.06em;
		font-weight: bold;
		display: block;
		line-height: 1.2;
		position: relative;
		text-align: center;
	}

	.btn__rsv {
		max-width: 190px;
		width: 13%;
		color: #fff;
		background: linear-gradient(var(--primary-color) 0%, #001C12 65.34%);
		font-size: clamp(1.4rem, 1.3296rem + 0.1878vw, 1.6rem);
		position: relative;
	}

	.btn__rsv a {
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
		width: 100%;
		height: 100%;
		line-height: 1.4;
		text-align: center;
		/*background: url(../images/icon_calendar.svg) no-repeat center left 12% , url(../images/icon_arrow02_w.svg) no-repeat center right 11%;
		background-size: 20px 21px , calc(44 / 250 * 100%) calc(5 / 75 * 100%) ;
		*/
		padding: 0 21% 0 0;
		transition: background 0.3s;
	}

	.btn__rsv a:hover {
		background-position: center left 12%, center right 9%;
	}

	.btn__rsv a::before {
		content: "";
		display: block;
		width: 24px;
		height: 5px;
		background: url(../images/icon_arrow02_w.svg) no-repeat center right;
		background-size: auto 100%;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		right: 18%;
	}

	.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%);
	}

	/* floating-menu
  ---------------------------------------------------------------------- */
	.floating-menu {
		position: fixed;
		right: 50px;
		bottom: 55px;
		z-index: 1000;
		width: 260px;
		padding: 10px 10px;
		background: #fff;
		border-radius: 9px 0 9px 9px;
		box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
	}

	.floating-menu.is-hidden {
		display: none;
	}

	.floating-menu__close {
		position: absolute;
		bottom: calc(100% - 1px);
		right: 0;
		width: 30px;
		height: 24px;
		padding: 0;
		border: 0;
		background: #fff;
		cursor: pointer;
		border-radius: 8px 8px 0 0;
		overflow: hidden;
	}

	.floating-menu__close::before,
	.floating-menu__close::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 2px;
		height: 20px;
		background: #777;
		transform-origin: center;
	}

	.floating-menu__close::before {
		transform: translate(-50%, -50%) rotate(45deg);
	}

	.floating-menu__close::after {
		transform: translate(-50%, -50%) rotate(-45deg);
	}

	.floating-menu__body {
		display: grid;
		gap: 12px;
	}

	.floating-menu__button {
		display: block;
		padding: .301em .2em;
		border: 2px solid #DD732A;
		border-radius: 10px;
		background: #F7931E;
		color: #fff;
		font-size: 1.8rem;
		font-weight: 500;
		line-height: 1.4;
		text-align: center;
		text-decoration: none;
	}

	.floating-menu__button:hover {
		opacity: 0.85;
	}

	.floating-menu__button.floating-menu__button--internal {
		background-color: #9FA0A0;
		border: 2px solid #656464;
	}

	/* 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: 614px;
		padding-right: 50px;
		margin: 0 auto 58px;
		box-sizing: content-box;
	}

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

	.footer__address {
		font-size: 1.8rem;
		line-height: 1.61;
		text-align: left;
	}

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

	.footer__tel {
		margin-top: 25px;
	}

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

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

	.footer__nav-list ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		margin-bottom: 25px;
	}

	.footer__nav-list ul li {
		flex: 1 0 auto;
		text-align: center;
	}

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

	.footer__nav-other {
		display: flex;
		align-items: center;
		gap: 38px;
		margin-top: auto;
		margin-bottom: 24px;
		margin-left: 4%;
	}

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

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

}

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

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

	/* header
  ---------------------------------------------------------------------- */
	#mainheader {
		position: fixed;
		top: calc(215 / 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);
	}

	.spnav__btns {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		display: flex;
	}

	.btn__rsv {
		width: 50%;
		color: #fff;
		background: linear-gradient(var(--primary-color) 0%, #001C12 65.34%);
		font-size: 2.4rem;
		position: relative;
	}

	.btn__rsv a {
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
		width: 100%;
		height: 100%;
		line-height: 1.4;
		text-align: center;
		padding: 1.384em 3.35em 1.384em 0.5em;
		transition: background 0.3s;
	}

	.btn__rsv a:hover {
		background-position: center left 12%, center right 9%;
	}

	.btn__rsv a::before {
		content: "";
		display: block;
		width: 1.792em;
		height: 0.375em;
		background: url(../images/icon_arrow02_w.svg) no-repeat center right;
		background-size: auto 100%;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		right: 1.7em;
	}

	.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%);
	}

	/* 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);
	}


	/* floating-menu
  ---------------------------------------------------------------------- */
	.floating-menu {
		position: fixed;
        right: 5.5vw;
        bottom: 7.5vw;
		z-index: 1000;
		font-size: 2.8rem;
		padding: 10px 10px;
		background: #fff;
		border-radius: 9px 0 9px 9px;
		box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
	}

	.floating-menu.is-hidden {
		display: none;
	}

	.floating-menu__close {
		position: absolute;
		bottom: calc(100% - 1px);
		right: 0;
		width: 2.143em;
		height: 1.929em;
		padding: 0;
		border: 0;
		background: #fff;
		cursor: pointer;
		border-radius: 8px 8px 0 0;
		overflow: hidden;
		font-size: 2.8rem;
	}

	.floating-menu__close::before,
	.floating-menu__close::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 0.143em;
		height: 1.429em;
		background: #777;
		transform-origin: center;
	}

	.floating-menu__close::before {
		transform: translate(-50%, -50%) rotate(45deg);
	}

	.floating-menu__close::after {
		transform: translate(-50%, -50%) rotate(-45deg);
	}

	.floating-menu__body {
		display: grid;
		gap: 10px;
	}

	.floating-menu__button {
		display: block;
		padding: .122em .14em;
		border: 2px solid #DD732A;
		border-radius: 0.357em;
		background: #F7931E;
		color: #fff;
		font-weight: 500;
		line-height: 1.4;
		text-align: center;
		text-decoration: none;
	}

	.floating-menu__button:hover {
		opacity: 0.85;
	}

	.floating-menu__button.floating-menu__button--internal {
		background-color: #9FA0A0;
		border: 2px solid #656464;
	}

	/* 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;
		text-align: left;
	}

	.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;
	}

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

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

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

}

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