/* *****************************************************************************

  下層ページ用CSS

***************************************************************************** */

/* =========================================================
  【共通】メインコンテンツ
========================================================= */

/* -----------------
  リンク
----------------------------------------------- */

.page #main h2 + p.link {
	margin-top: calc(100vw / var(--base-width) * 40);
}

/* =========================================================
  【共通】メインコンテンツヘッダー
========================================================= */

.page #main header:has(img:not(.border-text), picture, ul.main-visuals) {
	display: grid;
	place-items: center;
}

/* -----------------
  見出し レベル1
----------------------------------------------- */

.page #main header h1 {
	z-index: 1;
	grid-area: 1 / 1;
	font-weight: normal;
}

.page #main header h1.ja,
.page #main header h1 span.ja {
	font-family: var(--font-family-title-ja);
}

.page #main header h1.en,
.page #main header h1 span.en {
	font-family: var(--font-family-title-en);
}

.page #main header:has(img:not(.border-text), picture, ul.main-visuals) h1 {
	text-align: center;
	color: var(--text-color-outline);
}

.page #main header h1:not(:has(span)) {
	line-height: 1.2em;
}

.page #main header h1 span {
	display: block;
	line-height: 1.2em;
}

/* -----------------
  メインビジュアル
----------------------------------------------- */

.page #main header > :where(img:not(.border-text), picture, ul.main-visuals) {
	grid-area: 1 / 1;
}

/* -----------------
  リード文
----------------------------------------------- */

.page #main header .lead-text .title {
	font-family: var(--font-family-title-ja);
}

/* =========================================================
  【PC】メインコンテンツヘッダー
========================================================= */

@media screen and (min-width: 641px) {
	.page #main header:not(:where(:has(img), :has(.main-visuals))) {
		padding: max(114px, calc(100vw / var(--base-width) * 160)) 0 0;
	}

	/* -----------------
	  見出し レベル1
	----------------------------------------------- */

	.page #main header:not(:where(:has(img), :has(.main-visuals))) h1 {
		margin: 0 var(--base-horizontal-margin);
	}

	.page #main header h1.en,
	.page #main header h1 span.en {
		margin-left: 0.17em;
		letter-spacing: 0.17em;
	}

	.page #main header h1 span.ja:first-child {
		font-size: calc(100vw / var(--base-width) * 22);
	}

	.page #main header h1 span.en:first-child {
		font-size: calc(100vw / var(--base-width) * 18);
	}

	.page #main header h1.en,
	.page #main header h1 span.en:last-child {
		font-size: calc(100vw / var(--base-width) * 50);
	}

	.page #main header:not(:where(:has(img), :has(.main-visuals))) h1 span.en:last-child {
		margin-top: 10px;
		font-size: calc(100vw / var(--base-width) * 79);
	}

	.page #main header:has(:where(img:not(.border-text), picture, ul.main-visuals)) h1 span:nth-child(2) {
		margin-top: 10px;
	}

	/* -----------------
	  リード文
	----------------------------------------------- */

	.page #main header .lead-text {
		padding: var(--base-vertical-margin) var(--base-horizontal-margin);
		width: 100%;
		text-align: center;
	}

	/* タイトル */
	.page #main header .lead-text .title {
		font-size: calc(100vw / var(--base-width) * 33);
	}

	/* テキスト */
	.page #main header .lead-text .title ~ p:not(.link) {
		margin-top: calc(100vw / var(--base-width) * 32);
		font-size: calc(100vw / var(--base-width) * 18);
		line-height: 2.1em;
	}

	/* リンク */
	.page #main header .lead-text .link {
		margin-top: calc(100vw / var(--base-width) * 60);
	}
}

/* =========================================================
  【SP】メインコンテンツヘッダー
========================================================= */

