@media (max-width: 650px) {
	/*===============================
	MARK: common
	=================================*/
	body {
		font-size: var(--fz14);
	}
	body::before {
		background: url(../images/main_bg_sp.jpg);
		background-repeat: no-repeat;
		background-size: cover;
	}
	body.is-fixed {
		overflow: hidden;
	}
	.main-wrap {
		padding-inline: 15px;
		margin-top: 60px;
	}

	.pc-content {
		display: none !important;
	}
	.sp-content {
		display: block;
	}

	/*===============================
	MARK: header
	=================================*/
	.site-header {
		position: sticky;
		top: 0;
		z-index: 50;
	}

	.header-inner {
		padding: 10px 15px 13px 15px;
		margin-inline: auto;
	}

	/*===============================
	MARK: nav
	=================================*/
	.c-navOverlay {
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.5);
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.25s ease;
		z-index: 100;
	}
	.is-fixed .c-navOverlay {
		opacity: 1;
		pointer-events: auto;
	}

	/* --- ボタンの基本スタイル --- */
	#js-hamburger::before {
		content: 'MENU';
		position: absolute;
		bottom: 10%;
		left: 50%;
		transform: translateX(-50%);
		line-height: 1;
		font-size: 10px;
		letter-spacing: 0.05em;
	}

	#js-hamburger.is-active::before {
		content: 'CLOSE';
	}

	.hamburger {
		display: block;
		width: 40px;
		height: 45px;
		position: fixed;
		top: 15px;
		right: 15px;
		z-index: 100;
		background: #fff;
		border: 1px solid #fff;
		border-radius: 5px;
		cursor: pointer;
		z-index: 250;
	}
	.hamburger.is-active {
		border-color: #1a1311;
	}

	.hamburger__line {
		display: block;
		width: 30px;
		height: 2px;
		background-color: #1a1311;
		border-radius: 50em;
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		transition: 0.3s;
	}

	/* 三本線の配置 */
	.hamburger__line:nth-child(1) {
		top: 5px;
	}
	.hamburger__line:nth-child(2) {
		top: 13px;
	}
	.hamburger__line:nth-child(3) {
		top: 21px;
	}

	/* ボタンが active になった時の三本線アニメーション（×印） */
	.hamburger.is-active .hamburger__line:nth-child(1) {
		transform: translateY(8px) translateX(-50%) rotate(30deg);
	}
	.hamburger.is-active .hamburger__line:nth-child(2) {
		opacity: 0;
	}
	.hamburger.is-active .hamburger__line:nth-child(3) {
		transform: translateY(-8px) translateX(-50%) rotate(-30deg);
	}

	/* --- メニュー本体のスタイル --- */
	#js-sp-nav {
		max-width: unset;
		width: 91%;
	}
	#js-sp-nav .nav-logo {
		margin: 10px 0 0 7px;
	}
	#js-sp-nav .nav-logo img {
		width: min(90%, 295px);
	}
	.gnav {
		position: fixed;
		top: 0;
		right: -150%;
		width: 100%;
		height: 100vh;
		background: #fff;
		z-index: 200;
		transition: 0.4s;
		overflow: auto;
		overscroll-behavior: contain;
	}
	.nav-inner {
		min-height: 90%;
		padding-inline: 20px 15px;
		padding-block: 20px 100px;
	}

	.nav-inner li {
		position: relative;
		list-style: none;
		border-bottom: 1px solid #ddd;
		margin-bottom: 0;
	}

	.main-nav li button:hover,
	.main-nav li a:hover,
	.main-nav li.active a {
		color: #1a1311;
	}

	.main-nav li a,
	.main-nav li button {
		color: #1a1311;
		border: none;
		background: none;
		font-size: 1rem;
		padding: 1em 0;
	}

	.nav-inner .btn {
		height: 54px;
		font-size: 1rem;
	}

	.nav-inner .btn.btn-registration::after {
		width: 9%;
		height: 46%;
	}
	.nav-inner .btn.btn-login::after {
		width: 9%;
		height: 53%;
	}
	.nav-inner .btn.btn-book::after {
		width: 8%;
		height: 43%;
	}

	/* active クラスがついたら画面内へ */
	.gnav.is-active {
		right: 0;
	}

	.open .nav-inner {
		opacity: 1;
		transition: all 0.3s;
		transition-delay: 0.4s;
	}

	.main-nav .accordionBtn::after {
		content: '';
		display: block;
		color: #1a1311;
		line-height: 1;
		width: 0.5em;
		height: 0.5em;
		border: 1px solid currentColor;
		border-left: 0;
		border-bottom: 0;
		position: absolute;
		top: 50%;
		right: 1em;
		transform-origin: center;
		transform: translateY(-50%) rotate(135deg);
		transition: 0.2s;
	}
	.main-nav li.active .accordionBtn::after {
		transform: translateY(-50%) rotate(-45deg);
	}

	.main-nav li .sub-menu li a {
		background: none;
		color: #1a1311;
		border: none;
		font-size: var(--fz14);
	}

	/*===============================
	MARK: TOP
	=================================*/
	#mv {
		width: 100vw;
		max-width: unset;
		margin-inline: -15px;
	}

	.on-demand-message {
		position: absolute;
		top: 30%;
	}

	.on-demand-message h3 {
		font-size: 0.875rem;
	}

	.on-demand-message p {
		font-size: 0.75rem;
	}

	#news {
		margin-top: 20px;
		border-radius: 25px;
	}

	.news-item {
		flex-direction: column;
		font-size: var(--fz14);
		row-gap: 5px;
		padding: 1em 0;
	}

	.news-ttl {
		padding-left: 1.5em;
	}

	/*===============================
	MARK: footer
	=================================*/
	.site-footer {
		margin-top: 80px;
	}

	.secretariat {
		padding: 80px 15px 50px 15px;
		flex-direction: column;
		row-gap: 50px;
	}

	.secretariat dt span {
		font-size: var(--fz12);
	}

	.secretariat dd h4 {
		font-size: var(--fz18);
	}

	.secretariat dd .address {
		font-size: var(--fz12);
	}

	.copyright {
		font-size: var(--fz10);
		padding-block: 25px;
	}

	.copyright .d-flex {
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}

	.copyright a {
		font-size: var(--fz12);
	}

	/*===============================
	MARK: 下層ページ
	=================================*/

	.lower-page .page-inner {
		margin-top: 20px;
		padding: 15px;
	}

	.chairman {
		flex-direction: column-reverse;
		margin-top: 3em;
		align-items: center;
	}

	.katagaki {
		text-align: center;
		font-size: var(--fz12);
	}

	.btn-wrap.entry {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: repeat(4, 1fr);
		grid-column-gap: 30px;
		grid-row-gap: 30px;
	}

	.dl-table {
		flex-direction: column;
	}

	.dl-table > dt,
	.dl-table > dd {
		width: 100%;
	}
}

@media (max-width: 470px) {
	.table.sp-block {
		border: 1px solid;
	}

	.table.sp-block th,
	.table.sp-block td {
		display: block;
		width: 100%;
		border: none;
	}
}
