/* リキッドレイアウト対応 */

/* インナー幅・左右余白（PCカンプ1366 / SPカンプ375） */

:root {
	--inner-value: 1144;
	--inner: 1094px;
	--inner-wide: 1174px;
	--padding-pc: 25px;
	--padding-sp: 29px;
}

:root {
	--rem: 1rem / 16;
	--em: 1em / 16;
	--vw: 1366 * 100vw;
	--cqi: 1366 / 100cqi;
	--inner-percent: var(--inner-value) * 100%;
}

/* フォント */

:root {
	--base-font: "Noto Serif JP", serif;
	--en-font: "EB Garamond", serif;
	--fw-regular: 400;
	--fw-medium: 500;
	--leading-trim: calc((1em - 1lh) / 2);
}

/* イージング */

:root {
	--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

/* 色 */

:root {
	--white: #fff;
	--black: #000;
	--gold: #b6985f;
	--ink: #221814;
	--ivory: #faf8ed;
	--beige: #ede5d6;
	--dark: #393939;
	--gray909: #909090;
	--gray707: #707070;
	--grayC6C: #c6c6c6;
}

/* ヘッダー高さ */

:root {
	--header-height: 104px;
	--header-height-sp: 57px;
}

/* z-index は必ずここで一元管理（直値禁止） */

:root {
	--z-index-loader: 1000;
	--z-index-hamburger: 150;
	--z-index-header: 100;
	--z-index-drawer: 99;
	--z-index-fv-btn: 98;
}

/* スクロールロック（モーダル・ローダー用。
   ドロワーは js-rules の position:fixed 方式が既定 — こちらは使わない） */

:root {
	--scrollbar-width: 0;
}

@property --scrollbar {
	syntax: "<length>";
	initial-value: 0;
	inherits: true;
}

:root:has(:modal[open],
.is-scroll-lock,
.loader) {
	overflow: hidden;
	scrollbar-gutter: stable;
}

body {
	container-type: inline-size;
	font-family: var(--base-font);
	color: var(--black);
	font-weight: var(--fw-regular);
	line-height: 1.75;
}

html {
	font-size: 16px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Remove default padding */

ul,
ol {
	padding: 0;
}

/* Remove default margin */

body,
h1,
h2,
h3,
h4,
h5,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
	margin: 0;
}

/* Set core root defaults */

html {
	scroll-behavior: smooth;
}

/* Set core body defaults */

body {
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	text-rendering: optimizeLegibility;
	line-height: 1.5;
	line-break: strict;
	overflow-wrap: anywhere; /* 100vw 全幅要素(事業内容の marquee 等)が、 縦スクロールバー幅を含む分だけ横にはみ出して
     横スクロールバーが出るのを抑止 (Firefox/Windows の classic scrollbar で発生)。
     overflow:hidden と違い clip は scroll コンテナを作らないので position:sticky を壊さない。 */
	overflow-x: clip;
}

main {
	flex: 1;
}

/* Remove list styles on ul, ol elements with a class attribute */

ul,
ol {
	list-style: none;
}

/* A elements that don't have a class get default styles */

a:not([class]) {
	-webkit-text-decoration-skip: ink;
	text-decoration-skip-ink: auto;
}

/* Make images easier to work with */

img {
	max-width: 100%;
	width: 100%;
	height: auto;
	display: block;
}

/* Inherit fonts for inputs and buttons */

input,
button,
textarea,
select {
	font: inherit;
}

/* picture*/

picture {
	display: block;
	width: 100%;
	height: 100%;
}

/* Blur images when they have no alt attribute */

img:not([alt]) {
	filter: blur(10px);
}

:where(dialog) {
	width: unset;
	max-width: unset;
	height: unset;
	max-height: unset;
	padding: unset;
	color: unset;
	background-color: unset;
	border: unset;
	overflow: unset;
}

:where(dialog:focus-visible) {
	outline: none;
}

/* フォームリセット */

input,
button,
select,
textarea {
	margin: 0;
	padding: 0;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 0;
	font: inherit;
}

textarea {
	resize: vertical;
}

input[type=checkbox],
input[type=radio] {
	display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
	cursor: pointer;
}

select::-ms-expand {
	display: none;
}

a {
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition: opacity 0.3s;
}

a[href^="tel:"] {
	pointer-events: none;
}

.l-inner {
	max-width: calc(var(--inner) + var(--padding-pc) * 2);
	margin-inline: auto;
	padding-inline: var(--padding-pc);
	width: 100%;
}

.l-inner--wide {
	max-width: calc(var(--inner-wide) + var(--padding-pc) * 2);
}

.c-btn {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 20rem;
	background-color: var(--gold);
	font-size: 1.375rem;
	font-weight: var(--fw-medium);
	line-height: 1;
	color: var(--white);
	transition: opacity 0.3s ease;
}

.c-btn__arrow {
	position: absolute;
	top: 50%;
	right: 1.9375rem;
	line-height: 1;
	transform: translateY(-50%);
}

.c-btn--back {
	height: 3.5rem;
	font-size: 1.5rem;
}

.c-btn--back .c-btn__arrow {
	right: auto;
	left: 5rem;
}

.c-en-title {
	font-family: var(--en-font);
	font-size: 3rem;
	font-weight: var(--fw-regular);
	line-height: 1.2;
	letter-spacing: 0.06em;
	color: var(--gold);
}

.c-section-title::after {
	content: "";
	display: block;
	width: 5rem;
	height: 1px;
	background-color: var(--gold);
}

.js-fadeup .c-section-title::after {
	scale: 0 1;
	transform-origin: left;
	transition: scale 0.9s var(--ease-out) 0.4s;
}

.js-fadeup.is-visible .c-section-title::after {
	scale: 1 1;
}

.c-section-title__en {
	font-family: var(--en-font);
	font-size: 1.125rem;
	line-height: 1.5555555556;
	letter-spacing: 0.04em;
	color: var(--gold);
}

.c-section-title__ja {
	padding-bottom: 0.875rem;
	font-size: 2rem;
	font-weight: var(--fw-medium);
	line-height: 1.4375;
}

.c-section-title--light .c-section-title__en,
.c-section-title--light .c-section-title__ja {
	color: var(--white);
}

.c-section-title--light::after {
	background-color: var(--white);
}

.c-section-title__ja--plain {
	margin-top: 0.4375rem;
	padding-bottom: 0;
	font-weight: var(--fw-regular);
	font-size: 1.5rem;
	line-height: 1.4166666667;
}

.c-section-title--noline::after {
	content: none;
}

.c-text {
	font-size: 1rem;
	line-height: 1.75;
}

.drawer {
	display: block;
	position: fixed;
	top: 0;
	right: 0;
	z-index: var(--z-index-drawer);
	display: flex;
	flex-direction: column;
	width: 20rem;
	height: 30.75rem;
	max-height: 100svh;
	padding-top: 6.875rem;
	background-color: var(--dark);
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s ease, visibility 0.4s ease;
}

.drawer.is-open {
	opacity: 1;
	visibility: visible;
}

.drawer__logo {
	position: fixed;
	top: 1.6875rem;
	left: 1.5625rem;
	width: 4.9375rem;
}

.drawer__logo img {
	width: 100%;
	height: auto;
}

.drawer__list {
	display: flex;
	flex-direction: column;
	gap: 2.0625rem;
}

.drawer__item {
	opacity: 0;
	translate: 0 0.75rem;
	transition: opacity 0.5s var(--ease-out), translate 0.5s var(--ease-out);
}

.drawer.is-open .drawer__item {
	opacity: 1;
	translate: 0 0;
	transition-delay: calc(0.15s + var(--i, 0) * 0.06s);
}

.drawer__link {
	display: block;
	font-family: var(--en-font);
	font-size: 1.125rem;
	line-height: 1;
	letter-spacing: 0.06em;
	color: var(--white);
	text-align: center;
}

.drawer__link--small {
	font-size: 0.875rem;
}

.drawer__sns {
	display: flex;
	justify-content: flex-end;
	gap: 1.5rem;
	margin-top: 3.4375rem;
	padding-right: 3rem;
	opacity: 0;
	translate: 0 0.75rem;
	transition: opacity 0.5s var(--ease-out), translate 0.5s var(--ease-out);
}

.drawer.is-open .drawer__sns {
	opacity: 1;
	translate: 0 0;
	transition-delay: 0.55s;
}

.drawer__sns-item img {
	width: 1.5rem;
	height: auto;
}

.footer {
	padding-block: 4.875rem 6.375rem;
	background-color: var(--dark);
	color: var(--white);
}

.footer__inner {
	display: grid;
	grid-template-columns: 21.875rem 1fr;
	align-items: start;
}

.footer__logo {
	grid-row: 1/span 2;
}

.footer__logo {
	width: 10.8125rem;
	margin-top: 5.3125rem;
}

.footer__logo img {
	width: 100%;
	height: auto;
}

.footer__nav {
	display: flex;
	gap: 3.9375rem;
	padding-bottom: 3.125rem;
	border-bottom: 1px solid var(--white);
}

.footer__list {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	width: 12.1875rem;
}

.footer__link {
	font-size: 1.125rem;
	line-height: 1;
	color: var(--white);
}

.footer__link--small {
	font-size: 0.875rem;
}

.footer__info {
	position: relative;
	margin-top: 2.5rem;
}

.footer__shop {
	font-size: 1.5rem;
	line-height: 1;
}

.footer__text {
	margin-top: 1.125rem;
	font-size: 1rem;
	line-height: 1.75;
}

.footer__text a {
	color: var(--white);
	text-decoration: underline;
}

.footer__note {
	margin-top: 0.625rem;
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.footer__note a {
	color: var(--white);
	text-decoration: underline;
}

.footer__side {
	position: absolute;
	top: 4.25rem;
	right: 0;
}

.footer__sns {
	display: flex;
	justify-content: flex-end;
	gap: 1.5rem;
}

.footer__sns-item img {
	width: 1.5rem;
	height: auto;
}

.footer__copyright {
	display: block;
	margin-top: 2.5rem;
	font-size: 0.75rem;
	line-height: 1;
	text-align: right;
}

.header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: var(--z-index-header);
	width: 100%;
	padding: 2.0625rem 1.9375rem;
	pointer-events: none;
}

.header--fill {
	position: sticky;
	display: flex;
	align-items: center;
	height: 6.5rem;
	padding-block: 0;
	padding-inline: 2.9375rem;
	background-color: var(--dark);
}

.is-drawer-open .header--fill {
	background-color: transparent;
}

.header__logo {
	width: 6.5625rem;
}

.header--fill .header__logo {
	width: 13.3125rem;
}

.header__logo a {
	display: block;
	pointer-events: auto;
}

.header__logo img {
	width: 100%;
	height: auto;
}

.header__hamburger {
	position: absolute;
	top: 2.625rem;
	right: 3.6875rem;
	z-index: var(--z-index-hamburger);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 2.5rem;
	height: 1.125rem;
	padding: 0;
	border: none;
	background-color: transparent;
	pointer-events: auto;
	cursor: pointer;
}

.header__hamburger-bar {
	width: 100%;
	height: 2px;
	background-color: var(--white);
	transition: transform 0.3s ease, opacity 0.3s ease, width 0.3s ease;
}

.header__hamburger-bar:nth-of-type(2) {
	width: 1.5rem;
}

.is-drawer-open .header__hamburger-bar:nth-of-type(1) {
	transform: translateY(0.5rem) rotate(30deg);
}

.is-drawer-open .header__hamburger-bar:nth-of-type(2) {
	opacity: 0;
}

.is-drawer-open .header__hamburger-bar:nth-of-type(3) {
	transform: translateY(-0.5rem) rotate(-30deg);
}

.is-drawer-open .header__hamburger {
	position: fixed;
}

.p-privacy {
	padding-block: 6.5rem 6.5rem;
}

.p-privacy__title {
	font-size: 2rem;
	font-weight: var(--fw-medium);
	line-height: 1.4375;
	text-align: center;
}

.p-privacy__title::after {
	content: "";
	display: block;
	width: 5rem;
	height: 1px;
	margin-top: 1.5rem;
	margin-inline: auto;
	background-color: var(--gold);
}

.p-privacy__block {
	width: 51.5rem;
	margin-top: 4.5rem;
	margin-inline: auto;
}

.p-privacy__block + .p-privacy__block {
	margin-top: 2.375rem;
}

.p-privacy__heading {
	font-size: 1.25rem;
	font-weight: var(--fw-regular);
	line-height: 1.4;
}

.p-privacy__text {
	margin-top: 0.875rem;
	font-size: 1rem;
	line-height: 1.75;
}

.p-privacy__list {
	margin-top: 0;
	padding-left: 1.5rem;
	list-style: decimal;
	font-size: 1rem;
	line-height: 1.75;
}

.p-privacy__btn {
	padding-left: 0.5625rem;
}

.p-privacy__action {
	display: flex;
	justify-content: center;
	margin-top: 6.375rem;
}

.p-top-about {
	position: relative;
	padding-block: 4rem 5.5625rem;
	background-color: var(--dark);
}

.p-top-about::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url(../images/common/about-bg.jpg);
	background-size: cover;
	background-position: center;
	opacity: 0.4;
	mix-blend-mode: multiply;
}