@media screen and (max-width: 640px) {
	.page #main header:not(:where(:has(img), :has(.main-visuals))) {
		padding: max(66px, calc(100vw / var(--base-width) * 100)) 0 0;
	}

	/* -----------------
	  見出し レベル1
	----------------------------------------------- */

	.page #main header:not(:where(:has(img), :has(.main-visuals))) h1 {
		margin: 0 var(--base-horizontal-margin);
	}

	.page #main header h1.en,
	.page #main header h1 span.en {
		letter-spacing: 0.1em;
	}

	.page #main header h1 span:where(.ja, .en):first-child {
		font-size: calc(100vw / var(--base-width) * 14);
	}

	.page #main header:has(:where(img:not(.border-text), picture, ul.main-visuals)) h1.en,
	.page #main header:has(:where(img:not(.border-text), picture, ul.main-visuals)) h1 span.en:last-child {
		font-size: calc(100vw / var(--base-width) * 28);
	}

	.page #main header:has(:where(img:not(.border-text), picture, ul.main-visuals)) h1 span.en:last-child {
		line-height: 1.6em;
	}

	.page #main header:not(:where(:has(img), :has(.main-visuals))) h1 span.en:last-child {
		margin-top: 6px;
		font-size: calc(100vw / var(--base-width) * 50);
	}

	/* -----------------
	  リード文
	----------------------------------------------- */

	.page #main header .lead-text {
		padding: var(--base-vertical-margin) var(--base-horizontal-margin);
		line-height: var(--line-height);
		text-align: center;
		width:100%;
		margin-top:-1px;
	}

	/* タイトル */
	.page #main header .lead-text .title {
		font-size: calc(100vw / var(--base-width) * 22);
	}

	/* テキスト */
	.page #main header .lead-text .title ~ p:not(.link) {
		margin-top: calc(100vw / var(--base-width) * 22);
		font-size: calc(100vw / var(--base-width) * 13);
	}

	/* リンク */
	.page #main header .lead-text .link {
		margin-top: calc(100vw / var(--base-width) * 40);
	}
}

/* =========================================================
  【共通】メインコンテンツボディ
========================================================= */

#main:not(:has(section)) .body {
	padding: var(--base-vertical-margin) var(--base-horizontal-margin) 0;
}

#main:not(:has(section)) .body > :first-child {
	margin-top: 0;
}

/* -----------------
  セクション
----------------------------------------------- */

.page #main .body > section {
	padding: var(--base-vertical-margin) var(--base-horizontal-margin);
}

.page #main .body > section:not(.bgc-relaxation, .bgc-fitness, .bgc-cafe-lounge, .bgc-how-we-do, .bgc-white, .reserve-menu, .area-what-is-boreca, :last-child) {
	padding-bottom: calc(var(--base-vertical-margin) / 2);
}

.page #main .body > section:not(.bgc-relaxation, .bgc-fitness, .bgc-cafe-lounge, .bgc-how-we-do, .bgc-white, .reserve-menu, :first-child, :has(.border-text.top)) {
	padding-top: calc(var(--base-vertical-margin) / 2);
}

.page #main .body > section[class*="bgc-"] + section:not(.bgc-relaxation, .bgc-fitness, .bgc-cafe-lounge, .bgc-how-we-do, .bgc-white, .reserve-menu) {
	padding-top: var(--base-vertical-margin);
}

/* -----------------
  見出し レベル2
----------------------------------------------- */

.page #main .body h2 {
	font-weight: normal;
}

.page #main .body h2 span:last-child.ja {
	line-height: 1.7em;
}

/* -----------------
  見出し レベル3
----------------------------------------------- */

#main section h3 {
	font-weight: normal;
}

.page #main .body h3 span {
	display: block;
}

#main section h3.en,
#main section h3 span.en {
	font-family: var(--font-family-title-en);
	letter-spacing: 0.1em;
}

#main section h3.ja,
#main section h3 span.ja {
	font-family: var(--font-family-title-ja);
}

/* -----------------
  文字揃え
----------------------------------------------- */

.page #main .body .text-center {
	text-align: center;
}

/* -----------------
  画像
----------------------------------------------- */

.page #main .body p:has(> img:only-child, picture:only-child) {
	margin-top: var(--base-vertical-margin);
	text-align: center;
}

/* -----------------
  境界テキスト
----------------------------------------------- */

.page #main .body:has(.border-text) section {
	position: relative;
}

.page #main .body .border-text {
	position: absolute;
	inset: 0;
	z-index: 1;
	margin: 0 auto;
}

