 /* ~1024px */
@media screen and (max-width: 64em){
	.header-info ul li, .footer-info ul li {
		font-size: .8em;
	}
	.header-info a, .header-info span, .header-info i, .footer-info a, .footer-info span, .footer-info i {
		font-size: 1.2em;
	}
	.header-list .btn {
		margin: 0 10px;
		padding: 0 10px;
	}
	.img-instagram, .img-line {
		font-size: 2.2em;
		margin: 0 15px;
	}
	.laungage {
		margin: 0 50px;
		padding: 15px 25px;
	}
	.section-title {
		font-size:2em;
	}
	.consept .inner {
		padding-top: 80px;
	}
	.consept-inner .consept-text {
		font-size: 1.2em;
		right: 2%;
	}
	.consept-inner .consept-text-en {
		font-size: 1.1em;
		right: 2%;
	}
	.overlay {
		padding: 20px;
		top: 27%;
		right: 18%;
	}
	.overlay2, .overlay4 {
		padding: 15px;
		top: 60%;
		left: 8%;
	}
	.overlay h1 {
		letter-spacing: .4em;
		font-size: 1.5em;
		line-height: 1.6;
	}
	.overlay2 p{
		font-size: 1.1em;
		line-height: 1.9;
		letter-spacing: .4em;
	}
	.overlay4 p {
		font-size: .9em;
		line-height: 1.9;
		letter-spacing: .4em;
	}
	.Price-inner table tr th, .Price-inner table tr td {
		font-size: 1.3em;
		padding: 30px 35px 40px;
	}
	.Price-inner table tr td {
		font-size: 2.3em;
	}
	.gallery-inner img {
		padding: 15px;
		height: 250px;
		width: 270px;
		object-fit: cover;
	}
	.wrap:nth-of-type(7){
		padding-top: 50px;
	}
	.info-contant {
		width: 100%;
		font-size: 1.5em;
	}
	.info-group ul li {
		font-size: 1.2em;
		display: block;
		margin: 15px 10px;
	}
	.map iframe {
		width: 500px;
		height: 450px;
	}
	/*.contact p {
		font-size: 1.1em;
		margin-bottom: 20px;
	}*/
}

 /* ~768px */
@media screen and (max-width: 48em){
	body {
		padding-bottom: calc(64px + env(safe-area-inset-bottom));
	}
	.mobile-booking-bar {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 9;
		display: flex;
		min-height: 64px;
		padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
		background: rgba(18, 31, 43, .96);
		box-shadow: 0 -4px 14px rgba(0, 0, 0, .25);
		gap: 8px;
	}
	.mobile-booking-bar a {
		display: flex;
		flex: 1;
		align-items: center;
		justify-content: center;
		min-height: 48px;
		border-radius: 4px;
		color: #fff;
		font-size: .95rem;
		font-weight: bold;
		letter-spacing: .04em;
	}
	.mobile-booking-bar i {
		margin-right: 8px;
		font-size: 1.25rem;
	}
	.mobile-booking-bar .mobile-booking-line {
		border: 1px solid #c9a45f;
		background: #c9a45f;
		color: #182838;
	}
	.mobile-booking-tel {
		border: 1px solid #ffcc66;
		background: #2c3e50;
	}
	.header-info {
		display: none;
	}
	.header-info ul li, .footer-info ul li {
		font-size: .7em;
	}
	.header-info a, .header-info span, .header-info i, .footer-info a, .footer-info span, .footer-info i {
		font-size: 1.1em;
		line-height: 1.2;
	}
	.header-list{
		margin: 10px 0;
	}
	.header-list .btn {
		font-size: .8em;
		margin: 0 10px;
		padding: 0 10px;
		width: 70px;
	}
	.img-instagram, .img-line {
		font-size: 2.2em;
		margin: 0 15px;
	}
	.laungage {
		margin: 0 30px;
		padding: 15px 20px;
	}
	.laungage img {
		width: 70%;
	}

	.laungage span, .laungage-text {
		font-size: 1.3em;
	}
	.laungage a i {
		font-size: 1.2rem;
	}

	.wrap:nth-of-type(5){
		padding-top: 100px;
	}
	.wrap:nth-of-type(5), .wrap:nth-of-type(7) {
		margin-bottom: 0px!important;
	}
	.overlay {
		padding: 20px;
		top: 27%;
		right: 8%;
	}
	.overlay2 {
		padding: 15px;
		top: 60%;
		left: 12%;
	}
	.overlay4 {
		padding: 15px;
		top: 60%;
		left: 7%;
	}
	.overlay h1 {
		letter-spacing: .4em;
		font-size: 1.5em;
		line-height: 1.6;
	}
	.overlay2 p {
		font-size: 1.1em;
		line-height: 1.9;
		letter-spacing: .4em;
	}
	.overlay4 p {
		font-size: 1em;
		letter-spacing: .3em;
	}
	.Price-inner table tr th, .Price-inner table tr td {
		font-size: 1.2em;
		padding: 35px 15px 0px;
	}
	.Price-inner table tr td {
		font-size: 1.8em;
	}
	.price .paymentNotes {
		font-size: 1.2em;
		width: 90%;
	}
	.price .paymentNotes p:nth-of-type(1) {
		text-align: center;
		margin-bottom: 1vw;
	}
	.price .paymentNotes p:nth-of-type(2) {
		text-align: center;
		margin-bottom: 7.5vw;
	}
	.price .paymentNotes .emphasis {
		font-size: 1.5em;
	}
	#hairdye {
		text-align: center;
	}
	.info-contant {
		font-size: 1.4em;
	}
	.info-group {
		width: 60%;
	}
	.map {
		padding: 10px;
		margin: 0px 10px 0px;
		width: 75%;
	}
	.map iframe {
		width: 100%;
	}
	footer {
		padding: 25px 0;
	}
	footer .nav {
		margin: 0px 30px 15px 0;
	}
	.copyright span br {
		display: block;
	}
	.copyright {
		display: block;
		font-size: .8em;
		margin-top: 0px;
		letter-spacing: 2px;
	}
}

 /* ~480px（スマホ縦） */
