@charset "UTF-8";


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

	/* header
  ---------------------------------------------------------------------- */
	#mainheader {
		width: 100%;
		height: 100px;
		z-index: 1000;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 9999;
		background-color: #fff;
		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;
		padding-left: 2.2%;
		gap: 10px;
	}

	.mainheader__logo {
		height: 100%;
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 24%;
		/* width: 290px; */
		width: 226px;
		margin-right: auto;
	}

	.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:hover {
		opacity: 1;
	}

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

	.mainheader__menu-inr ,
	.mainheader__menu-wrap {
		display: flex;
		height: 100%;
	}
	

	/* mainheader__nav
  ---------------------------------------------------------------------- */
	.mainheader__nav-list {
		flex: 1;
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-end;
		line-height: 1.4;
		padding-inline: 20px;
		height: 100%;
	}

	.mainheader__nav-list li {
		display: flex;
		justify-content: center;
		text-align: center;
		align-items: center;
	}

	.mainheader__nav-list li a {
		padding: 0 18px;
		font-size: 2.4rem;
		display: block;
		line-height: 1.2;
		position: relative;
		text-align: center;
		font-family: "Poppins", sans-serif;
	}

	.mainheader__instagram  {
		display: flex;
		align-items: center;
		height: 100%;
		margin: 0 38px 0 0;
	}

	.mainheader__rsv {
		font-size: 2.4rem;
		width: 220px;
		color: #fff;
		background: var(--primary-color);
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
		line-height: 1.4;
		text-align: center;
		padding: 10px 10px;
	}

	.mainheader__rsv-jp {
		display: block;
		font-size: 0.583em;
	}


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


	/* footer
  ---------------------------------------------------------------------- */
	.footer {
		position: relative;
		font-size: 1.8rem;
		padding:7rem 0 7.5rem;
		border-top: 1px solid #000;
	}

	.footer__inr {
		max-width: 1490px;
		padding: 0 45px;
		margin: 0 auto;
	}

	.footer__wrap {
		display: flex;
		padding-bottom: 4rem;
	}

	.footer__info {
		margin-top: 5px;
	}

	.footer__logo {
		max-width: 338px;
		margin: 0 auto 1rem;
	}

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

	.footer__address {
		line-height: 1.61;
		text-align: left;
	}

	.footer__address-fax {
		margin: 1rem 0 .5rem;
	}

	.footer__tel-label {
		margin-bottom: 0.6rem;
	}

	.footer__tel {
		display: flex;
		align-items: center;
		gap: 10px;
		font-size: 3.6rem;
		line-height: 1;
		letter-spacing: 0.04em;
		margin-bottom: 3rem;
		letter-spacing: -0.01em;
	}

	.footer__tel::before {
		content: "";
		display: block;
		width: 0.806em;
		height: 0.639em;
		background: url(../images/icon_tel.svg) no-repeat;
		background-size: contain;
	}

	.footer__time {
		display: flex;
		gap: 18px;
	}
	
	.footer__time-item {
		display: flex;
		gap: 12px;
	}

	.footer__time-item dt {
		letter-spacing: -0.15em;
	}

	.footer__nav {
		margin-left: auto;
		display: flex;
		flex-direction: column;
	}

	.footer__nav ul {
		margin-bottom: 11.5rem;
	}
	
	.footer__nav li {
		display: flex;
		align-items: center;
		margin-bottom: .4rem;
		gap: 9px;
	}

	.footer__nav li::before {
		content: "";
		display: block;
		width: 20px;
		height: 1px;
		background-color: #000000;
	}

	.footer__nav li:last-of-type {
		margin-bottom: 0;
	}

	.footer__icon {
		margin-top: auto;
		margin-left: auto;
	}

	.copyright {
		font-size: 1.2rem;
		letter-spacing: 0.05em;
		text-align: right;
	}

}

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

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

	/* header
  ---------------------------------------------------------------------- */
	#mainheader {
		width: 100%;
		height: 10rem;
		z-index: 1000;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 9999;
		background-color: #fff;
		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;
		padding-left: 2.7%;
	}

	.mainheader__logo {
		height: 100%;
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 28%;
		margin-right: auto;
	}

	.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__menu {
		display: none;
        position: fixed;
        top: 10rem;
		width: 100%;
        bottom: 0;
        z-index: 9999;
        background: #fff;
        left: 0;
		padding: 2rem 0 14rem;
		overflow: auto;
	}

	.mainheader__menu-inr {
        display: flex;
        height: 100%;
	}

	.mainheader__menu-wrap {
		margin: auto;
		padding: 4rem 0;
	}


	/* mainheader__nav
  ---------------------------------------------------------------------- */

	.mainheader__nav-list {
		flex: 1;
		display: flex;
		display: flex;
		flex-direction: column;
		line-height: 1.4;
		height: 100%;
		margin-bottom: 5rem;
	}

	.mainheader__nav-list li {
		display: flex;
		justify-content: center;
		text-align: center;
		align-items: center;
		margin-bottom: 6.3rem;
	}

	.mainheader__nav-list li a {
		padding: 0 18px;
		font-size: 3.6rem;
		display: block;
		line-height: 1.2;
		position: relative;
		text-align: center;
		font-family: "Poppins", sans-serif;
	}

	.mainheader__instagram  {
		width: 6.6rem;
        display: block;
        margin: 0 auto;
	}

	.mainheader__instagram img {
		width: 100%;
	}

	.mainheader__rsv {
		font-size: 2.4rem;
		color: #fff;
		background: var(--primary-color);
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
		line-height: 1.55;
		text-align: center;
		padding: 1em .9em;
	}

	.mainheader__rsv-jp {
		display: block;
		font-size: 2rem;
	}

	/* hamburger
---------------------------------------------------------------------- */
	.hamburger {
		aspect-ratio: 1;
		position: relative;
		height: 100%;
		flex-shrink: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		padding: 2.7%;
		background-color: #000;
	}

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

	.hamburger__inr span {
		display: block;
		width: 100%;
		height: 2px;
		position: relative;
		background-color: #ffffff;
		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: 32%;
	}

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

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

	.open .hamburger__inr span:nth-child(2) {
		top: 50%;
		transform: rotate(-21deg) translateY(-50%);
	}

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

	/* footer
  ---------------------------------------------------------------------- */
	.footer {
		position: relative;
		padding: 12.3rem 0 7.5rem;
		border-top: 1px solid #000;
	}

	.footer__inr {
		padding: 0 5vw;
		margin: 0 auto;
	}

	.footer__wrap {
		padding-bottom: 5rem;
	}

	.footer__info {
		margin-bottom: 3.5rem;
	}

	.footer__logo {
		max-width: 41.8rem;
		margin-bottom: 2.5rem;
	}

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

	.footer__address {
		line-height: 1.61;
		text-align: left;
	}

	.footer__tel-label {
		margin-bottom: 0.35rem;
	}

	.footer__tel {
		display: flex;
		align-items: center;
		gap: 1.1rem;
		font-size: 4.8rem;
		line-height: 1;
		letter-spacing: 0.04em;
		margin-bottom: 2rem;
		letter-spacing: -0.01em;
	}

	.footer__tel::before {
		content: "";
		display: block;
		width: 0.771em;
		height: 0.625em;
		background: url(../images/icon_tel.svg) no-repeat;
		background-size: contain;
	}

	.footer__time {
		display: flex;
		gap: 18px;
	}
	
	.footer__time-item {
		display: flex;
		gap: 12px;
	}

	.footer__time-item dt {
		letter-spacing: -0.15em;
	}

	.footer__nav {
		margin-left: auto;
		display: flex;
		flex-direction: column;
	}

	.footer__nav ul {
		margin-bottom: 5rem;
	}
	
	.footer__nav li {
		display: flex;
		align-items: center;
		margin-bottom: .25rem;
		gap: .9rem;
	}

	.footer__nav li::before {
		content: "";
		display: block;
		width: 2rem;
		height: 1px;
		background-color: #000000;
	}

	.footer__nav li:last-of-type {
		margin-bottom: 0;
	}

	.footer__icon {
		margin-top: auto;
		width: 8rem;
	}

	.footer__icon img {
		width: 100%;
	}

	.copyright {
		font-size: 2rem;
		letter-spacing: 0.05em;
		text-align: left;
	}

}

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