/* セクション上部に表示するとき */
.page #main .body .border-text.top {
	bottom: auto;
	translate: 0 -50%;
}

/* セクション下部に表示するとき */
.page #main .body .border-text.bottom {
	top: auto;
	translate: 0 50%;
}

/* -----------------
  カード型レイアウト
----------------------------------------------- */

/* タイトル */
.page #main .body .cards .card .title {
	font-family: var(--font-family-title-ja);
}

/* テキスト */
.page #main .body .cards .card :where(.dish, .price, .text) {
	line-height: var(--line-height);
}

.page #main .body .cards .card :where(.text, .dish) {
	margin-top: calc(100vw / var(--base-width) * 16);
}

.page #main .body .cards .card .dish {
	color: var(--text-color-dish);
}

.page #main .body .cards .card .dish + .text {
	margin-top: 0;
}

/* -----------------
  ポイント（複数）
----------------------------------------------- */

.page #main .body .points {
	list-style: none;
}

.page #main .body .points li {
	border-top: 1px solid var(--color-sub);
	line-height: var(--line-height);
}

.page #main .body .points li:last-child {
	border-bottom: 1px solid var(--color-sub);
}

/* ラベル */
.page #main .body .points li .label {
	border: 1px solid var(--color-main);
	line-height: 1em;
}

/* タイトル */
.page #main .body .points li .title {
	font-weight: 500;
}

/* -----------------
  ポイント（単数）
----------------------------------------------- */

.page #main .body .point {
	line-height: var(--line-height);
}

/* ラベル */
.page #main .body .point .label {
	border: 1px solid var(--color-main);
	line-height: 1em;
}

.page #main .body :where(.bgc-relaxation, .bgc-fitness, .bgc-cafe-lounge, .bgc-how-we-do) .point .label {
	border-color: #fff;
}

/* タイトル */
.page #main .body .point .title {
	font-weight: 500;
}

/* -----------------
  予約エリア
----------------------------------------------- */

.page #main .body .reserve-menu {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 1;
}

.page #main .body .reserve-menu:first-child {
	margin-top: var(--base-vertical-margin);
}

.page #main .body :where(.bgc-relaxation, .bgc-fitness, .bgc-cafe-lounge, .bgc-how-we-do),
.page #main .body section:has(.bg-image) h2 {
	color: var(--text-color-outline);
}

.page #main .body .reserve-menu h2 + p:not(.link, .links) {
	margin-top: 12px;
	color: var(--text-color-outline);
	text-align: center;
}

/* 背面画像 */
.page #main .body .reserve-menu .bg-image {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.page #main .body .reserve-menu .bg-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* -----------------
  境界線
----------------------------------------------- */

.page #main .body hr {
	border: none;
	height: 1px;
	background-color: var(--color-main);
}

/* =========================================================
  【PC】メインコンテンツボディ
========================================================= */