.p-top-about__inner,
.p-top-about__figure,
.p-top-about__box {
	position: relative;
}

.p-top-about__title {
	text-align: center;
}

.p-top-about__figure {
	max-width: calc(var(--inner-wide) + var(--padding-pc) * 2);
	margin-top: 1.875rem;
	margin-inline: auto;
	padding-inline: var(--padding-pc);
}

.p-top-about__figure img {
	width: 100%;
	height: auto;
	aspect-ratio: 1174/509;
	object-fit: cover;
}

.p-top-about__box {
	width: 63.8125rem;
	margin-top: -7.0625rem;
	margin-inline: auto;
	padding: 2.5rem 4.3125rem 3rem;
	background-color: var(--white);
}

.p-top-about__lead-en {
	font-family: var(--en-font);
	font-size: 2rem;
	line-height: 1.375;
	letter-spacing: 0.04em;
	text-align: center;
}

.p-top-about__lead {
	margin-top: 1.5625rem;
	font-size: 1.5rem;
	line-height: 1.4166666667;
	text-align: center;
}

.p-top-about__initial {
	color: var(--gold);
}

.p-top-about__text {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.75;
}

.p-top-access {
	padding-block: 5.875rem 5rem;
	background-color: var(--gold);
	color: var(--white);
}

.p-top-access__map {
	width: 51.5rem;
	margin-inline: auto;
}

