:root {
	--brand: #ea0000;
	--gray: #e5e5e5;
	--text: #222;
	--muted: #666;
	--bg: #fff;
	--badge-grad: linear-gradient(180deg, #ff5a5a 0%, #c70000 100%);
	--badge-border: #9e0000;
}
.step .list {
	width: 100% !important;
	display: block !important
}
/* セクション見出し（丸み帯びグラデ） */
.g-sec-ttl {
	margin: 2rem 0 1rem;
	padding: .75rem 1rem;
	color: #fff;
	font-weight: 700;
	border-radius: 14px;
	background: linear-gradient(180deg, #9b9b9b, #7a7a7a);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35);
}
/* 価格2カラム */
.g-price {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.2rem;
	margin-bottom: 2rem;
}
.g-card {
	background: var(--bg);
	border: 1px solid #ddd;
	border-radius: 14px;
	padding: 1.2rem;
	text-align: center;
	box-shadow: 0 6px 16px rgba(0, 0, 0, .04);
}
.g-label {
	font-weight: 700;
	color: #444;
	margin: .25rem 0 .75rem;
}
.g-thumb {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: .25rem 0 1rem;
}
.g-thumb__dummy {
	width: 160px;
	height: 160px;
	border-radius: 10px;
	background: linear-gradient(180deg, #f4f4f4, #eaeaea);
	border: 1px solid #dcdcdc;
}
.g-thumb__dummy--case {
	transform: perspective(600px) rotateY(-18deg);
	width: 170px;
	height: 160px;
}
.g-price__main {
	font-weight: 800;
	letter-spacing: .08em;
	color: var(--brand);
	font-size: clamp(22px, 4vw, 34px);
}
.g-price__main .g-yen {
	font-size: .9em;
	margin-right: .1em;
}
.g-price__main.g-plus {
	color: #d40000
}
.g-note {
	margin-top: .25rem;
	color: #777;
	font-size: .9rem;
}
/* 購入手順 */
.g-steps {
	list-style: none;
	margin: 1rem 0 2rem;
	padding: 0;
	counter-reset: gstep;
	border-radius: 14px;
	border: 1px solid var(--gray);
	background: #fafafa;
}
.g-steps li {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem;
	border-bottom: 1px dashed #d8d8d8;
	color: var(--text);
}
.g-steps li:last-child {
	border-bottom: none;
}
.g-step-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 120px;
	height: 42px;
	padding: 0 16px;
	border-radius: 24px;
	background: var(--badge-grad);
	border: 1px solid var(--badge-border);
	color: #fff;
	font-weight: 800;
	text-shadow: 0 1px 0 rgba(0, 0, 0, .25);
	box-shadow:
		0 4px 10px rgba(234, 0, 0, .25),
		inset 0 1px 0 rgba(255, 255, 255, .3),
		inset 0 -2px 4px rgba(0, 0, 0, .2);
	transition: all .2s ease;
}
.g-step-badge:hover {
	transform: translateY(1px);
	box-shadow:
		0 2px 6px rgba(234, 0, 0, .3),
		inset 0 2px 2px rgba(255, 255, 255, .25);
}
/* 注意書き */
.g-attn {
	margin: 0;
	padding: 0 1rem 1rem 1.25rem;
	display: grid;
	gap: .35rem;
}
.g-attn li {
	color: #c40000;
	font-weight: 700;
	list-style: '※ ';
}
/* レスポンシブ */
@media (max-width:768px) {
	.g-price {
		grid-template-columns: 1fr;
	}
	.g-step-badge {
		min-width: 96px;
		height: 38px;
		font-size: .95rem;
	}
}