@media screen and (min-width: 641px) {
	#main:not(:has(section)) .body {
		padding-bottom: calc(var(--base-vertical-margin) + calc(100vw / var(--base-width) * 40));
	}

	/* -----------------
	  見出し レベル2
	----------------------------------------------- */

	.page #main .body section h2 span:first-child.ja {
		font-size: calc(100vw / var(--base-width) * 22);
	}

	.page #main .body section h2 span:first-child.en {
		font-size: calc(100vw / var(--base-width) * 18);
	}

	.page #main .body section h2 span:last-child {
		margin-top: 22px;
	}

	.page #main .body section h2 span:last-child.ja {
		font-size: calc(100vw / var(--base-width) * 33);
	}

	.page #main .body section h2 span:last-child.en {
		font-size: calc(100vw / var(--base-width) * 79);
		letter-spacing: 0.17em;
	}

	.page #main .body section:has(.bg-image) h2.en {
		font-size: calc(100vw / var(--base-width) * 50);
	}

	/* -----------------
	  見出し レベル3
	----------------------------------------------- */

	.page #main .body h3 {
		margin-top: calc(100vw / var(--base-width) * 56);
	}

	.page #main .body h3 span.ja:first-child {
		font-size: calc(100vw / var(--base-width) * 22);
	}

	.page #main .body h3.en:not(:has(span)),
	.page #main .body h3 span.en:last-child {
		font-size: calc(100vw / var(--base-width) * 50);
	}

	.page #main .body h3 span.en:last-child {
		margin-top: calc(100vw / var(--base-width) * 22);
	}

	/* -----------------
	  補足
	----------------------------------------------- */

	.page #main .body p.note {
		margin-top: calc(100vw / var(--base-width) * 22);
		font-size: calc(100vw / var(--base-width) * 22);
	}

	/* -----------------
	  リンク
	----------------------------------------------- */

	.page #main .body .link.open-new-tab {
		display: block;
		margin-top: calc(100vw / var(--base-width) * 28);
	}

	/* -----------------
	  境界テキスト
	----------------------------------------------- */

	.page #main .body .border-text {
		height: calc(100vw / var(--base-width) * 101);
	}

	/* -----------------
	  カード型レイアウト
	----------------------------------------------- */

	.page #main .body .cards {
		margin-top: var(--base-vertical-margin);
	}

	.page #main .body .cards:where(.column2, .column3) {
		display: grid;
	}

	.page #main .body .cards.column2 {
		grid-template-columns: repeat(2, 1fr);
		gap: 120px calc(100vw / var(--base-width) * 84);
	}

	.page #main .body .cards.column3 {
		grid-template-columns: repeat(3, 1fr);
		gap: 110px calc(100vw / var(--base-width) * 91);
	}

	.page #main .body .cards.food-menu {
		margin-top: 24px;
		gap: 40px calc(100vw / var(--base-width) * 48);
	}

	.page #main .body .cards.column3:has(> :only-child) .card {
		grid-column: 2;
	}

	.page #main .body .cards .card {
		line-height: var(--line-height);
	}

	.page #main .body .cards .card > :first-child {
		margin-top: 0;
	}

	.page #main .body .cards:not(.column2, .column3).food-menu .card:nth-child(n + 2) {
		margin-top: 40px;
	}

	/* 画像 */
	.page #main .body .cards .card .pic img {
		width: 100%;
	}

	/* タイトル */
	.page #main .body .cards .card :where(.title, .name) {
		margin-top: calc(100vw / var(--base-width) * 16);
		line-height: var(--line-height);
	}

	.page #main .body .cards .card .title {
		font-size: calc(100vw / var(--base-width) * 22);
	}

	.page #main .body .cards .card .name {
		font-size: calc(100vw / var(--base-width) * 28);
	}

	/* テキスト */
	.page #main .body .cards .card .text {
		margin-top: calc(100vw / var(--base-width) * 16);
	}

	/* -----------------
	  ポイント（複数）
	----------------------------------------------- */

	.page #main .body .points {
		margin-top: calc(100vw / var(--base-width) * 56);
	}

	.page #main .body .points li {
		display: grid;
		grid-template: "label title" "label text" / auto 1fr;
		gap: 10px 32px;
		padding: 36px 0;
	}

	/* ラベル */
	.page #main .body .points li .label {
		display: block;
		grid-area: label;
		align-self: start;
		margin-top: 0.2em;
		padding: calc(100vw / var(--base-width) * 4) calc(100vw / var(--base-width) * 17);
		font-size: calc(100vw / var(--base-width) * 14);
	}

	/* タイトル */
	.page #main .body .points li .title {
		grid-area: title;
		font-size: calc(100vw / var(--base-width) * 18);
		font-weight: 600;
	}

	/* テキスト */
	.page #main .body .points li .text {
		grid-area: text;
	}

	/* -----------------
	  ポイント（単数）
	----------------------------------------------- */

	.page #main .body .point {
		display: grid;
		grid-template-columns: auto 1fr;
		gap: 0 32px;
		margin-top: calc(100vw / var(--base-width) * 42);
	}

	/* ラベル */
	.page #main .body .point .label {
		display: block;
		align-self: start;
		margin-top: 0.2em;
		padding:
			calc(100vw / var(--base-width) * 3)
			calc(100vw / var(--base-width) * 17)
			calc(100vw / var(--base-width) * 5);
		font-size: calc(100vw / var(--base-width) * 14);
	}

	.page #main .body .point > *:not(.label) {
		grid-column: 2;
	}

	/* タイトル */
	.page #main .body .point .title {
		font-size: calc(100vw / var(--base-width) * 18);
	}

	/* テキスト */
	.page #main .body .point p:not(.title) {
		margin-top: 1.5em;
	}

	.page #main .body .point .title + p {
		margin-top: 1em;
	}

	/* -----------------
	  予約エリア
	----------------------------------------------- */

	.page #main .body .reserve-menu {
		padding:0 calc(100vw / var(--base-width) * 162);
		height: calc(100vw / var(--base-width) * 400);
	}

	.page #main .body .reserve-menu h2 + p {
		font-size: calc(100vw / var(--base-width) * 22);
	}

	.page #main .body .reserve-menu :where(.link, .links) {
		margin-top: calc(100vw / var(--base-width) * 64);
	}

	/* -----------------
	  境界線
	----------------------------------------------- */

	.page #main .body hr {
		margin: calc(100vw / var(--base-width) * 80) 0 0;
	}
}