.p-top-access__map iframe {
	display: block;
	width: 100%;
	aspect-ratio: 824/315;
	border: none;
}

.p-top-access__body {
	position: relative;
	width: 51.5rem;
	margin-top: 1.5625rem;
	margin-inline: auto;
}

.p-top-access__title {
	color: var(--white);
	line-height: 1;
}

.p-top-access__list {
	margin-top: 0.8125rem;
	font-size: 1rem;
	line-height: 1.75;
}

.p-top-access__row {
	display: block;
}

.p-top-access__term {
	display: inline-block;
	margin-right: 1.25rem;
	white-space: nowrap;
}

.p-top-access__desc {
	display: inline;
}

.p-top-access__desc a {
	color: var(--white);
	text-decoration: underline;
}

.p-top-access__sns {
	position: absolute;
	right: 0;
	bottom: -0.25rem;
	display: flex;
	gap: 1.5rem;
}

.p-top-access__sns-item img {
	width: 1.5rem;
	height: auto;
}

.p-top-app {
	padding-block: 4.5625rem 5rem;
	background-color: var(--ivory);
}

.p-top-app__inner {
	position: relative;
}

.p-top-app__head {
	width: 37.1875rem;
}

.p-top-app__brand {
	display: flex;
	align-items: center;
	gap: 2rem;
	margin-bottom: 2.375rem;
}