@media screen	and ( max-width:30em) {
	img {
		width: 100%;
		height: auto;
	}
	#loader-bg img {
		height: 16%;
		width: auto;
	}
	#loader p{
		font-size: 1.5em;
	}
	.top-img .overlay p br:nth-of-type(3){
		display: block;
	}
	.header-info, .footer-info {
		padding: 10px 15px 0px;
	}

	.header-info ul li:nth-of-type(2), .header-info ul li:nth-of-type(5)	{
		border-right: 1px solid #fff;
	}
	.header-info ul li:nth-of-type(4){
		display: none;
	}
	.header-info ul li:nth-of-type(5){
		display: block;
	}
	.wrap:nth-of-type(5), .wrap:nth-of-type(7), .wrap:nth-of-type(9) {
		padding-top: 0px;
	}
	.header-info ul{
		-webkit-box-align: start;
		-ms-flex-align: start;
		align-items: flex-start;
		-webkit-flex-wrap: wrap;
		flex-wrap: wrap;
	}
	.header-info ul li {
		-webkit-flex-grow: 1;
		flex-grow: 1;
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
		font-size: .8em;
		padding: 0 10.5px;
		margin:	0 0 5px;
		display: block;
	}
	.header-list {
		display: -webkit-flex;
		-webkit-justify-content: space-around;
		justify-content: space-around;
		-webkit-flex-wrap: wrap;
	}
	.header-list .nav {
		margin: 5px 0;
	}
	.header-list .btn {
		font-size: .7em;
		margin: 0 7px;
		padding: 0 0px;
		width: 50px;
	}
	.img-instagram, .img-line {
		font-size: 1.6em;
		margin: 0 5px;
	}
	.laungage {
		margin: 0 5px;
		padding: 0px 5px;
		height: 20px;
	}
	.laungage a span {
		font-size: .9em;
	}
	.laungage-text {
		font-size: 1.2rem;
	}
	.laungage a i {
		font-size: 1rem;
	}
	.bg-slider {
		width: 100%;
		height: auto;
		aspect-ratio: 3 / 2;
	}
	h2 {
		margin: 25px 10px;
	}
	.section-title {
		padding: 0;
	}
	.section-title:before, .section-title:after {
		width: 30px;
	}
	.section-title:before {
		left: -9vw;
	}
	.section-title:after {
		right: -8vw;
	}
}
@media screen and ( max-width:30em) {
	/*button（旧CodePen外部CSSのimportを削除。詳細はstyle.css参照）*/
	.animate, .btn, .btn-border-o:before, .btn-border-o:after, .btn-border:before, .btn-border:after, .btn-border-rev-o:before, .btn-border-rev-o:after, .btn-border-rev:before, .btn-border-rev:after, .btn-fill-vert-o:before, .btn-fill-vert-o:after, .btn-fill-vert:before, .btn-fill-vert:after, .btn-fill-horz-o:before, .btn-fill-horz-o:after, .btn-fill-horz:before, .btn-fill-horz:after {
		transition: all 0.3s;
	}
	.btn {
		display: inline-block;
		line-height: 30px;
		margin: 0px 5px;
		padding: 0 8px;
		font-size: .8em;
		width: 60px;
	}
	.header-list {
		margin: 7px 0;
	}
	/*.nav {
		display: none;
	}
	*/
	.unit1,
	.unit1:before {
		background-image: url(../img/top/top-sp-min2.webp);
		background-repeat: no-repeat;
		background-position: top center;
		background-size: 100% auto;
		background-attachment: scroll;
	}
	.overlay {
		padding: 20px;
		text-shadow: 1px 1px 1px #111;
		background: rgb(44,62,80,.9);
		top: 34%;
		right: 5%;
	}
	.overlay2 {
		padding: 20px;
		top: 60%;
		left: 5%;
	}
	.overlay4 {
		padding: 10px;
		top: 65%;
		left: 2%;
	}
	.overlay3 {
		right: -5%;
		bottom: 0%;
		z-index: -1;
	}
	.overlay h1 {
		font-size: 1.3em;
	}
	.overlay h3 {
		font-size: 1.4em;
	}
	.overlay2 p {
		font-size: .9rem;
		text-align: center;
		letter-spacing: .3px;
	}
	.overlay4 p {
		font-size: .8rem;
		text-align: center;
		letter-spacing: .3px;
	}
	.container {
		height: 650px;
		width: 100%;
	}
	.top-img {
		height: 100vh;
	}

	/*--------consept----------------*/
	.consept .section-title {
		position: relative;
		top: 0;
		right: 0;
		z-index: 1;
	}

	.consept .inner {
		padding-top: 0px;
	}
	.consept-inner {
		max-height: 500px;
	}
	.consept .inner .consept-inner img {
		position: absolute;
		height: 35Vh;
		width: auto;
	}
	.consept .inner .consept-inner img:nth-of-type(2){
		height: 35Vh;
		top: 2%;
		right: 0%;
	}
	.consept-inner .consept-text {
		font-size: .9em;
		top: 35%;
		right: 5%;
		width: 90%;
		padding: 15px;
	}
	.consept-inner .consept-text-en {
		font-size: .8em;
		top: 35%;
		right: 5%;
		width: 90%;
		padding: 15px;
	}
}
@media screen and (max-width:30em) {
	/*-----------gallery------------*/
	.gallery-inner {
		-ms-flex-pack: distribute;
		justify-content: space-around;
		-webkit-flex-wrap: wrap;
		flex-wrap: wrap;
	}
	.gallery-inner img {
		padding: 10px;
		width: auto;
		height: 170px;
		width: 150px;
		object-fit: cover;
	}

	.gallery .attention br {
		display: block;
	}
	.gallery .attention {
		line-height: 1.7;
		font-size: 1.1em;
	}

	.wrap:nth-of-type(3), .wrap:nth-of-type(5), .wrap:nth-of-type(7), .wrap:nth-of-type(9) {
		margin-bottom: 20px!important;
	}

	/*------------price-------------------*/
	.Price-inner {
		justify-content:space-around;
		-webkit-flex-wrap: wrap;
		flex-wrap: wrap;
	}
	.Price-inner table {
		margin: 0 15px;
		width: 90%;
	}
	.Price-inner table tr th, .Price-inner table tr td {
		font-size: 1.2em;
		padding: 0px 10px;
		height: 80px;
		vertical-align: center;
	}
	.Price-inner table tr td {
		font-size: 1.7em;
		text-align: end;
	}
	.price .paymentNotes {
		font-size: 4.3vw;
	}
	.price .paymentNotes p:nth-of-type(1) {
		text-align: center;
	}
	.price .paymentNotes p:nth-of-type(2) {
		text-align: center;
	}
	.price .paymentNotes .emphasis {
		line-height: 1.7;
		font-size: 5.5vw;
	}
	.price .paymentNotes .attention {
		line-height: 1.7;
		margin: 0;
	}
	.items a {
		display: block;
	}
	.items img {
		width: 75%;
		margin: 10px;
	}
}
@media screen	and ( max-width:30em) {
	/*----------contact---------------------------*/
	/*.contact p {
		font-size: 1.1em;
	}
	form {
		width: 90%;
	}*/
	/*----------info----------*/
	.info-group {
		width: 100%;
	}
	.info p {
		font-size: 1.1em;
	}
	.parkinginfo-sp {
		display: block;
		font-size: 1.1em;
		margin: 10px 15px 20px!important;
	}
	.parkinginfo-pc {
		display: none;
	}
	.info-contant {
		width: 70%;
		display: inline-block;
		color: #333;
		font-size: 1.3em;
		text-decoration:none;
		border: 1px solid #333;
		border-radius: 5px;
		margin: 10px;
		padding: 10px 15px 10px;
	}
	.info-contant:hover {
		transition: .3s;
		background-color: #333;
		color: #fff;
	}
	.info-group ul li {
		font-size: 1.1em;
		display: block;
		margin: 5px 10px;
	}
	.info-contant i {
		font-size: 1em;
		margin-right: 15px;
	}

	.map {
		padding: 5px;
		margin: 0 10px;
		width: 95%;
	}
	.map iframe {
		width: 95%;
		height: 350px;
	}
	footer {
		padding: 20px 0 30px;
	}
	.copyright span br {
		display: block;
	}
	.copyright {
		display: block;
		font-size: .8em;
		padding-top: 10px;
		letter-spacing: 2px;
	}
}
/*----------------------width-26em 416px---------------*/
@media screen and (max-width:26em) {
	.header-info ul li {
	font-size: .8em;
	padding: 0 8.7px;
	}
	.overlay {
		padding: 15px;
		top: 30%;
		right: 5%;
	}
	.consept-inner .consept-text-en {
		font-size: .7em;
		top: 35%;
		right: 5%;
		width: 90%;
		padding: 15px;
	}
}
/*----------------------width-24em 386px---------------*/