/* =========================================================
  【SP】メインコンテンツボディ
========================================================= */

@media screen and (max-width: 640px) {
	#main:not(:has(section)) .body {
		padding-top: calc(100vw / var(--base-width) * 48);
		padding-bottom: calc(var(--base-vertical-margin) + calc(100vw / var(--base-width) * 20));
	}

	/* -----------------
	  見出し レベル2
	----------------------------------------------- */

	.page #main .body section h2.ja,
	.page #main .body section h2 span:first-child:where(.ja, .en) {
		font-size: calc(100vw / var(--base-width) * 14);
	}

	.page #main .body section h2 span:last-child.en {
		margin-top: calc(100vw / var(--base-width) * 10);
		font-size: calc(100vw / var(--base-width) * 50);
		letter-spacing: 0.1em;
	}

	.page #main .body section h2 span:last-child.ja {
		margin-top: calc(100vw / var(--base-width) * 20);
		font-size: calc(100vw / var(--base-width) * 20);
		line-height: var(--line-height);
	}

	.page #main .body .reserve-menu:not(:has(a[href^="tel:"])) h2 {
		font-size: calc(100vw / var(--base-width) * 28);
	}

	.page #main .body :where(.bgc-relaxation, .bgc-fitness, .bgc-cafe-lounge, .bgc-how-we-do) h2 {
		color: var(--text-color-outline);
	}

	/* -----------------
	  見出し レベル3
	----------------------------------------------- */

	.page #main .body h3 {
		margin-top: calc(100vw / var(--base-width) * 60);
		font-weight: normal;
	}

	.page #main .body h3 span {
		display: block;
	}

	.page #main .body h3 span:first-child {
		font-size: calc(100vw / var(--base-width) * 14);
		line-height: var(--line-height);
	}

	.page #main .body h3:not(:has(span)),
	.page #main .body h3 span:nth-of-type(2) {
		font-size: calc(100vw / var(--base-width) * 28);
		line-height: 1.6em;
		letter-spacing: 0.1em;
	}

	/* -----------------
	  補足
	----------------------------------------------- */

	.page #main .body p.note {
		margin-top: calc(100vw / var(--base-width) * 6);
		font-size: calc(100vw / var(--base-width) * 11);
		line-height: 1.8em;
	}

	/* -----------------
	  画像
	----------------------------------------------- */

	.page #main .body p img.full-image {
		width: 100%;
	}

	/* -----------------
	  リンク
	----------------------------------------------- */

	.page #main .body .link.open-new-tab {
		margin-top: calc(100vw / var(--base-width) * 8);
	}

	/* -----------------
	  境界テキスト
	----------------------------------------------- */

	.page #main .body .border-text {
		height: calc(100vw / var(--base-width) * 26);
	}

	/* -----------------
	  カード型レイアウト
	----------------------------------------------- */

	.page #main .body .cards {
		margin-top: var(--base-vertical-margin);
	}

	.page #main .body .cards.column2.food-menu {
		margin-top: calc(100vw / var(--base-width) * 60);
	}

	.page #main .body .cards:not(.column2).food-menu {
		margin-top: calc(100vw / var(--base-width) * 16);
	}

	.page #main .body .cards .card {
		line-height: var(--line-height);
	}

	.page #main .body .cards .card > :first-child {
		margin-top: 0;
	}

	.page #main .body .cards .card:nth-child(n + 2) {
		margin-top: calc(100vw / var(--base-width) * 60);
	}

	.page #main .body .cards .card .pic img {
		width: 100%;
	}

	.page #main .body .cards .card :where(.title, .name) {
		margin-top: calc(100vw / var(--base-width) * 16);
		font-size: calc(100vw / var(--base-width) * 22);
	}

	.page #main .body .cards .card .name {
		font-size: calc(100vw / var(--base-width) * 28);
	}

	/* -----------------
	  ポイント（複数）
	----------------------------------------------- */

	.page #main .body .points {
		margin-top: 40px;
	}

	.page #main .body .points li {
		padding: 35px 0;
	}

	/* ラベル */
	.page #main .body .points li .label {
		display: inline-block;
		padding: calc(100vw / var(--base-width) * 4) calc(100vw / var(--base-width) * 17);
		font-size: calc(100vw / var(--base-width) * 14);
	}

	/* タイトル */
	.page #main .body .points li .title {
		margin-top: calc(100vw / var(--base-width) * 16);
		font-size: calc(100vw / var(--base-width) * 18);
	}

	/* テキスト */
	.page #main .body .points li .text {
		margin-top: calc(100vw / var(--base-width) * 10);
		font-size: calc(100vw / var(--base-width) * 13);
	}

	/* -----------------
	  ポイント（単数）
	----------------------------------------------- */

	.page #main .body .point {
		margin-top: calc(100vw / var(--base-width) * 32);
	}

	/* ラベル */
	.page #main .body .point .label {
		display: inline-block;
		align-self: start;
		margin-top: 0.2em;
		padding:
			calc(100vw / var(--base-width) * 4)
			calc(100vw / var(--base-width) * 17);
		font-size: calc(100vw / var(--base-width) * 14);
	}

	/* タイトル */
	.page #main .body .point .title {
		margin-top: calc(100vw / var(--base-width) * 19);
		font-size: calc(100vw / var(--base-width) * 18);
	}

	/* テキスト */
	.page #main .body .point p:not(.title) {
		margin-top: calc(100vw / var(--base-width) * 10);
		font-size: calc(100vw / var(--base-width) * 13);
	}

	/* -----------------
	  予約エリア
	----------------------------------------------- */

	.page #main .body .reserve-menu:not(:has(a[href^="tel:"])) {
		height: calc(100vw / var(--base-width) * 420);
	}

	.page #main .body .reserve-menu .link:has(a[href^="tel:"]) {
		margin-top: calc(100vw / var(--base-width) * 16);
	}

	.page #main .body .reserve-menu :where(.link, .links) {
		margin-top: calc(100vw / var(--base-width) * 32);
		width: 100%;
	}

	/* -----------------
	  境界線
	----------------------------------------------- */

	.page #main .body hr {
		margin: calc(100vw / var(--base-width) * 32) 0 0;
	}
}

