@media (max-width: 650px) {
	/*===============================
	MARK: common
	=================================*/
	body.is-fixed {
		overflow: hidden;
	}

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

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

	.header-inner {
		padding: 15px 20px 15px 0px;
		margin-inline: auto;
	}

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

	/* --- ボタンの基本スタイル --- */
	.hamburger {
		display: block;
		width: 50px;
		height: 56px;
		position: fixed;
		top: 0;
		right: 0;
		background: #fff;
		border-radius: 20px 0 0 20px;
		cursor: pointer;
		z-index: 250;
	}

	.hamburger__line {
		display: block;
		width: 17px;
		height: 2px;
		background-color: var(--c-black);
		border-radius: 50em;
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		transition: 0.3s;
	}

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

	/* ボタンが 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: 80%;
		border-radius: 0 0 0 60px;
	}
	#js-sp-nav .nav-logo {
		display: flex;
		align-items: center;
		justify-content: center;
		padding-inline: 30px 35px;
		padding-bottom: 60px;
	}
	#js-sp-nav .nav-logo img {
		width: min(90%, 295px);
	}
	.gnav {
		position: fixed;
		top: 0;
		right: -150%;
		width: 100%;
		height: 100vh;
		background: rgb(255 255 255 / 0.9);
		z-index: 200;
		transition: 0.4s;
		overflow: auto;
		overscroll-behavior: contain;
	}
	.nav-inner {
		position: relative;
		padding: 30% 35px 30px 30px;
		box-shadow: none;
		border-radius: 0;
		background: none;
	}

	.nav-inner li {
		position: relative;
		list-style: none;
		border-bottom: 1px solid #ddd;
		margin-bottom: 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
	=================================*/
	.top-wrap {
		background: url(../images/mv_bg_sp.jpg) no-repeat;
		background-size: cover;
		background-position: top;
	}

	#mv {
		margin: 0 calc(50% - 50vw);
		margin-top: -10px;
		width: 100vw;
	}

	.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: 80px;
		margin-bottom: -275px;
	}

	.news-item {
		flex-direction: column;
		row-gap: 5px;
		padding: 1em 0;
	}

	.news-list {
		height: 453px;
	}

	/*===============================
	MARK: footer
	=================================*/
	#page-top {
		right: 15px;
		bottom: 15px;
	}

	.top-page .secretariat {
		padding-top: 300px;
	}

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

	.secretariat-inner {
		flex-direction: column;
		gap: 20px;
	}

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

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

	.copyright {
		padding-block: 25px;
		text-align: center;
	}

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

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

	.greeting-heading .d-flex {
		flex-direction: column;
		gap: 20px;
	}

	.greeting-heading .img-wrap {
		padding-inline: 20%;
	}

	.chairman-detail {
		width: 100%;
	}

	.greeting-heading .chairman-message {
		text-align: center;
		font-size: var(--fz18);
	}

	.chairman-position dt {
		font-size: 1rem;
	}

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

	.table.outline th,
	.table.outline td {
		display: block;
		width: 100%;
	}

	.table.outline th {
		text-align: left;
	}
}

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

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