.p-top-app__icon {
	width: 7.125rem;
	flex-shrink: 0;
}

.p-top-app__icon img {
	width: 100%;
	height: auto;
}

.p-top-app__brand-name {
	line-height: 1;
}

.p-top-app__brand-os {
	margin-top: 0.5rem;
	font-size: 0.75rem;
	line-height: 1.5;
}

.p-top-app__lead {
	margin-top: 1rem;
	font-size: 1.5rem;
	line-height: 1.4166666667;
}

.p-top-app__text {
	margin-top: 0.5rem;
}

.p-top-app__note {
	margin-top: 1.25rem;
	font-size: 0.75rem;
	line-height: 1.5;
}

.p-top-app__policy {
	display: inline-block;
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.75;
	color: var(--black);
	text-decoration: underline;
}

.p-top-app__figure {
	position: absolute;
	top: 1.5625rem;
	right: 25px;
	width: 25.5rem;
}

.p-top-app__figure img {
	width: 100%;
	height: auto;
	aspect-ratio: 408/680;
	object-fit: cover;
}

.p-top-app__store {
	display: flex;
	align-items: center;
	gap: 2rem;
	margin-top: 2.1875rem;
}

.p-top-app__store-item:first-child img {
	width: 11.9375rem;
	height: auto;
}

.p-top-app__store-item:last-child img {
	width: 13.5rem;
	height: auto;
}

.p-top-app__feature {
	margin-top: 5.25rem;
	padding: 2.8125rem 2.9375rem 4.5rem;
	background-color: var(--white);
}

.p-top-app__feature-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(4, auto);
	grid-auto-flow: column;
	-moz-column-gap: 2.1875rem;
	column-gap: 2.1875rem;
	row-gap: 2.1875rem;
}

.p-top-app__feature-item {
	display: grid;
	grid-template-columns: 5.875rem 1fr;
	-moz-column-gap: 1.0625rem;
	column-gap: 1.0625rem;
	align-items: start;
}

.p-top-app__feature-icon {
	width: 100%;
	height: auto;
	padding-top: 0.625rem;
}

.p-top-app__feature-title {
	font-size: 1.25rem;
	font-weight: var(--fw-regular);
	line-height: 1.4;
	color: var(--gold);
	word-break: keep-all;
}

.p-top-app__feature-text {
	margin-top: 0.375rem;
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.p-top-fee {
	background-color: var(--ivory);
}

.p-top-fee__head {
	display: flex;
	align-items: center;
	height: 20rem;
	background-image: url(../images/common/fee-bg.jpg);
	background-size: cover;
	background-position: center;
}

.p-top-fee__head .c-section-title {
	width: -moz-fit-content;
	width: fit-content;
}

.p-top-fee__head .c-section-title::after {
	content: none;
}

.p-top-fee__inner {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(3, auto);
	-moz-column-gap: 4.375rem;
	column-gap: 4.375rem;
	row-gap: 1.875rem;
	padding-top: 4rem;
	padding-bottom: 2.9375rem;
}

.p-top-fee__col {
	display: grid;
	grid-row: 1/-1;
	grid-template-rows: subgrid;
}

.p-top-fee__title {
	padding-block: 0.5625rem;
	background-color: var(--gold);
	font-size: 1.5rem;
	font-weight: var(--fw-regular);
	line-height: 1.25;
	color: var(--white);
	text-align: center;
}

.p-top-fee__price {
	margin-top: 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--gold);
	font-size: 1.25rem;
	line-height: 1.4;
}

.p-top-fee__sub {
	margin-top: 1rem;
	font-size: 1.25rem;
	line-height: 1.4;
	color: var(--gold);
}

.p-top-fee__sub--sm {
	font-size: 1rem;
}

.p-top-fee__text {
	margin-top: 0.25rem;
	font-size: 1rem;
	line-height: 1.75;
}

.p-top-fee__price + .p-top-fee__text {
	margin-top: 0.75rem;
}

.p-top-fee__sub + .p-top-fee__text {
	margin-top: 0.375rem;
}

.p-top-fee__note {
	margin-top: 0.625rem;
	font-size: 0.75rem;
	line-height: 1.5;
}

.p-top-fee__table {
	table-layout: fixed;
	width: 14.5625rem;
	margin-top: 0.8125rem;
	border-collapse: collapse;
	font-size: 1rem;
	line-height: 1.6;
}

.p-top-fee__table--wide {
	width: 25.875rem;
}

.p-top-fee__table th,
.p-top-fee__table td {
	font-weight: var(--fw-regular);
	text-align: left;
}

.p-top-fee__table thead th {
	padding-bottom: 0.75rem;
	font-weight: var(--fw-medium);
	color: var(--gold);
	white-space: nowrap;
}

.p-top-fee__table thead th:last-child {
	text-align: right;
}

.p-top-fee__table tbody th {
	width: 11.125rem;
	padding-left: 0.125rem;
}

.p-top-fee__table tbody td {
	text-align: right;
}

.p-top-fee__table--wide tbody th {
	width: 14.75rem;
	padding-left: 0.25rem;
}

.p-top-food {
	padding-block: 3rem 3.375rem;
}

.p-top-food__title {
	position: relative;
	color: var(--black);
	text-align: center;
}