/* =========================================================
  【PC】ABOUTページ用
========================================================= */

@media screen and (min-width: 641px) {
	/* -----------------
	  セクション
	----------------------------------------------- */

	.page #main .body .area-what-is-boreca {
		padding-bottom: calc(100vw / var(--base-width) * 164);
	}

	/* -----------------
	  HOW WE DO POINT1
	----------------------------------------------- */

	.page #main .body .area-how-we-do .point {
		margin-top: calc(100vw / var(--base-width) * 98);
	}

	/* -----------------
	  HOW WE DO POINT2
	----------------------------------------------- */

	.page #main .body .bgc-how-we-do .point2 {
		position: relative;
	}

	.page #main .body .bgc-how-we-do .point2 .fig {
		width: calc(100vw / var(--base-width) * 656);
	}

	.page #main .body .bgc-how-we-do .point2 .images .image {
		position: absolute;
		top: 0;
	}

	.page #main .body .bgc-how-we-do .point2 .images .image:nth-child(1) {
		top: calc(100vw / var(--base-width) * 188);
		left: 0;
	}

	.page #main .body .bgc-how-we-do .point2 .images .image:nth-child(1) img {
		width: calc(100vw / var(--base-width) * 404);
	}

	.page #main .body .bgc-how-we-do .point2 .images .image:nth-child(2) {
		top: 0;
		right: 0;
	}

	.page #main .body .bgc-how-we-do .point2 .images .image:nth-child(2) img {
		width: calc(100vw / var(--base-width) * 227);
	}

	.page #main .body .bgc-how-we-do .point2 .images .image:nth-child(3) {
		top: calc(100vw / var(--base-width) * 447);
		right: calc(100vw / var(--base-width) * 203);
	}

	.page #main .body .bgc-how-we-do .point2 .images .image:nth-child(3) img {
		width: calc(100vw / var(--base-width) * 227);
	}

	.page #main .body .bgc-how-we-do .point2 .images .image a.link-basic {
		margin-top: calc(100vw / var(--base-width) * 28);
	}

	.page #main .body .area-how-we-do .point2 .point {
		margin-top: calc(100vw / var(--base-width) * 171);
	}
}