@media screen and (max-width:24em) {
	#loader-bg img {
		height: 15%;
	}
	.header-info ul li {
		font-size: .7em;
		padding: 0 6px;
	}
	.consept-inner .consept-text-en {
		font-size: .7em;
		top: 30%;
		padding: 10px;
	}

	/*button（旧CodePen外部CSSのimportを削除。詳細はstyle.css参照）*/
	.animate, .btn, .btn-border-o:before, .btn-border-o:after, .btn-border:before, .btn-border:after, .btn-border-rev-o:before, .btn-border-rev-o:after, .btn-border-rev:before, .btn-border-rev:after, .btn-fill-vert-o:before, .btn-fill-vert-o:after, .btn-fill-vert:before, .btn-fill-vert:after, .btn-fill-horz-o:before, .btn-fill-horz-o:after, .btn-fill-horz:before, .btn-fill-horz:after {
		transition: all 0.3s;
	}
	.header-list .btn {
		font-size: .6em;
		margin: 0 5px;
		padding: 0 0px;
		width: 40px;
	}
	.img-instagram, .img-line {
		margin: 0 3px;
	}
	.laungage {
		margin: 0 3px;
		padding: 0px 3px;
		height: 20px;
	}
	.consept-inner .consept-text {
		font-size: .85em;
		top: 30%;
		right: 5%;
		width: 90%;
	}
	/*-----------gallery------------*/
	.gallery-inner img {
		height: 150px;
		width: 130px;
		object-fit: cover;
	}
	.price .emphasis {
		font-size: 1.2em;
	}
	.gallery .attention {
		font-size: 1em;
	}
	/*-----------price------------*/
	.price .emphasis {
		font-size: 1.3em;
	}
	.price .attention {
		font-size: .95em;
	}
	.Price-inner table tr th, .Price-inner table tr td {
		font-size: 1.1em;
		height: 70px;
		padding: 0px 6px;
	}
	.Price-inner table tr td {
		font-size: 1.5em;
	}
	/*----------contact---------------------------*/
	.contact p {
		font-size: 1em;
	}
	.copyright {
		display: block;
		font-size: .8em;
		letter-spacing: 2px;
	}
}