.p-top-food__title::before {
	content: "";
	position: absolute;
	bottom: 100%;
	left: 50%;
	width: 1px;
	height: 6.875rem;
	background-color: var(--black);
	transform: translateX(-50%);
}

.p-top-food__figure {
	max-width: calc(var(--inner-wide) + var(--padding-pc) * 2);
	margin-top: 0.4375rem;
	margin-inline: auto;
	padding-inline: var(--padding-pc);
}

.p-top-food__figure img {
	width: 100%;
	height: auto;
	aspect-ratio: 1174/345;
	object-fit: cover;
}

.p-top-food__text {
	margin-top: 1.9375rem;
	font-size: 1rem;
	line-height: 1.75;
	text-align: center;
}

.p-top-fv {
	position: relative;
	display: grid;
	place-items: center;
	height: 100vh;
	height: 100svh;
}

.p-top-fv__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	overflow: hidden;
}

.p-top-fv__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: fv-zoom 2.4s var(--ease-out) both;
}

.p-top-fv__logo {
	width: 15.6875rem;
	animation: fv-in 1.2s var(--ease-out) 0.4s both;
}

.p-top-fv__logo img {
	width: 100%;
	height: auto;
}

.p-top-fv__btn {
	position: fixed;
	right: 0;
	bottom: 0;
	z-index: var(--z-index-fv-btn);
	padding-block: 1.0625rem;
	padding-right: 1.5625rem;
	transition: opacity 0.4s var(--ease-out), visibility 0.4s var(--ease-out);
	animation: fv-in 1s var(--ease-out) 0.9s backwards;
}

.p-top-fv__btn.is-hidden {
	opacity: 0;
	visibility: hidden;
}

.p-top-game {
	padding-block: 4.0625rem 4.875rem;
}

.p-top-game__inner {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 4.375rem;
}

.p-top-game__title {
	line-height: 1;
}

.p-top-game__figure {
	margin-top: 0.4375rem;
}

.p-top-game__figure img {
	width: 100%;
	height: auto;
	aspect-ratio: 512/344;
	object-fit: cover;
}

.p-top-game__name {
	margin-top: 1.6875rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--gold);
	font-size: 2rem;
	font-weight: var(--fw-medium);
	line-height: 1.4375;
}

.p-top-game__lead {
	margin-top: 1.625rem;
	font-size: 1.5rem;
	line-height: 1.4166666667;
}

.p-top-game__text {
	margin-top: 0.875rem;
	font-size: 1rem;
	line-height: 1.75;
}

.p-top-point {
	padding-block: 4.8125rem 6.1875rem;
}

.p-top-point__inner {
	display: flex;
	gap: 5.125rem;
}

.p-top-point__col--text {
	width: 39.6875rem;
	padding-left: 2.5rem;
}

.p-top-point__col--media {
	width: 28.5625rem;
}

.p-top-point__body--rank {
	margin-top: 3.75rem;
}

.p-top-point__body--ranking {
	margin-top: 2.25rem;
}

.p-top-point__lead {
	margin-top: 1.5rem;
	font-size: 1.5rem;
	line-height: 1.4166666667;
	word-break: keep-all;
}

.p-top-point__text {
	margin-top: 0.875rem;
}

.p-top-point__note {
	margin-top: 1.25rem;
	font-size: 0.75rem;
	line-height: 1.5;
}

.p-top-point__figure img {
	width: 100%;
	height: auto;
	aspect-ratio: 457/585;
	object-fit: cover;
}

.p-top-point__figure--rank {
	margin-top: 1.5625rem;
}

.p-top-point__figure--ranking {
	margin-top: 1.625rem;
}

.p-top-point__table-wrap {
	margin-top: 1.5rem;
}

.p-top-point__table {
	width: 19.5rem;
	border-collapse: collapse;
	font-size: 1rem;
}

.p-top-point__table th,
.p-top-point__table td {
	padding-block: 0.5rem;
	font-weight: var(--fw-regular);
	text-align: left;
}

.p-top-point__table thead th {
	padding-block: 0.125rem;
	background-color: var(--gold);
	font-family: var(--en-font);
	font-size: 1.125rem;
	line-height: 1.2222222222;
	color: var(--white);
	text-align: center;
}

.p-top-point__table thead th:first-child {
	border-right: 2px solid var(--beige);
}

.p-top-point__table tbody th {
	width: 11.375rem;
	padding-left: 0.9375rem;
	border-right: 2px solid var(--beige);
}

.p-top-point__table tbody td {
	padding-left: 1.9375rem;
}

.p-top-point__table tbody tr:not(:last-child) th,
.p-top-point__table tbody tr:not(:last-child) td {
	border-bottom: 2px solid var(--beige);
}

.p-top-point__inner--championship {
	flex-direction: row-reverse;
	gap: 3.8125rem;
	margin-top: 1.8125rem;
}

.p-top-point__inner--championship .p-top-point__body {
	width: 32.8125rem;
	padding-top: 3.4375rem;
	padding-right: 2.5rem;
}

.p-top-point__inner--championship .p-top-point__text {
	margin-top: 1.375rem;
}

.p-top-point__gallery {
	display: grid;
	grid-template-columns: 20.625rem 15.625rem;
	gap: 0.5rem;
	width: 36.75rem;
}

.p-top-point__gallery-item:last-child {
	grid-column: 1/-1;
}

.p-top-point__gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-top-point__gallery-item:not(:last-child) img {
	aspect-ratio: 330/257;
}