/* =========================================================
  【SP】ABOUTページ用
========================================================= */

@media screen and (max-width: 640px) {
	/* -----------------
	  セクション
	----------------------------------------------- */

	.page #main .body .area-what-is-boreca {
		padding-bottom: calc(100vw / var(--base-width) * 112);
	}

	/* -----------------
	  HOW WE DO POINT2
	----------------------------------------------- */

	.page #main .body .area-how-we-do .point2 .images {
		margin-top: calc(100vw / var(--base-width) * 32);
	}

	.page #main .body .area-how-we-do .point2 .images .image:nth-child(n + 2) {
		margin-top: calc(100vw / var(--base-width) * 60);
	}

	.page #main .body .area-how-we-do .point2 .images .image img {
		width: 100%;
	}

	.page #main .body .area-how-we-do .point2 .images .image a.link-basic {
		margin-top: calc(100vw / var(--base-width) * 16);
	}
}

/* =========================================================
  【共通】RELAXATIONページ用
========================================================= */

.page.relaxation #main .body .area-special {
	padding-bottom: var(--base-vertical-margin);
}

/* =========================================================
  【共通】FITNESSページ用
========================================================= */

.page.fitness #main .body .area-course {
	padding-bottom: var(--base-vertical-margin);
}

/* =========================================================
  【PC】アクセシビリティページ用
========================================================= */

@media screen and (min-width: 641px) {
	.page.accessibility #main header h1.en {
		font-size: calc(100vw / var(--base-width) * 79);
	}

	.page.accessibility #main .body .area-equipment {
		padding-bottom: var(--base-vertical-margin);
	}

	/* -----------------
	  iframe
	----------------------------------------------- */

	.page.accessibility #main iframe {
		margin-top: calc(100vw / var(--base-width) * 48);
		width: 100%;
		height: calc(100vw / var(--base-width) * 756);
	}

	/* -----------------
	  アクセス
	----------------------------------------------- */

	.page.accessibility #main .access {
		position: relative;
		z-index: 1;
		display: grid;
		grid-template: "heading map" "location map" "link map" 1fr / 1fr auto;
		align-items: start;
		justify-content: space-between;
		gap: calc(100vw / var(--base-width) * 56) calc(100vw / var(--base-width) * 30);
		padding:
			var(--base-vertical-margin)
			calc(100vw / var(--base-width) * 200)
			var(--base-vertical-margin)
			var(--base-horizontal-margin);
	}

	/* 見出し レベル2 */
	.page.accessibility #main .access h2 {
		grid-area: heading;
	}

	.page.accessibility #main .access h2 span:first-child {
		font-size: calc(100vw / var(--base-width) * 22);
	}

	.page.accessibility #main .access h2 span:last-child {
		margin-top: calc(100vw / var(--base-width) * 22);
		font-size: calc(100vw / var(--base-width) * 79);
		letter-spacing: 0.17em;
		line-height: 1em;
	}

	/* 所在地 */
	.page.accessibility #main .access .location {
		grid-area: location;
		line-height: var(--line-height);
	}

	.page.accessibility #main .access .location p:nth-child(n + 2) {
		margin-top: 1em;
	}

	.page.accessibility #main .access .location b {
		margin-right: 1em;
	}

	/* リンク */
	.page.accessibility #main .access .link {
		display: block;
		grid-area: link;
		margin-top: 0;
	}

	/* マップ */
	.page.accessibility #main .access iframe {
		grid-area: map;
		width: calc(100vw / var(--base-width) * 517);
		height: calc(100vw / var(--base-width) * 516);
	}

	/* 画像 */
	.page.accessibility #main .access .image {
		position: absolute;
		top: calc(100vw / var(--base-width) * 50 * -1);
		right: calc(100vw / var(--base-width) * 80);
		z-index: -1;
		width: calc(100vw / var(--base-width) * 360);
	}

	/* -----------------
	  PARTNERS
	----------------------------------------------- */

	.partner-list {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0 calc(100vw / var(--base-width) * 72);
		margin-top: var(--base-vertical-margin);
		list-style: none;
	}

	.partner-list li {
		display: flex;
		flex: 1 1 auto;
	}

	.partner-list li img {
		flex: 1 1 auto;
	}
}

