/* =====================================
   Lower Page: game
   ===================================== */

.pg-game {
	--gm-content-width: var(--lower-max-width);
	--gm-section-gap: clamp(2.5rem, 5.6vw, 4.4rem);
	--gm-radius: clamp(0.8rem, 2vw, 1.2rem);
}

.pg-game .ly-lower {
	padding: 0 0 var(--gm-section-gap);
	background: #ececec;
	overflow: hidden;
}

.gm-hero {
	position: relative;
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	min-height: 0;
	aspect-ratio: 1598.73 / 755.15;
	height: auto;
	display: flex;
	align-items: center;
	overflow: hidden;
}

.gm-hero__bg-overlay {
	--lower-hero-cover-image: url('../images/pages/game/cover.webp');
	--lower-hero-cover-opacity: 0.28;
}

.gm-hero__inner {
	position: absolute;
	z-index: 4;
	top: clamp(2.75rem, 6.6vw, 7.2rem);
	left: clamp(0.9rem, 3.4vw, 3.2rem);
	width: min(var(--lower-max-width), calc(100% - clamp(1.8rem, 6.8vw, 6.4rem)));
	margin: 0;
	padding: 0;
}

.gm-intro {
	width: var(--gm-content-width);
	margin: var(--gm-section-gap) auto 0;
}

.gm-intro__title {
	margin: 0;
	text-align: center;
	color: #231815;
	font-family: var(--lower-font-corporate-bold);
	font-weight: 700;
	font-size: clamp(1.5rem, 2.6vw, 1.9rem);
	line-height: 1.42;
}

.gm-intro__highlight {
	display: inline-block;
	padding-inline: clamp(0.4rem, 0.95vw, 0.7rem);
	background: #ce1316;
	color: #ffe200;
}

.gm-intro__lead {
	width: fit-content;
	max-width: 100%;
	margin: clamp(0.9rem, 2vw, 1.3rem) auto clamp(1.2rem, 2.8vw, 2rem);
	font-size: clamp(0.94rem, 1.75vw, 1.12rem);
	line-height: 1.9;
	font-weight: 600;
	text-align: left;
}

.gm-shortcuts {
	position: relative;
	margin-top: clamp(1.8rem, 3.6vw, 2.8rem);
	padding-top: clamp(0.55rem, 1.3vw, 0.9rem);
}

.gm-shortcuts__click {
	position: absolute;
	right: clamp(0rem, 1.4vw, 0.9rem);
	top: clamp(-1.6rem, -2.8vw, -1.2rem);
	margin: 0;
	width: clamp(7rem, 12.4vw, 10.8rem);
	transform: rotate(8deg);
	z-index: 2;
}

.gm-shortcuts__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
}

.gm-shortcuts__item {
	margin: 0;
}

.gm-shortcuts__card {
	display: flex;
	flex-direction: column;
	gap: clamp(0.6rem, 1.1vw, 0.8rem);
	border: 2px solid #d81f2b;
	border-radius: clamp(0.9rem, 1.9vw, 1.2rem);
	padding: clamp(1rem, 2vw, 1.2rem) clamp(0.85rem, 1.6vw, 1rem);
	min-height: clamp(15.6rem, 30vw, 22rem);
	background: transparent;
	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease;
}

.gm-shortcuts__card:hover,
.gm-shortcuts__card:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 0.42rem 1rem rgba(31, 27, 26, 0.12);
}

.gm-shortcuts__media {
	margin: 0;
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
}

.gm-shortcuts__media img {
	max-height: clamp(10.5rem, 18vw, 13.6rem);
	width: auto;
	height: auto;
	object-fit: contain;
}

.gm-shortcuts__label {
	margin: 0;
	display: flex;
	align-items: center;
	gap: clamp(0.5rem, 0.95vw, 0.72rem);
	color: #1f1b1a;
	font-family: var(--lower-font-corporate-bold);
	font-weight: 800;
	font-size: 1.25rem;
	line-height: 1.2;
}

.gm-shortcuts__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.2rem;
	height: 1.2rem;
	font-size: 1rem;
	line-height: 1;
	background: #d80f17;
	border-radius: 50%;
	color: #fff;
}

.gm-section {
	width: var(--gm-content-width);
	margin: var(--gm-section-gap) auto 0;
}

.gm-section__title {
	margin: 0;
	display: block;
	width: 100%;
	background: var(--color-base-red);
	color: #fff;
	font-family: var(--lower-font-corporate-bold);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.2;
	border-radius: clamp(0.8rem, 1.9vw, 1.2rem);
	padding: clamp(0.6rem, 1.5vw, 0.9rem) clamp(1.2rem, 2.8vw, 1.9rem);
	box-shadow: clamp(0.22rem, 0.7vw, 0.36rem) clamp(0.22rem, 0.7vw, 0.36rem) 0 #f2b328;
}

.gm-machine-grid {
	margin-top: clamp(1.4rem, 2.8vw, 2.2rem);
	display: grid;
	gap: clamp(1rem, 2.2vw, 1.6rem);
}