.p-top-point__gallery-item:last-child img {
	aspect-ratio: 588/288;
}

.p-top-point__inner--visit {
	gap: 2.5rem;
	margin-top: 7.25rem;
}

.p-top-point__inner--visit .p-top-point__body {
	width: 34.1875rem;
	padding-left: 2.5rem;
}

.p-top-point__cards {
	display: grid;
	grid-template-columns: 9.125rem 9.125rem 18.3125rem;
	align-self: start;
	width: 36.625rem;
	margin-top: -3.25rem;
}

.p-top-point__card {
	width: 18.3125rem;
}

.p-top-point__card img {
	width: 100%;
	height: auto;
}

.p-top-point__card:nth-child(4) {
	grid-row: 2;
	margin-top: -2.875rem;
}

.p-top-point__card:nth-child(5) {
	grid-row: 2;
	grid-column: 3;
	margin-top: -2.875rem;
}

a {
	transition: opacity 0.3s ease;
}

/* ボタン系など独自hoverを持つ要素は :not() に追加して除外する */

/* スクロールフェードイン（js-rules の IntersectionObserver とセット） */

.js-fadeup {
	opacity: 0;
	translate: 0 2rem;
	transition: opacity 1s var(--ease-out), translate 1s var(--ease-out);
}

.js-fadeup.is-visible {
	opacity: 1;
	translate: 0 0;
}

/* 画像: 左からワイプで開きつつ、ズームアウトで着地 */

.js-fadeup--clip {
	opacity: 1;
	translate: 0 0;
	clip-path: inset(0 100% 0 0);
	transition: clip-path 1.1s var(--ease-out);
}

.js-fadeup--clip img {
	scale: 1.08;
	transition: scale 1.6s var(--ease-out);
}

.js-fadeup--clip.is-visible {
	clip-path: inset(0);
}

.js-fadeup--clip.is-visible img {
	scale: 1;
}

/* 子要素を時間差で（--i は script.js が子の順番で付与） */

.js-fadeup.js-stagger {
	opacity: 1;
	translate: 0 0;
}

.js-fadeup.js-stagger > * {
	opacity: 0;
	translate: 0 1.5rem;
	transition: opacity 0.9s var(--ease-out), translate 0.9s var(--ease-out);
	transition-delay: calc(var(--i, 0) * 0.1s);
}

.js-fadeup.js-stagger.is-visible > * {
	opacity: 1;
	translate: 0 0;
}

.pc-only {
	display: block;
}

.sp-only {
	display: none;
}

.u-nowrap {
	display: inline-block;
	white-space: nowrap;
}

@media (any-hover: hover) {

.c-btn:hover {
	opacity: 0.8;
}

a:not([class*=c-btn]):hover {
	opacity: 0.7;
}

}

@media (prefers-reduced-motion: reduce) {

*,
*::before,
*::after {
	animation-duration: 0.01ms !important;
	animation-iteration-count: 1 !important;
	transition-duration: 0.01ms !important;
	transition-delay: 0s !important;
	scroll-behavior: auto !important;
}

}

@media (max-width: 1050px) {

html {
	font-size: calc(16 / var(--inner-value) * 100vw);
}

}