/*----------------------width-23.5em 376px---------------*/
@media screen and (max-width:23.5em) {
	.header-info ul li {
	padding: 0 9px;
	}
	#hair-dye::after {
		margin-left: 20px;
	}
}
/*----------------------width-23em 360px---------------*/
@media screen and (max-width:23em) {
		.header-info ul li {
		padding: 0 6.5px;
	}
}
/*----------------------width-20em 320px---------------*/

@media screen and (max-width:20em) {
	#loader-bg img {
		height: 15%;
	}
	.header-info ul li {
		font-size: .5em;
		padding: 0 7.8px;
		margin:	0 0 5px;
	}
	/*button（旧CodePen外部CSSのimportを削除。詳細はstyle.css参照）*/
	.animate, .btn, .btn-border-o:before, .btn-border-o:after, .btn-border:before, .btn-border:after, .btn-border-rev-o:before, .btn-border-rev-o:after, .btn-border-rev:before, .btn-border-rev:after, .btn-fill-vert-o:before, .btn-fill-vert-o:after, .btn-fill-vert:before, .btn-fill-vert:after, .btn-fill-horz-o:before, .btn-fill-horz-o:after, .btn-fill-horz:before, .btn-fill-horz:after {
		transition: all 0.3s;
	}
	.header-list .btn {
		font-size: .6em;
		margin: 0 5px;
		padding: 0 0px;
		width: 36px;
	}
	.laungage a span {
		font-size: .7em;
	}
	.overlay {
		padding: 10px;
		top: 25%;
		right: 5%;
	}
	.overlay2 {
		padding: 15px;
		top: 55%;
	}
	.overlay4 {
		padding: 10px;
		top: 55%;
	}
	.overlay h1 {
		letter-spacing: .4em;
		font-size: 1.2em;
		line-height: 1.6;
	}
	.overlay4 p {
		font-size: .75em;
		text-align: center;
	}
	.consept-inner .consept-text {
		font-size: .8em;
		top: 30%;
	}
	.gallery-inner img {
		height: 130px;
	}
	.gallery .attention {
		font-size: .8em;
	}
	/*------------price-------------------*/
	.price .attention {
		font-size: .8em;
	}
	.Price-inner table tr th{
		font-size: .9em;
	}
	.Price-inner table tr td {
		font-size: 1.3em;
	}
	.Price-inner table:nth-of-type(2) tr:nth-of-type(4) th {
		font-size: .8rem;
	}
	#hair-dye::after {
		margin-left: 15px;
	}
	/*----------info----------*/
	.info p {
		font-size: .9em;
	}
	.info-group ul li {
		font-size: .9em;
	}
	footer .nav {
		margin: 0px 15px 15px 0;
	}
	footer .btn {
		margin: 0 2px;
		padding: 0px;
		font-size: .8em;
		width: 70px;
	}
	.copyright {
		font-size: .6em;
		letter-spacing: 2px;
	}
}

