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

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

	.page-content {
		width: 100%;
		padding-left: 0;
	}

	/*===============================
	MARK: header
	=================================*/
	.sp-header {
		position: fixed;
		z-index: 1;
		background: rgba(1, 66, 93, 0.85);
		backdrop-filter: blur(5px);
		width: 100%;
		padding: 5px 10px 7px 12px;
	}

	.site-logo {
		width: 85%;
	}

	.site-logo img {
		display: block;
	}

	/*===============================
	MARK: nav
	=================================*/
	.c-navOverlay {
		position: fixed;
		inset: 0;
		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;
		cursor: pointer;
		z-index: 250;
	}

	.hamburger__line {
		display: block;
		width: 22px;
		height: 2px;
		background-color: #fffcdb;
		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 {
		top: -100%;
		width: 100%;
		max-width: unset;
		height: 100%;
		background: #01425d;
		backdrop-filter: blur(5px);
		z-index: 200;
		transition: 0.4s;
		overflow: auto;
		overscroll-behavior: contain;
		padding: 0;
	}

	.nav-inner {
		position: relative;
		padding: 31px 35px 30px 55px;
	}

	.nav-inner li {
		position: relative;
		list-style: none;
		margin-bottom: 0;
	}

	.main-nav button,
	.main-nav a {
		font-size: 1rem;
		padding-left: 1.5em;
	}

	.main-nav a::before {
		content: '●';
		position: absolute;
		top: 0.3em;
		left: 0;
	}

	/* active クラスがついたら画面内へ */
	#js-sp-nav.is-active {
		top: 0;
	}

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

	/*===============================
	MARK: TOP
	=================================*/

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

	.mv-btn {
		top: 53%;
		bottom: 0;
		left: 26px;
	}

	.mv-btn .d-flex {
		gap: 18px;
		flex-direction: column;
	}

	#news {
		margin-top: 23px;
	}

	#news .inner {
		flex-direction: column;
		border-radius: 20px;
	}

	#news .heading {
		width: 100%;
		padding-top: 20px;
	}

	.news-inner {
		padding: 0 27px 0 27px;
	}

	.news-list {
		height: 265px;
	}

	.news-item {
		flex-direction: column;
		row-gap: 0;
	}

	.news-date::after {
		content: 'NEW';
		display: inline-block;
		padding-left: 0.5em;
		font-optical-sizing: auto;
		font-style: normal;
		font-weight: 600;
		color: #ff8d28;
	}

	.news-item.new .news-ttl::after {
		content: none;
	}

	#outline {
		margin-top: 40px;
	}

	#outline .d-flex {
		flex-direction: column;
		gap: 0;
	}

	#outline .d-flex > div {
		width: 100%;
	}

	#outline dl.office dd {
		line-height: 1.8;
	}

	#greeting {
		margin-top: 20px;
		padding: 19px 26px 50px 26px;
	}

	#greeting .inner.d-flex {
		gap: 15px;
		margin-top: 23px;
		flex-direction: column;
	}

	#greeting .img {
		max-width: 113px;
		align-self: center;
	}

	#access {
		margin-top: 48px;
	}

	#access .d-flex {
		flex-direction: column;
		gap: 30px;
	}

	#access .btn-wrap {
		text-align: center;
		margin-top: 25px;
	}

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

	#page-top {
		right: 15px;
		bottom: 15px;
	}

	.footer-content {
		background-image: url(../images/footer_sp.png);
		background-repeat: no-repeat;
		background-position: 0 100%;
		background-size: 100%;
		padding-block: 0px 170px;
	}

	.footer-content .inner {
		width: 100%;
		padding-left: 0;
	}

	.copyright {
		text-align: center;
		font-size: 10px;
	}

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

	.prospectus .text-center {
		width: 100%;
		flex: auto;
	}

	.accommodation .plan {
		grid-template-columns: auto;
		padding-inline: 0;
	}

	.english #access .place {
		margin-block: 10px 12px;
		font-size: var(--fz18);
	}
}

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

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