@media screen and (max-width: 767px) {

:root {
	--vw: 375 * 100vw;
	--cqi: 375 / 100cqi;
}

html {
	font-size: 16px;
}

.l-inner {
	max-width: 600px;
	padding-inline: var(--padding-sp);
}

.l-inner--wide {
	max-width: 600px;
}

.c-btn {
	width: 20rem;
}

.c-en-title {
	font-size: 2rem;
}

.c-en-title--lg {
	font-size: 2.5rem;
}

.c-en-title--sm {
	font-size: 1.5rem;
}

.c-section-title__ja {
	margin-top: 0.3125rem;
	padding-bottom: 1.0625rem;
	font-size: 1.75rem;
}

.c-section-title__ja--plain {
	font-size: 1.75rem;
}

.c-text {
	margin-bottom: var(--leading-trim);
	line-height: 1.5;
}

.drawer {
	width: 100%;
	height: 100svh;
	padding-top: 10.9375rem;
}

.drawer__list {
	gap: 2.625rem;
}

.drawer__sns {
	margin-top: 5.5625rem;
	margin-bottom: 3.9375rem;
}

.footer {
	padding-block: 2.5rem 5.625rem;
}

.footer__inner {
	display: block;
}

.footer__logo {
	width: 7.875rem;
	margin-top: 0;
	margin-inline: auto;
}

.footer__nav {
	flex-direction: column;
	gap: 1.875rem;
	margin-top: 3.125rem;
	padding-bottom: 3.625rem;
}

.footer__list {
	gap: 2.75rem;
	width: auto;
}

.footer__link {
	display: block;
	text-align: center;
}

.footer__info {
	margin-top: 2.875rem;
}

.footer__shop {
	font-size: 1.25rem;
}

.footer__side {
	position: static;
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: center;
	margin-top: 3.125rem;
}

.footer__copyright {
	margin-top: 0;
}

.header {
	padding: 0.875rem;
}

.header--fill {
	height: 3.5625rem;
	padding-inline: 0.875rem;
}

.header__logo {
	width: 8.0625rem;
}

.header--fill .header__logo {
	width: 8.0625rem;
}

.header__logo img {
	aspect-ratio: auto;
}

.header__hamburger {
	top: 1.1875rem;
	right: 0.875rem;
	width: 2.5rem;
	height: 1.125rem;
}

.is-drawer-open .header__logo {
	opacity: 0;
}

.p-privacy {
	padding-block: 1.9375rem 5rem;
}

.p-privacy__title {
	font-size: 1.5rem;
	line-height: 1.5;
}

.p-privacy__title::after {
	margin-top: 1.9375rem;
}

.p-privacy__block {
	width: auto;
	margin-top: 2.4375rem;
}

.p-privacy__block + .p-privacy__block {
	margin-top: 2.75rem;
}

.p-privacy__heading {
	margin-block: var(--leading-trim);
	font-size: 1.125rem;
}

.p-privacy__text {
	margin-top: calc(1.4375rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.p-privacy__list {
	margin-top: 0.375rem;
	padding-left: 0;
	list-style-position: inside;
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.p-privacy__action {
	margin-top: 5rem;
}

.p-top-about {
	padding-block: 2.5rem 3rem;
}

.p-top-about::before {
	background-image: url(../images/common/about-bg-sp.jpg);
}

.p-top-about__figure {
	max-width: 600px;
	margin-top: 0.875rem;
	padding-inline: 0.875rem;
}

.p-top-about__figure img {
	aspect-ratio: 347/272;
}

.p-top-about__box {
	width: calc(100% - var(--padding-sp) * 2);
	max-width: calc(600px - var(--padding-sp) * 2);
	margin-top: -2rem;
	margin-inline: auto;
	padding: 1.8125rem 1.125rem 2.5rem;
}

.p-top-about__lead-en {
	margin-block: var(--leading-trim);
	font-size: 1.5rem;
	line-height: 1.3333333333;
}

.p-top-about__lead {
	margin-top: calc(1.9375rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
	font-size: 1.25rem;
	line-height: 1.6;
}

.p-top-about__text {
	margin-top: calc(1.5rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
	line-height: 1.5;
}

.p-top-access {
	padding-block: 3.875rem 2.5rem;
}

.p-top-access__map {
	width: auto;
	margin-inline: -0.875rem;
}

.p-top-access__map iframe {
	aspect-ratio: 346/216;
}

.p-top-access__body {
	width: auto;
	margin-top: 1.375rem;
}

.p-top-access__list {
	margin-top: 0.75rem;
}

.p-top-access__term {
	margin-right: 0.875rem;
}

.p-top-access__row--stack .p-top-access__desc {
	display: block;
}

.p-top-access__station {
	margin-right: 1rem;
}

.p-top-access__sns {
	position: static;
	justify-content: flex-end;
	margin-top: 1rem;
}

.p-top-app {
	padding-block: 3.25rem 3.3125rem;
}

.p-top-app__inner {
	position: static;
}

.p-top-app__head {
	width: auto;
}

.p-top-app__brand {
	gap: 1.5625rem;
	margin-bottom: 2.5rem;
}

.p-top-app__lead {
	margin-top: calc(1.5625rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
}

.p-top-app__text {
	margin-top: calc(1.625rem + var(--leading-trim));
}

.p-top-app__figure {
	position: static;
	width: 19.8125rem;
	margin-top: 2.9375rem;
	margin-inline: auto;
}

.p-top-app__figure img {
	aspect-ratio: 317/530;
}

.p-top-app__store {
	flex-direction: column;
	gap: 1.25rem;
	margin-top: 2.5625rem;
}

.p-top-app__store-item:first-child img {
	width: 15.5625rem;
}

.p-top-app__store-item:last-child img {
	width: 15.5625rem;
}

.p-top-app__feature {
	margin-top: 2.875rem;
	padding: 1.25rem 1.3125rem;
}

.p-top-app__feature-list {
	grid-template-columns: 1fr;
	grid-template-rows: auto;
	grid-auto-flow: row;
	row-gap: 2rem;
}

.p-top-app__feature-item {
	grid-template-columns: 4.5rem 1fr;
	-moz-column-gap: 1.125rem;
	column-gap: 1.125rem;
}

.p-top-app__feature-icon {
	padding-top: 0;
}

.p-top-app__feature-body {
	display: contents;
}

.p-top-app__feature-title {
	align-self: center;
}

.p-top-app__feature-text {
	grid-column: 1/-1;
	margin-top: calc(0.875rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
}

.p-top-fee__head {
	align-items: flex-start;
	height: 11.5rem;
	padding-top: 3.4375rem;
	background-image: url(../images/common/fee-bg-sp.jpg);
}

.p-top-fee__head .c-section-title {
	padding-left: 1.3125rem;
}

.p-top-fee__inner {
	grid-template-columns: 1fr;
	grid-template-rows: auto;
	gap: 2.0625rem;
	padding-top: 2.25rem;
	padding-bottom: 3.875rem;
}

.p-top-fee__col {
	display: contents;
}

.p-top-fee__title {
	margin-inline: -0.9375rem;
	padding-block: 0.375rem;
	font-size: 1.25rem;
	line-height: 1.4;
}

.p-top-fee__price {
	margin-top: calc(1.25rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
	margin-inline: -0.9375rem;
	padding-bottom: 0.625rem;
	padding-left: 0.9375rem;
	font-size: 1rem;
	line-height: 1.5;
}

.p-top-fee__sub {
	margin-top: calc(1.25rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
	font-size: 1.125rem;
}

.p-top-fee__sub--sm {
	font-size: 1.125rem;
}

.p-top-fee__text {
	margin-block: var(--leading-trim);
	line-height: 1.5;
}

.p-top-fee__price + .p-top-fee__text {
	margin-top: calc(1.25rem + var(--leading-trim));
}

.p-top-fee__sub + .p-top-fee__text {
	margin-top: calc(0.875rem + var(--leading-trim));
}

.p-top-fee__note {
	margin-top: 0.3125rem;
}

.p-top-fee__table {
	margin-top: 1rem;
	line-height: 1.75;
}

.p-top-fee__table--wide {
	width: 21.0625rem;
	margin-inline: -0.9375rem;
}

.p-top-fee__table thead th {
	padding-bottom: 0;
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.p-top-fee__table tbody th {
	width: 11.0625rem;
}

.p-top-fee__table--wide tbody th {
	padding-left: 0.3125rem;
	white-space: nowrap;
}

.p-top-food {
	padding-block: 3.5rem 3.75rem;
}

.p-top-food__title::before {
	bottom: 110%;
	height: 5rem;
}

.p-top-food__figure {
	max-width: none;
	margin-top: 0.25rem;
	padding-inline: 0;
}

.p-top-food__figure img {
	aspect-ratio: 375/184;
}

.p-top-food__text {
	margin-top: calc(2.25rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
	line-height: 1.5;
	text-align: left;
}

.p-top-fv__logo {
	width: 10.8125rem;
}

.p-top-game {
	padding-block: 2.5rem 3.5625rem;
}

.p-top-game__inner {
	grid-template-columns: 1fr;
	gap: 2.6875rem;
}

.p-top-game__title {
	margin-left: -0.9375rem;
	padding-left: 0.125rem;
}

.p-top-game__figure {
	margin-top: 0.4375rem;
	margin-inline: -0.9375rem;
}

.p-top-game__figure img {
	aspect-ratio: 347/233;
}

.p-top-game__name {
	margin-top: 2.0625rem;
	font-size: 1.75rem;
}

.p-top-game__lead {
	margin-top: calc(1.625rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
}

.p-top-game__text {
	margin-top: calc(1.375rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
	line-height: 1.5;
}

.p-top-point {
	padding-block: 2.0625rem 3.6875rem;
}

.p-top-point__inner {
	flex-direction: column;
	gap: 0;
}

.p-top-point__col--text {
	display: contents;
}

.p-top-point__col--media {
	display: contents;
}

.p-top-point__body--point {
	order: 1;
}

.p-top-point__body--rank {
	order: 3;
	margin-top: 2.9375rem;
}

.p-top-point__body--ranking {
	order: 4;
	margin-top: 4.0625rem;
}

.p-top-point__lead {
	margin-top: calc(1.5rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
}

.p-top-point__text {
	margin-top: calc(1.5rem + var(--leading-trim));
}

.p-top-point__note {
	margin-top: calc(1.5rem + var(--leading-trim));
	margin-bottom: var(--leading-trim);
}

.p-top-point__figure img {
	aspect-ratio: 317/406;
}

.p-top-point__figure--rank {
	order: 2;
	margin-top: 2.3125rem;
}

.p-top-point__figure--ranking {
	order: 6;
	margin-top: 2.125rem;
}

.p-top-point__table-wrap {
	order: 5;
	margin-top: 1.75rem;
}

.p-top-point__table {
	width: 100%;
}

.p-top-point__inner--championship {
	flex-direction: column;
	gap: 2.1875rem;
	margin-top: 2.75rem;
}

.p-top-point__inner--championship .p-top-point__body {
	width: auto;
	padding-top: 0;
	padding-right: 0;
}

.p-top-point__inner--championship .p-top-point__text {
	margin-top: 0;
}

.p-top-point__gallery {
	grid-template-columns: 178fr 135fr;
	gap: 0.25rem;
	width: auto;
}

.p-top-point__gallery-item:not(:last-child) img {
	aspect-ratio: 178/139;
}

.p-top-point__gallery-item:last-child img {
	aspect-ratio: 317/155;
}

.p-top-point__inner--visit {
	gap: 0;
	margin-top: 3.625rem;
}

.p-top-point__inner--visit .p-top-point__body {
	width: auto;
	padding-left: 0;
}

.p-top-point__cards {
	grid-template-columns: 79fr 79fr 159fr;
	width: auto;
	margin-top: 1.875rem;
}

.p-top-point__card {
	width: 201.2658227848%;
}

.p-top-point__card:nth-child(3),
.p-top-point__card:nth-child(5) {
	width: 100%;
}

.p-top-point__card:nth-child(4) {
	margin-top: -1.5625rem;
}

.p-top-point__card:nth-child(5) {
	margin-top: -1.5625rem;
}

.pc-only {
	display: none;
}

.sp-only {
	display: block;
}

}

@media (max-width: 767px) {

a[href^="tel:"] {
	pointer-events: auto;
}

}

@media (max-width: 375px) {

html {
	font-size: 4.2666666667vw;
}

}

@keyframes fv-zoom {

from {
	scale: 1.08;
}

to {
	scale: 1;
}

}

@keyframes fv-in {

from {
	opacity: 0;
	translate: 0 1rem;
}

to {
	opacity: 1;
	translate: 0 0;
}

}