/* スマホ共通ヘッダー: 端末幅に関係なく同じ2段構成にする */
@media screen and (max-width:48em) {
	#loader-bg img {
		width: min(72vw, 280px);
		max-width: calc(100vw - 48px);
		height: auto;
		max-height: 28vh;
	}
	#loader p {
		font-size: clamp(1.2rem, 6vw, 1.6rem);
	}
	.unit1,
	.unit1:before {
		background-image: url(../img/top/top-sp-min2.webp);
		background-repeat: no-repeat;
		background-position: center top;
		background-size: 100% 100%;
		background-attachment: scroll;
	}
	.top-img {
		aspect-ratio: 740 / 1181;
		width: 100%;
		min-height: 0;
		height: auto;
		background-color: #ecf0f1;
	}
	.consept .section-title {
		position: relative;
		top: 0;
		right: 0;
		z-index: 1;
	}
	.consept .inner {
		padding-top: 0;
	}
	.consept-inner {
		box-sizing: border-box;
		height: auto;
		max-height: none;
		overflow: visible;
	}
	/* スマホは積み重ね型。画像は横幅基準の自然サイズ（拡大・トリミングなし）で
	   上部バナーとして通常フロー配置し、その下に本文を積む。
	   端末の縦横比に依存せず、横幅に対して常に同じ比率で表示される。 */
	.consept .inner .consept-inner img {
		position: relative;
		display: block;
		width: 100%;
		height: auto;
		inset: auto;
		margin: 0;
	}
	.consept .inner .consept-inner img:nth-of-type(2) {
		position: absolute;
		width: 100%;
		height: auto;
		top: 2%;
		left: 2%;
		right: auto;
	}
	.section-title {
		font-size: clamp(1.8rem, 7vw, 2.2rem);
		line-height: 1.2;
		margin-bottom: 32px;
	}
	/* Zの法則：overlay1(右上)→overlay2(左下)。中央寄せをやめ左下のブロックにする。 */
	.overlay2 {
		left: 4%;
		right: auto;
		top: 56%;
		width: min(74%, 320px);
		transform: none;
	}
	/* overlay3(装飾)はコラージュ背面。チラ見しすぎないよう少し上へ・やや大きめに。 */
	.overlay3 {
		right: 10%;
		bottom: 30%;
		width: 28%;
		height: 24%;
	}
	.overlay2 p,
	.overlay4 p {
		font-size: clamp(.88rem, 3.7vw, 1rem);
		line-height: 1.8;
		letter-spacing: .04em;
	}
	/* 本文は画像の下に通常フローで積み、少しだけ画像下端へ重ねる。
	   absolute配置をやめたので親(.consept-inner)の高さに自然に算入され、
	   JSによる高さ補正は不要になる。 */
	.consept-inner .consept-text,
	.consept-inner .consept-text-en {
		position: relative;
		top: auto;
		right: auto;
		left: auto;
		width: min(90%, 440px);
		margin: -10% auto 0;
		font-size: .9em;
		line-height: 1.75;
		letter-spacing: .03em;
		padding: 18px 18px 22px;
	}
	.consept-inner .consept-text-en {
		font-size: .8em;
	}
	.consept-inner .consept-text p,
	.consept-inner .consept-text-en p {
		margin-bottom: 12px;
	}
	.consept-inner .owner-name {
		margin-top: 16px;
		margin-bottom: 6px;
	}
	.bg-slider {
		width: 100%;
		height: auto;
		aspect-ratio: 3 / 2;
	}
	.bg-slider .bg-slider-layer {
		background-position: center top;
		background-attachment: scroll;
	}
	.gallery-inner {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		padding: 0 12px;
	}
	.gallery-inner a {
		display: block;
	}
	.gallery-inner img {
		width: 100%;
		height: auto;
		aspect-ratio: 1 / 1;
		padding: 0;
		object-fit: cover;
	}
	.items {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		margin: 36px 16px;
	}
	.items a,
	.items img {
		width: 100%;
		margin: 0;
	}
	.info p,
	.parkinginfo-sp,
	.info-group ul li {
		line-height: 1.7;
		letter-spacing: .02em;
	}
	.info-contant {
		line-height: 1.4;
	}

	.header-list {
		display: grid;
		grid-template-columns: 1fr auto auto;
		align-items: center;
		gap: 8px 12px;
		margin: 8px 12px;
	}
	.header-list .nav {
		display: grid;
		grid-column: 1 / -1;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 8px;
		width: 100%;
		margin: 0;
	}
	.header-list .btn {
		width: 100%;
		margin: 0;
		padding: 0 2px;
		font-size: .78rem;
		line-height: 34px;
		white-space: nowrap;
	}
	.mobile-brand {
		display: block;
		overflow: hidden;
		color: #ffcc66;
		font-family: 'Oranienbaum';
		font-size: 1rem;
		letter-spacing: .08em;
		line-height: 38px;
		text-align: left;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
	.sns-icons {
		display: flex;
		align-items: center;
		gap: 14px;
	}
	.img-instagram, .img-line {
		display: flex;
		align-items: center;
		justify-content: center;
		margin: 0;
		font-size: 1.8rem;
	}
	.laungage {
		display: flex;
		align-items: center;
		height: 38px;
		margin: 0;
		padding: 0 10px;
	}
	.laungage-text {
		display: flex;
		align-items: center;
		font-size: 1.2rem;
		line-height: 1;
	}
	.laungage a i {
		margin-right: 6px;
		font-size: 1rem;
	}

	/* スマホ共通Price: クラシックな料金リストにして、端末幅ごとの改行崩れを抑える */
	.Price-inner {
		display: grid;
		gap: 0;
		width: 100%;
	}
	.Price-inner table {
		width: calc(100% - 32px);
		max-width: 520px;
		margin: 0 auto;
		border-collapse: collapse;
	}
	.Price-inner table + table {
		margin-top: 0;
	}
	.Price-inner table tbody {
		display: block;
	}
	.Price-inner table tr {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: end;
		column-gap: 14px;
		margin: 0;
		padding: 17px 0 15px;
		border-bottom: 1px solid rgba(24, 40, 56, .36);
	}
	.Price-inner table tr th,
	.Price-inner table tr td {
		display: block;
		width: auto;
		height: auto;
		padding: 0;
		color: #333;
		vertical-align: initial;
	}
	.Price-inner table tr th {
		font-size: clamp(.98rem, 4vw, 1.12rem);
		font-weight: 700;
		line-height: 1.55;
		text-align: left;
		text-wrap: balance;
		word-break: keep-all;
		overflow-wrap: anywhere;
	}
	.Price-inner table tr td {
		align-self: end;
		margin-top: 0;
		color: #9a7334;
		font-size: clamp(1.28rem, 5.4vw, 1.65rem);
		font-weight: 700;
		letter-spacing: .01em;
		line-height: 1.2;
		text-align: right;
		white-space: nowrap;
	}
	.Price-inner table:nth-of-type(2) tr:nth-of-type(4) th {
		font-size: clamp(.95rem, 3.8vw, 1.08rem);
	}
	.price .paymentNotes {
		width: calc(100% - 32px);
		max-width: 520px;
		margin: 16px auto 0;
		font-size: clamp(.95rem, 3.9vw, 1.08rem);
		line-height: 1.7;
		text-align: center;
	}
	.price .paymentNotes p,
	.price .paymentNotes p:nth-of-type(1),
	.price .paymentNotes p:nth-of-type(2) {
		margin: 0 0 6px;
		text-align: center;
	}
	.price .paymentNotes .emphasis {
		font-size: clamp(1.05rem, 4.4vw, 1.2rem);
		line-height: 1.6;
	}
	.price .paymentNotes .attention {
		margin-top: 14px;
		font-size: clamp(.88rem, 3.5vw, 1rem);
		line-height: 1.7;
	}

	/* スマホのセクション間隔を最後に統一する */
	section {
		margin-bottom: 0;
	}
	h2 {
		margin: 0 10px 28px;
	}
	.section-title {
		margin-bottom: 28px;
	}
	.wrap[id="2"],
	.wrap[id="3"],
	.wrap[id="4"],
	.wrap[id="5"] {
		margin-bottom: 0!important;
		padding-top: 44px;
		padding-bottom: 44px;
	}
	.wrap[id="2"] {
		padding-bottom: 24px;
	}
	.wrap[id="3"],
	.wrap[id="4"] {
		padding-top: 46px;
	}
	.slide-wrap {
		margin: 0;
	}
	/* スライダー上下の余白は画面幅基準(vw)。端末幅が変わっても同じ比率で余白が付く。
	   雰囲気を見せるスライダーを、前後のブロックから余白で切り離して際立たせる。 */
	.wrap.slider-section {
		margin-bottom: 0!important;
		padding-top: 12vw!important;
		padding-bottom: 12vw!important;
	}
	.gallery-inner,
	.Price-inner,
	.info-inner {
		margin-top: 0;
	}
	.items {
		margin-top: 32px;
		margin-bottom: 0;
	}
	.info-group {
		margin-bottom: 0;
	}
	.map {
		margin-top: 28px;
		margin-bottom: 0;
	}
}

/* ヒーローは旧サイトの framing（コラージュ画像が枠にちょうど収まる）を維持する。
   この画像はヒーロー枠と同じ縦横比で作られているため background-size:100% 100% で
   歪まず全体が1画面に収まる。パララックス用に拡大すると framing が崩れるため当てない。

   スライダーの「背景固定」パララックスは script.js で実装（position:fixed のレイヤーを
   clip-path でスライダーの形に切り抜き、スクロール時に追従させる）。
   background-attachment:fixed がモバイルで効かない問題を回避し、昔の固定背景を再現する。 */