.gm-machine-grid--prize,
.gm-machine-grid--two,
.gm-machine-grid--arcade {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gm-machine {
	display: grid;
	grid-template-columns: minmax(0, 0.38fr) minmax(0, 0.62fr);
	gap: clamp(0.6rem, 1.4vw, 1rem);
	align-items: center;
	padding: clamp(0.85rem, 1.9vw, 1.25rem);
}

.gm-machine__media {
	margin: 0;
	border-radius: calc(var(--gm-radius) * 0.75);
	padding: clamp(0.3rem, 0.8vw, 0.5rem);
	overflow: hidden;
}

.gm-machine__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.gm-machine__body {
	min-width: 0;
	align-self: start;
}

.gm-machine__name {
	margin: 0;
	font-family: var(--lower-font-corporate-bold);
	font-weight: 700;
	font-size: clamp(1.18rem, 2.2vw, 1.55rem);
	line-height: 1.25;
}

.gm-machine__desc {
	margin: clamp(0.4rem, 1vw, 0.65rem) 0 0;
	font-size: clamp(0.92rem, 1.55vw, 1.04rem);
	line-height: 1.65;
	font-weight: 600;
}

.gm-machine__spec {
	margin: clamp(0.34rem, 0.8vw, 0.5rem) 0 0;
	font-size: clamp(0.78rem, 1.2vw, 0.87rem);
	line-height: 1.45;
	font-weight: 700;
	color: #4a4644;
}

.gm-machine--feature,
.gm-machine--single,
.gm-machine--full {
	grid-column: 1 / -1;
}

.gm-machine--feature {
	grid-template-columns: minmax(0, 0.36fr) minmax(0, 0.64fr);
}

.gm-machine--single {
	width: min(56rem, 100%);
	margin-inline: 0;
	justify-self: start;
	grid-template-columns: minmax(0, 0.45fr) minmax(0, 0.55fr);
}

.gm-machine--full {
	width: min(42rem, 100%);
}

.gm-page-top {
	position: fixed;
	right: clamp(0.6rem, 1.8vw, 1.4rem);
	bottom: clamp(0.6rem, 1.8vw, 1.4rem);
	width: clamp(3.6rem, 6.2vw, 5.2rem);
	line-height: 0;
	z-index: 60;
}

.gm-page-top img {
	width: 100%;
	height: auto;
	display: block;
}

.u-br-sp-only {
	display: none;
}

@media (max-width: 1100px) {
	.pg-game {
		--gm-section-gap: clamp(0, 5vw, 3.4rem);
	}

	.gm-intro {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.gm-intro__lead {
		text-align: let;
	}

	.gm-hero__inner {
			top:1.5rem;
		left: 50%;
		transform: translateX(-50%);
		width: min(var(--lower-max-width), calc(100% - clamp(1.8rem, 6.8vw, 4rem)));
	}

	.gm-shortcuts__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gm-shortcuts__card {
		min-height: clamp(14rem, 37vw, 19rem);
	}

	.gm-shortcuts__label {
		font-size: 1.25rem;
	}

	.gm-machine-grid--prize,
	.gm-machine-grid--arcade,
	.gm-machine-grid--two {
		grid-template-columns: 1fr;
	}

	.gm-machine,
	.gm-machine--feature,
	.gm-machine--single {
		grid-template-columns: minmax(0, 0.32fr) minmax(0, 0.68fr);
	}

	.gm-machine--full {
		width: 100%;
	}
}

@media (min-width: 769px) and (max-width: 1024px) {
	/* Tablet: 背景2枚 + overlay のスケーリング基準を揃えてズレを抑える */
	.gm-hero__bg-left,
	.gm-hero__bg-right {
		object-fit: cover;
		object-position: center top;
	}

	.gm-hero__bg-overlay {
		-webkit-mask-size: cover;
		mask-size: cover;
	}
}

@media (max-width: 768px) {
	.pg-game {
		--gm-content-width: min(100%, calc(100% - 2rem));
		--gm-section-gap: clamp(1.9rem, 6.6vw, 2.9rem);
	}

	.gm-hero__bg-overlay {
		--lower-hero-cover-image: url('../images/pages/game/cover.webp');
		--lower-hero-cover-opacity: 0.28;
	}

	.gm-hero__inner {
	
		left: 50%;
		transform: translateX(-50%);
		width: calc(100% - clamp(1.4rem, 7.2vw, 2.4rem));
		padding: 0;
		padding-bottom: var(--lower-hero-inner-pb-sp);
	}

	.gm-intro__title {
		font-size: 1.5rem;
		line-height: 1.5;
	}

	.gm-intro__lead {
		line-height: 1.78;
	}

	.gm-shortcuts__click {
		display: none;
	}

	.gm-shortcuts__list {
		grid-template-columns: 1fr;
	}

	.gm-shortcuts__card {
		min-height: auto;
	}

	.gm-shortcuts__media img {
		max-height: clamp(11rem, 48vw, 14rem);
	}

	.gm-shortcuts__label {
		font-size: 1.25rem;
	}

	.gm-machine,
	.gm-machine--feature,
	.gm-machine--single,
	.gm-machine--full {
		grid-template-columns: 1fr;
		width: 100%;
	}

	.gm-machine__media {
		aspect-ratio: 16 / 11;
	}

	.gm-section__title {
		display: block;
	}

	.gm-links__actions {
		grid-template-columns: 1fr;
	}

	.gm-links__button {
		width: min(100%, 30rem);
	}

	.gm-page-top {
		width: clamp(3.2rem, 16vw, 4.2rem);
		right: clamp(0.5rem, 2.6vw, 0.9rem);
		bottom: clamp(0.5rem, 2.6vw, 0.9rem);
	}

	.u-br-sp-only {
		display: inline;
	}
}