/* =========================================================
  【SP】アクセシビリティページ用
========================================================= */

@media screen and (max-width: 640px) {
	/* -----------------
	  見出し レベル2
	----------------------------------------------- */

	.page.accessibility #main .area-equipment h2 span:last-child.en {
		letter-spacing: 0.08em;
	}

	/* -----------------
	  iframe
	----------------------------------------------- */

	.page.accessibility #main iframe {
		margin-top: calc(100vw / var(--base-width) * 32);
		width: 100%;
		height: calc(100vw / var(--base-width) * 429);
	}

	/* -----------------
	  アクセス
	----------------------------------------------- */

	.page.accessibility #main .access {
		position: relative;
		z-index: 1;
		display: flex;
		flex-direction: column;
		margin-top: calc(100vw / var(--base-width) * 143);
		padding-top: calc(100vw / var(--base-width) * (60 + 83));
	}

	/* 見出し レベル2 */
	.page.accessibility #main .access h2 {
		order: 1;
	}

	.page.accessibility #main .access h2 span:last-child {
		margin-top: 6px;
		font-size: calc(100vw / var(--base-width) * 50);
		line-height: 1.2em;
		letter-spacing: 0.1em;
	}

	/* 一覧リンク */
	.page.accessibility #main .access .link {
		order: 3;
		margin-top: calc(100vw / var(--base-width) * 40);
	}

	/* 所在地 */
	.page.accessibility #main .access .location {
		order: 2;
		margin-top: calc(100vw / var(--base-width) * 32);
		font-size: calc(100vw / var(--base-width) * 13);
		line-height: var(--line-height);
	}

	.page.accessibility #main .access .location p:nth-child(n + 2) {
		margin-top: 0.5em;
	}

	.page.accessibility #main .access .location b {
		margin-right: 1em;
	}

	/* マップ */
	.page.accessibility #main .access iframe {
		order: 4;
		margin: calc(100vw / var(--base-width) * 40) 0 0;
		width: calc(100% + (var(--base-horizontal-margin) * 2));
		height: calc(100vw / var(--base-width) * 253);
		translate: calc(var(--base-horizontal-margin) * -1);
	}

	/* 画像 */
	.page.accessibility #main .access .image {
		position: absolute;
		bottom: calc(100% - calc(100vw / var(--base-width) * 83));
		right: calc(100vw / var(--base-width) * 18);
		z-index: -1;
		width: calc(100vw / var(--base-width) * 219);
	}

	/* -----------------
	  PARTNERS
	----------------------------------------------- */

	.partner-list {
		display: grid;
		justify-items: center;
		gap: calc(100vw / var(--base-width) * 60) calc(100vw / var(--base-width) * 40);
		margin-top: calc(100vw / var(--base-width) * 60);
		list-style: none;
	}

	.partner-list:nth-of-type(n + 2) {
		grid-template-columns: repeat(2, 1fr);
	}

	.partner-list:nth-of-type(n + 2) li:nth-of-type(odd):last-child {
		grid-column: span 2;
	}
}
