@media (max-width: 767px) {

	html {
		font-size: 16px;
	}
	body {
		max-width: 680px;
		margin: 0 auto;
	}
	.pcSet {
		display: none !important;
	}
	.spSet {
		display: block !important;
	}
	/* ------------------------------ */
	/* common */
	/* ------------------------------ */
	section {
		margin: 0 auto;
	}
	.inner {
		padding: 0 20px;
	}
	h1 {
		width: 144px;
		padding: 0;
	}
	h2 {
		font-size: 47px;
		letter-spacing: .025em;
	}
	h2 span {
		font-size: 18px;
		margin: 0;
	}
	body:not(#home) h2 {
		text-shadow:
			1px 1px 2px #fff,
			-1px -1px 2px #fff,
			1px -1px 2px #fff,
			-1px 1px 2px #fff;
	}
	h3 {
		font-size: 26px;
	}
	h3 span {
		font-size: 13px;
	}
	/* ------------------------------ */
	/* bnrFixside */
	/* ------------------------------ */
	#bnrFixside {
		position: fixed;
		top: 270px;
		right: 0;
		width: 55px;
		height: 160px;
		padding: 15px 10px;
	}
	#bnrFixside.is_btm {
		position: absolute;
		top: auto;
		bottom: 0;
	}
	/* ------------------------------ */
	/* header */
	/* ------------------------------ */
	header .inner {
		padding: 20px;
	}
	header nav ul {
		display: none;
	}
	#nav_trigger {
		position: fixed;
		top: 25px;
		right: 15px;
		width: 70px;
		height: 20px;
		padding: 5px;
	}
	#nav_trigger span:before,
	#nav_trigger span:after {
		width: 60px;
		height: 1px;
	}
	#nav_trigger span:after {
		transform: translateY(10px) rotate(0deg);
	}
	#nav_trigger.opened span:before {
		transform: translateY(5px) rotate(-170deg);
	}
	#nav_trigger.opened span:after {
		transform: translateY(5px) rotate(170deg);
	}
	nav.is_open {
		width: 100%;
		height: 100vh;
		overflow-y: auto;
		padding: 80px 0 0;
	}
	nav.is_open ul {
		align-items: center;
		gap: 25px 0;
		padding: 0 15px;
		font-size: 18px;
	}
	nav.is_open ul span {
		font-size: 13px;
		text-align: center;
	}
	nav.is_open li.snsSet {
		gap: 0 20px;
		margin: 5px 0;
	}
	nav.is_open li.snsSet a {
		width: 32.5px;
	}
	nav.is_open .subNavi {
		width: 300px;
		margin: 30px auto 40px;
		gap: 15px 0;
	}
	nav.is_open a.btnArrow {
		padding: 10px 20px 10px 30px;
		font-size: 16px;
		border-radius: 30px;
	}
	nav.is_open a.btnArrow:after {
		right: 20px;
		top: 50%;
		width: 30px;
		height: 30px;
	}
	nav.is_open .logoSet {
		margin: 20px auto;
	}
	nav.is_open .logoSet span {
		font-size: 13px;
		padding: 0 0 5px;
	}
	nav.is_open .logoSet img {
		width: 176px;
	}
	/* ------------------------------ */
	/* main */
	/* ------------------------------ */
	main #bgTop {
		height: 450px;
		background-size: auto 120%;
	}
	/* ------------------------------ */
	/* section#catch */
	/* ------------------------------ */
	section#catch video {
		position: absolute;
		top: 115px;
		left: 50%;
		transform: translateX(-50%);
		width: 100%;
		height: 100%;
	}
	section#catch .inner {
		padding: 50px 20px 25px;
	}
	h2#h2Catch {
		font-size: 27px;
		letter-spacing: .025em;
		margin: 0 0 50px;
	}
	div#textCatch {
		margin: 30px 0 0;
	}
	div#textCatch>p {
		margin: 35px 0;
		font-size: 14px;
		width: calc(100% - 50px);
	}
	div#guideScroll {
		right: 10px;
		top: 500px;
	}
	div#guideScroll span {
		display: none;
	}
	div#guideScroll img {
		width: 60px;
	}
	/* ------------------------------ */
	/* section#about */
	/* ------------------------------ */
	section#about {
		margin: 0 auto;
	}
	section#about .inner {
		padding: 0 20px;
	}
	div#bgBeige {
		width: 100%;
		height: 100%;
		top: 480px;
	}
	img#topAbout {
		width: calc(100% + 40px);
		max-width: none;
		height: 450px;
		margin: 0 -20px 120px;
		position: static;
		object-fit: cover;
		object-position: left 20%;
	}
	section#about p {
		margin: 40px 0 0;
		font-size: 14px;
		width: 100%;
	}
	div#boxAbout {
		width: calc(100% + 40px);
		background-size: auto 100%;
		background-position: 20% 50%;
		margin: 70px -20px 0;
		padding: 70px 20px;
	}
	div#boxAbout h3 {
		font-size: 17px;
		margin-bottom: 40px;
	}
	div#boxAbout ul.grid {
		grid-template-columns: repeat(1, 1fr);
		gap: 10px;
		width: 240px;
		margin: auto;
	}
	div#boxAbout ul>li {
		padding: 28px 0 10px;
		font-size: 15px;
	}
	div#boxAbout ul>li:after {
		width: 14px;
		top: 10px;
	}
	/* ------------------------------ */
	/* section#service */
	/* ------------------------------ */
	section#service {
		margin: 70px auto 0;
	}
	section#service .inner {
		padding: 30px 20px 0;
	}
	section#service p {
		font-size: 14px;
		width: 100%;
		position: static;
		margin: 50px 0 25px;
	}
	section#service .flex {
		width: calc(100% + 40px);
		margin: 40px -20px;
		border-right: none;
	}
	.flex>a.card {
		width: 100% !important;
		padding: 30px 45px 45px !important;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		border-left: none;
	}
	.flex>a.card:nth-child(n+4):nth-child(-n+5) figure {
		order: 0;
	}
	.flex>a.card:nth-child(n+4):nth-child(-n+5) h3,
	.flex>a.card:nth-child(n+4):nth-child(-n+5)>span {
		position: relative;
		top: 0;
		left: 0;
	}
	.flex>a.card>span {
		padding: 0;
	}
	.flex>a.card>span:after {
		width: 130px;
		margin-left: 5px;
	}
	.flex>a.card>span:before {
		width: 8px;
		height: 8px;
	}
	.flex>a.card figure {
		width: 186px;
		height: 242px;
		border-radius: 6.25rem;
		overflow: hidden;
		background-repeat: no-repeat;
		transition: .3s ease-in-out;
		border: 1px solid #B7B7B7;
		position: relative;
		margin: 1.25rem 0;
	}
	/* ------------------------------ */
	/* section#access */
	/* ------------------------------ */
	section#access {
		padding-top: 30px;
	}
	section#access .inner {
		padding: 30px 20px 50px;
	}
	section#access dl {
		width: 100%;
		font-size: 14px;
		margin: 40px 0 50px;
		border-top: 1px solid #D5D5D5;
	}
	section#access dl dt {
		width: 6em;
		padding: 15px 5px;
	}
	section#access dl dd {
		width: calc(100% - 6em);
		padding: 15px 5px;
	}
	section#access iframe {
		width: calc(100% + 40px);
		height: 360px;
		margin: 0 -20px;
	}
	/* ------------------------------ */
	/* footer */
	/* ------------------------------ */
	footer .inner {
		padding: 70px 20px 0;
		flex-direction: column;
	}
	footer .logoSet {
		width: 100%;
		margin: 0 auto 50px;
		text-align: center;
	}
	footer .logoSet span {
		font-size: 13px;
		padding: 0 0 5px;
	}
	footer .logoSet img {
		width: 200px;
		margin: auto;
	}
	footer nav {
		order: -1;
		margin: 0 auto;
	}
	footer nav ul {
		font-size: 18px;
		flex-direction: column;
		gap: 25px 0;
		align-items: center;
		padding: 15px 0;
	}
	footer nav ul span {
		font-size: 13px;
		text-align: center;
	}
	footer .subNavi {
		flex-direction: column;
		gap: 15px 10px;
		margin: 20px 0 50px;
	}
	footer .snsSet {
		gap: 0 20px;
		margin: 0 auto 30px;
	}
	footer .snsSet a {
		width: 30px;
	}
	footer .subNavi a.btnArrow {
		width: 300px;
	}
	footer .subNavi a.btnArrow:nth-of-type(1) {
		order: 2;
	}
	footer .subNavi a.btnArrow:nth-of-type(2) {
		order: 1;
	}
	footer #btmSet {
		flex-direction: column;
		justify-content: center;
		gap: 10px;
		padding: 50px 0;
		font-size: 12px;
		text-align: center;
	}
	#pageTop {
		right: 10px;
		bottom: 20px;
		width: 60px;
	}
	/* ------------------------------ */
	/* section#mainV */
	/* ------------------------------ */
	section#mainV {
		margin-bottom: 0;
		overflow: hidden;
	}
	section#mainV>img {
		top: 130px;
		height: 520px;
		object-position: 66% 50%;
	}
	section#mainV .inner {
		padding: 100px 20px 30px;
	}
	#anchorNav {
		flex-direction: column;
		gap: 10px;
		margin: 140px 0 0;
		width: 64%;
	}
	#anchorNav>a {
		padding: 15px;
		width: 100%;
	}
	#anchorNav>a:after {
		right: 16px;
	}
	/* ------------------------------ */
	/* body#menu */
	/* ------------------------------ */
	body#menu section:not(#mainV) .inner {
		margin: 0 auto;
		padding: 40px 20px 0;
	}
	body#menu h3 {
		font-size: 32px;
		gap: 0 10px;
		padding: 20px 0;
	}
	body#menu h3>span {
		font-size: 14px;
	}
	body#menu h3:after {
		width: 38%;
	}
	body#menu .boxDtl {
		margin: 30px 0;
		flex-direction: column;
	}
	body#menu .boxDtl>img {
		width: 92%;
		max-width: 480px;
		margin: auto;
	}
	body#menu .boxDtl>.textSet {
		width: 92% !important;
		max-width: 480px;
		margin: auto;
		padding-left: 0;
	}
	section#menu1 .absPos {
		display: none;
	}
	body#menu h4 {
		font-size: 20px;
		margin: 20px 0;
	}
	body#menu h4>span {
		font-size: 16px;
	}
	body#menu h4.f_eb {
		font-size: 22px;
	}
	body#menu h4:not(:first-of-type) {
		margin-top: 20px;
	}
	body#menu h4:has(+ .priceSet) {
		margin-bottom: 10px;
	}
	body#menu .boxDtl>.textSet>p {
		font-size: 14px;
		margin-bottom: 15px;
		line-height: 1.8;
		letter-spacing: .025em;
	}
	body#menu .boxDtl>.textSet>p:has(+ .priceSet) {
		margin-bottom: 20px;
	}
	body#menu .priceSet {
		font-size: 14px;
	}
	section#menu4 ul.priceSet li {
		margin-top: 20px;
	}
	section#menu4 ul.priceSet li:before {
		width: 7px;
		height: 7px;
	}
	section#menu4 ul.priceSet li span {
		padding-left: 10px;
	}
	body#menu dl.priceSet dt:before {
		width: 7px;
		height: 7px;
	}
	body#menu p:has(+ h4),
	body#menu p:has(+ .priceSet) {
		margin: 20px 0;
	}
	dl.priceSet.narrow {
		align-items: flex-start;
	}
	dl.priceSet.narrow dd span {
		display: block;
		padding-left: 0;
		margin: 0 0 10px -5em;
		letter-spacing: .025em;
		line-height: 1.6;
	}
	.boxNote {
		margin: 20px 0 0;
		padding: 30px 25px;
		font-size: 14px;
	}
	section#notice {
		margin: 50px auto;
	}
	section#notice p {
		font-size: 14px;
		padding: 3px 0 3px 1em;
	}

	/* ------------------------------ */
	/* body#guest */
	/* ------------------------------ */
	body#guest section#mainV>img {
		object-position: 88% 56%;
	}
	body#guest #anchorNav {
		margin: 320px 0 0;
	}
	body#guest h3 {
		font-size: 26px;
		padding-bottom: 30px;
		margin-bottom: 70px;
	}
	section#guest1 .inner {
		margin: 40px auto 0;
		padding: 60px 20px 0;
	}
	section#guest1 .inner+.inner.wide {
		margin: -50px auto 50px;
		width: 92%;
	}
	.boxStep {
		width: 92% !important;
		max-width: 480px;
		margin: 50px auto;
	}
	.boxStep>.ttl {
		flex-direction: column;
		text-align: center;
		gap: 5px;
		padding: 0 0 10px;
	}
	.stepNum {
		width: auto;
		flex-direction: column;
		align-items: center;
		gap: 2px;
	}
	.stepNum span {
		font-size: 13px;
	}
	.stepNum strong {
		font-size: 34px;
	}
	body#guest h4 {
		width: auto;
		font-size: 18px;
		line-height: 1.5;
	}
	.boxStep>.flex {
		padding: 40px 0 0;
		gap: 20px;
	}
	.boxStep>.flex>img {
		width: 40%;
		max-width: 160px;
		margin: auto;
	}
	.boxStep>.flex>.textSet {
		width: 100%;
		font-size: 14px;
		letter-spacing: .025em;
		line-height: 2;
	}
	.boxStep>.flex>.textSet>p {
		text-align: center;
	}
	#step1 .btnSet {
		flex-direction: column;
		gap: 15px;
		margin: 20px auto 0;
		width: 98%;
	}
	#step1 .btnSet>a.btnRes {
		font-size: 16px;
		width: 100%;
		border-radius: 30px;
		padding: 5px 5%;
	}
	#step1 .btnSet>a.btnRes img {
		height: 35px;
	}
	#step2.boxStep>.flex>.textSet {
		line-height: 1.75;
	}
	#step2.boxStep>.flex>.textSet>p {
		text-align: left;
	}
	#step2 dl {
		margin-top: 16px;
	}
	section#guest1 .boxNote {
		margin: 20px 0 0;
	}
	section#guest2 .inner {
		padding: 60px 20px 30px;
	}
	section#guest2 dl {
		margin: 15px auto;
		font-size: 15px;
	}
	section#guest2 dl>dt {
		padding: 15px 60px;
	}
	section#guest2 dl>dt:before {
		font-size: 28px;
		top: 15px;
		left: 15px;
	}
	section#guest2 dl>dd {
		padding: 15px 60px;
	}
	section#guest2 dl>dd:before {
		font-size: 28px;
		top: 15px;
		left: 15px;
	}


	/* ------------------------------ */
	/* style */
	/* ------------------------------ */
	.flex {
		flex-direction: column;
	}
	.grid {
		grid-template-columns: 1fr;
	}
}