@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

.main-content {
	font-family: "Noto Sans JP", sans-serif;
	font-feature-settings: "palt";
}
.main-content img {
	max-width: 100%;
}
.main-visual {
	max-width: 1230px;
	margin: 0 auto;
}
.main-content dt {
	color: inherit;
}
@media screen and (max-width:960px) {
	.l-main {
		padding-inline: 0;
		overflow: clip;
	}
	.sp-none {
		display: none;
	}
}

.about {
	padding: 25px 20px 35px;
}
.about-box {
	max-width: 954px;
	margin: 0 auto;
}
.about-txt {
	text-align: center;
	font-size: 21.33px;
	letter-spacing: .025em;
	line-height: 1.6254;
	font-weight: 500;
	margin: 0;
}
.about-note {
	font-size: 14px;
	color: #2d2926;
	margin: 22px auto 0;
	padding: 10px 15px;
	line-height: 1.5;
	text-align: center;
	border: 1px solid #2d2926;
	font-feature-settings: normal;
	max-width: 700px;
}
.about-note-02 {
	font-size: 12px;
	line-height: 2;
	color: #a5a5a5;
	letter-spacing: .04em;
	margin: 15px 0 0;
}
@media screen and (min-width:961px) {
	.pc-none {
		display: none;
	}
}
@media screen and (max-width:960px) {
	.about {
		padding: calc(14 / 750 * 100vw) calc(26 / 750 * 100vw) calc(46 / 750 * 100vw);
	}
	.about-box {
		max-width: none;
	}
	.about-txt {
		font-size: calc(32 / 750 * 100vw);
		padding: 0 calc(30 / 750 * 100vw);
		line-height: 1.625;
	}
	.about-note {
		font-size: calc(20 / 750 * 100vw);
		margin: calc(25 / 750 * 100vw) auto 0;
		padding: calc(10 / 750 * 100vw) calc(26 / 750 * 100vw) calc(13 / 750 * 100vw);
		text-align: left;
		line-height: 1.6;
		max-width: calc(700/ 750 * 100vw);
	}
	.about-note span {
		display: inline-block;
		margin-left: 1em;
		text-indent: -1em;
	}
	.about-note-02 {
		font-size: calc(18 / 750 * 100vw);
		margin: calc(25 / 750 * 100vw) 0 0;
		line-height: 1.6667;
	}
}

.group {
	background: #f0f0f2;
	padding: 50px 20px;
}
.group-box {
	max-width: 960px;
	margin: 0 auto;
}
.group h2 {
	background: #2d2926;
	padding: 16px 0;
	margin: 60px 0 25px;
}
.group h2:first-child {
	margin-top: 0;
}
.group h2 img {
	display: block;
	margin: 0 auto;
	height: 28.968px;
	width: auto;
}
.group-txt {
	text-align: center;
	font-size: 20px;
	font-weight: 500;
	letter-spacing: .03em;
	margin-bottom: 27px;
}
.group-product {
	background: #fff;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 85px 35px;
	padding: 19px 25px 30px;
}
.group-product figure {
	margin: 0 0 6px;
}
.group-product .name {
	text-align: center;
	min-height: 60px;
	font-size: 24px;
	letter-spacing: .03em;
	font-weight: 700;
	line-height: 1.25;
	margin: 0 -.5rem 16px;
}
.group-product .desc {
	font-size: 20px;
	min-height: 96px;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: .03em;
	text-align: center;
	margin: 0 0 18px;
}
.group-product .group-product-item:nth-child(n+4) .desc {
	min-height: 64px;
}
.group-product .price {
	text-align: center;
	font-size: 15px;
	font-weight: 700;
	margin: 0 0 13px;
}
.group-product .price > span {
	font-size: 30px;
	font-weight: 500;
	letter-spacing: -.02em;
}
.group-product .price > span span {
	font-size: 38px;
	letter-spacing: -.03em;
}
.group-product input[type="checkbox"] {
	appearance: none;
	position: absolute;
	width: 0;
	height: 0;
	visibility: hidden;
	opacity: 0;
}
.group-product .select {
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid #2c2925;
	background: #2c2925;
	color: #fff;
	height: 69px;
	border-radius: 35px;
	font-size: 21.6px;
	font-weight: 500;
	text-align: center;
	padding: 6px 8px 8px 50px;
	letter-spacing: .1em;
	cursor: pointer;
	position: relative;
}
.group-product .select::before {
	content: '';
	display: block;
	width: 28px;
	height: 28px;
	border: 2px solid #fff;
	border-radius: 3px;
	box-sizing: border-box;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 75px;
	margin: auto 0;
}
.group-product input[type="checkbox"]:checked + .select::before {
	background: #fff;
}
.group-product input[type="checkbox"]:checked + .select::after {
	content: '';
	display: block;
	width: 18px;
	height: 13px;
	border-left: 3px solid #2c2925;
	border-bottom: 3px solid #2c2925;
	transform: rotate(-42deg);
	position: absolute;
	top: 0;
	bottom: 7px;
	left: 80px;
	margin: auto 0;
}
.group-product .note {
	font-size: 11px;
	line-height: 1.4545;
	color: #a5a5a5;
	margin: 14px -5px 0 0;
	letter-spacing: .05em;
}
.group-product .note span {
	border: 1px solid #a5a5a5;
	line-height: 1.2;
	margin-right: 5px;
	display: inline-block;
}
.group-conf {
	background: #fff;
	border: 5px solid #ff5712;
	margin-top: 113px;
	padding-bottom: 25px;
	position: relative;
}
.group-conf::before {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 36px 21px 0;
	border-color: #ff5712 transparent transparent;
	position: absolute;
	left: 0;
	right: 0;
	top: -78px;
	margin: 0 auto;
}
.group-conf h3 {
	background: #ff5712;
	font-size: 32px;
	color: #fff;
	text-align: center;
	padding: 15px 0 22px;
	letter-spacing: .025em;
}
.group-conf-product {
	margin: 30px 33px;
	display: flex;
	justify-content: space-between;
}
.group-conf-product-item {
	width: 45.5%;
	display: flex;
	align-items: center;
}
.group-conf-product-item figure {
	width: 128px;
	height: 128px;
	margin: 0;
	background: #f0f0f2;
	position: relative;
}
.group-conf-product-item figure:empty::before,
.group-conf-product-item figure:empty::after {
	content: '';
	display: block;
	width: 64px;
	height: 10px;
	background: #c3c3c3;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
}
.group-conf-product-item figure:empty::after {
	transform: rotate(90deg);
}
.group-conf-product-info {
	flex: 1;
	padding-left: 18px;
}
.group-conf-product-info .name {
	margin: 0;
	font-size: 20px;
	letter-spacing: .03em;
	font-weight: 500;
}
.group-conf-product-info .name:empty::before {
	content: '商品を選択してください';
}
.group-conf-product-info .price {
	margin: 18px 0 4px;
	font-size: 12px;
	font-weight: 500;
}
.group-conf-product-info .price:empty {
	display: none;
}
.group-conf-product-info .price > span {
	font-size: 21px;
	letter-spacing: -.03em;
	margin-right: 3px;
	vertical-align: -1px;
}
.group-conf-product-info .price > span span {
	font-size: 26px;
	letter-spacing: -.03em;
}
.group-conf-result {
	display: flex;
	align-items: flex-end;
	flex-wrap: wrap;
	color: #2d2926;
	margin: 30px 33px 0;
	padding: 22px 11px 0 15px;
	position: relative;
}
.group-conf-result::before {
	content: '';
	display: block;
	height: 4px;
	border-radius: 2px;
	background: #ff5712;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}
.group-conf-result-normal {
	margin: 0 0 -7px;
}
.group-conf-result-normal dt {
	font-weight: 500;
	margin-bottom: 4px;
}
.group-conf-result-normal dd {
	font-weight: 500;
	font-size: 14.4px;
	position: relative;
}
.group-conf-result-normal dd::after {
	content: '';
	display: block;
	height: 2px;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	background: #2d2926;
	margin: auto 0;
}
.group-conf-result-normal dd > span {
	font-size: 22px;
	letter-spacing: -.03em;
	vertical-align: -2px;
}
.group-conf-result-normal dd > span span {
	font-size: 27.2px;
	letter-spacing: -.03em;
}
.group-conf-result-discount {
	display: flex;
	align-items: center;
	gap: 14px;
	background: #c90e30;
	color: #fff;
	font-weight: 700;
	margin: 0 0 0 23px;
	border-radius: 5px;
	font-size: 24px;
	padding: 11px 11px 4px;
	position: relative;
}
.group-conf-result-discount::before {
	content: '';
	display: block;
	background: url(../img/group_arrow_img.svg) no-repeat left top / 100% auto;
	width: 24.406px;
	height: 14.41px;
	position: absolute;
	left: 125px;
	bottom: -14px;
}
.group-conf-result-discount dt {
	margin-top: -5px;
}
.group-conf-result-discount dd span {
	font-size: 130%;
	margin: 0 3px 0 2px;
	line-height: 1;
	vertical-align: -2px;
}
.group-conf-result-total {
	display: flex;
	align-items: flex-end;
	margin: 0 0 0 auto;
	position: relative;
	top: 5px;
	color: #c90e30;
	font-weight: 700;
}
.group-conf-result-total dt {
	font-size: 27.2px;
	margin: 0 9px 10px 0;
}
.group-conf-result-total dd {
	font-size: 16px;
}
.group-conf-result-total dd > span {
	font-size: 44px;
	letter-spacing: -.03em;
	vertical-align: -2px;
}
.group-conf-result-total dd > span span {
	font-size: 56px;
	line-height: 1;
	letter-spacing: -.03em;
}
.group-conf-result-btn {
	width: 100%;
	margin-top: 42px;
}
.group-conf-result-btn a,
.group-conf-result-btn button {
	appearance: none;
	padding: 0;
	border: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 480px;
	height: 70px;
	border-radius: 34px;
	background: #000;
	color: #fff;
	font-size: 24px;
	letter-spacing: .05em;
	font-weight: 700;
	margin: 0 auto;
	transition: opacity .3s;
}
.group-conf-result-btn a[href=""],
a.float-result-btn[href=""],
button.float-result-btn[data-pid=""],
.group-conf-result-btn button[data-pid=""],
button.float-result-btn[data-pid=""]:disabled,
.group-conf-result-btn button[data-pid=""]:disabled {
	pointer-events: none;
	opacity: .4;
}
.group .hidden {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
@media (hover:hover) {
	.group-conf-result-btn a:hover,
	.group-conf-result-btn button:hover {
		opacity: .6;
	}
}
@media screen and (max-width:960px) {
	.group {
		padding: calc(50 / 750 * 100vw) calc(30 / 750 * 100vw);
	}
	.group-box {
		max-width: none;
	}
	.group h2 {
		padding: calc(24 / 750 * 100vw) 0;
		margin: calc(82 / 750 * 100vw) 0 calc(38 / 750 * 100vw);
	}
	.group h2 img {
		height: calc(91.19 / 750 * 100vw);
	}
	.group-txt {
		font-size: calc(36 / 750 * 100vw);
		margin-bottom: calc(44 / 750 * 100vw);
	}
	.group-product {
		grid-template-columns: repeat(2, 1fr);
		gap: calc(56 / 750 * 100vw) calc(40 / 750 * 100vw);
		padding: calc(30 / 750 * 100vw) calc(25 / 750 * 100vw) calc(52 / 750 * 100vw);
	}
	.group-product figure {
		margin: 0 0 calc(7 / 750 * 100vw);
	}
	.group-product .name {
		min-height: calc(65 / 750 * 100vw);
		font-size: calc(26 / 750 * 100vw);
		margin: 0 calc(-10 / 750 * 100vw) calc(12 / 750 * 100vw);
	}
	.group-product .group-product-item:last-child .name {
		min-height: 0;
	}
	.group-product .desc {
		font-size: calc(24 / 750 * 100vw);
		min-height: calc(116 / 750 * 100vw);
		letter-spacing: .01em;
		margin: 0 0 calc(12 / 750 * 100vw);
	}
	.group-product .group-product-item:nth-child(n+4) .desc {
		min-height: calc(116 / 750 * 100vw);
	}
	.group-product .group-product-item:nth-child(1) .desc,
	.group-product .group-product-item:nth-child(2) .desc {
		min-height: calc(116 / 750 * 100vw);
	}
	.group-product .price {
		font-size: calc(16 / 750 * 100vw);
		margin: 0 0 calc(12 / 750 * 100vw);
	}
	.group-product .price > span {
		font-size: calc(32 / 750 * 100vw);
	}
	.group-product .price > span span {
		font-size: calc(40 / 750 * 100vw);
	}
	.group-product .select {
		border-width: calc(2 / 750 * 100vw);
		height: calc(74 / 750 * 100vw);
		border-radius: calc(35 / 750 * 100vw);
		font-size: calc(23.52 / 750 * 100vw);
		padding: calc(6 / 750 * 100vw) calc(8 / 750 * 100vw) calc(8 / 750 * 100vw) calc(50 / 750 * 100vw);
		margin: 0;
	}
	.group-product .select::before {
		width: calc(30 / 750 * 100vw);
		height: calc(30 / 750 * 100vw);
		border-width: calc(2 / 750 * 100vw);
		border-radius: calc(4 / 750 * 100vw);
		left: calc(79 / 750 * 100vw);
	}
	.group-product input[type="checkbox"]:checked + .select::after {
		width: calc(18 / 750 * 100vw);
		height: calc(13 / 750 * 100vw);
		border-left-width: calc(3 / 750 * 100vw);
		border-bottom-width: calc(3 / 750 * 100vw);
		bottom: calc(10 / 750 * 100vw);
		left: calc(84 / 750 * 100vw);
	}
	.group-product .note {
		font-size: calc(18 / 750 * 100vw);
		line-height: 1.6667;
		margin: calc(12 / 750 * 100vw) 0 0;
	}
	.group-product .note span {
		border-width: calc(1 / 750 * 100vw);
		margin-right: calc(10 / 750 * 100vw);
	}
	.group-conf {
		border-width: calc(5 / 750 * 100vw);
		margin-top: calc(120 / 750 * 100vw);
		padding-bottom: calc(36 / 750 * 100vw);
	}
	.group-conf::before {
		border-width: calc(39 / 750 * 100vw) calc(22.5 / 750 * 100vw) 0;
		top: calc(-84 / 750 * 100vw);
	}
	.group-conf h3 {
		font-size: calc(40 / 750 * 100vw);
		padding: calc(32 / 750 * 100vw) 0 calc(36 / 750 * 100vw);
	}
	.group-conf-product {
		margin: calc(50 / 750 * 100vw) calc(25 / 750 * 100vw);
		display: block;
	}
	.group-conf-product-item {
		width: auto;
	}
	.group-conf-product-item + .group-conf-product-item {
		margin-top: calc(30 / 750 * 100vw);
	}
	.group-conf-product-item figure {
		width: calc(200 / 750 * 100vw);
		height: calc(200 / 750 * 100vw);
	}
	.group-conf-product-item figure:empty::before,
	.group-conf-product-item figure:empty::after {
		width: calc(100 / 750 * 100vw);
		height: calc(10 / 750 * 100vw);
	}
	.group-conf-product-info {
		padding-left: calc(25 / 750 * 100vw);
	}
	.group-conf-product-info .name {
		font-size: calc(30 / 750 * 100vw);
	}
	.group-conf-product-info .price {
		margin: calc(32 / 750 * 100vw) 0 calc(10 / 750 * 100vw);
		font-size: calc(16 / 750 * 100vw);
	}
	.group-conf-product-info .price > span {
		font-size: calc(32 / 750 * 100vw);
		margin-right: calc(4 / 750 * 100vw);
		vertical-align: -.05em;
	}
	.group-conf-product-info .price > span span {
		font-size: calc(40 / 750 * 100vw);
	}
	.group-conf-result {
		margin: calc(52 / 750 * 100vw) calc(30 / 750 * 100vw) 0;
		padding: calc(40 / 750 * 100vw) 0 0;
		gap: 0 calc(30 / 750 * 100vw);
		justify-content: center;
	}
	.group-conf-result::before {
		height: calc(4 / 750 * 100vw);
		border-radius: calc(2 / 750 * 100vw);
	}
	.group-conf-result-normal {
		margin: 0 0 calc(-14 / 750 * 100vw);
	}
	.group-conf-result-normal dt {
		font-size: calc(20 / 750 * 100vw);
		margin-bottom: calc(4 / 750 * 100vw);
	}
	.group-conf-result-normal dd {
		font-size: calc(18 / 750 * 100vw);
	}
	.group-conf-result-normal dd::after {
		height: calc(2 / 750 * 100vw);
	}
	.group-conf-result-normal dd > span {
		font-size: calc(27 / 750 * 100vw);
		vertical-align: -.05em;
	}
	.group-conf-result-normal dd > span span {
		font-size: calc(34 / 750 * 100vw);
	}
	.group-conf-result-discount {
		gap: calc(14 / 750 * 100vw);
		margin: 0;
		border-radius: calc(5 / 750 * 100vw);
		font-size: calc(30 / 750 * 100vw);
		padding: calc(11 / 750 * 100vw) calc(16 / 750 * 100vw) calc(4 / 750 * 100vw);
	}
	.group-conf-result-discount::before {
		width: calc(25 / 750 * 100vw);
		height: calc(15 / 750 * 100vw);
		left: calc(160 / 750 * 100vw);
		bottom: calc(-15 / 750 * 100vw);
	}
	.group-conf-result-discount dt {
		margin-top: calc(-10 / 750 * 100vw);
	}
	.group-conf-result-discount dd span {
		margin: 0 calc(3 / 750 * 100vw) 0 calc(2 / 750 * 100vw);
		vertical-align: -.04em;
	}
	.group-conf-result-total {
		width: 100%;
		justify-content: center;
		margin: calc(20 / 750 * 100vw) 0 0 auto;
		top: auto;
	}
	.group-conf-result-total dt {
		font-size: calc(34 / 750 * 100vw);
		margin: 0 calc(9 / 750 * 100vw) calc(20 / 750 * 100vw) 0;
	}
	.group-conf-result-total dd {
		font-size: calc(20 / 750 * 100vw);
	}
	.group-conf-result-total dd > span {
		font-size: calc(56 / 750 * 100vw);
		vertical-align: -.1em;
	}
	.group-conf-result-total dd > span span {
		font-size: calc(70 / 750 * 100vw);
	}
	.group-conf-result-btn {
		margin-top: calc(8 / 750 * 100vw);
	}
	.group-conf-result-btn a,
	.group-conf-result-btn button {
		width: 100%;
		height: calc(90 / 750 * 100vw);
		border-radius: calc(45 / 750 * 100vw);
		font-size: calc(29 / 750 * 100vw);
	}
}

.recommend {
	text-align: center;
	padding: 0 20px;
	margin-top: 108px;
}
.recommend-box {
	max-width: 910px;
	margin: 0 auto;
}
.recommend h2 {
	border-bottom: 3px solid #000;
	padding-bottom: 32px;
	margin: 0 0 45px;
}
.recommend h2 img {
	max-width: 386.281px;
	margin: 0 auto;
	display: block;
}
.recommend-product {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 35px;
}
.recommend-product figure {
	margin: 0;
}
.recommend-product h3 {
	margin: 14px 0 11px;
	font-weight: 700;
	font-size: 24px;
	line-height: 1.25;
	letter-spacing: .03em;
	min-height: 90px;
}
.recommend-product .price {
	font-size: 15px;
	font-weight: 700;
	margin: 0 0 22px;
}
.recommend-product .price > span {
	font-size: 30px;
	font-weight: 500;
	letter-spacing: -.03em;
	vertical-align: -2px;
}
.recommend-product .price > span span {
	font-size: 38px;
	letter-spacing: -.03em;
}
.recommend-product .btn {
	width: 100%;
	appearance: none;
	border: 0;
	font-family: inherit;
	margin: 0 -3px;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #000;
	color: #fff;
	height: 70px;
	border-radius: 35px;
	font-size: 22.5px;
	font-weight: 500;
	letter-spacing: .05em;
	padding: 0 0 8px;
	transition: opacity .3s;
}
@media (hover:hover) {
	.recommend-product .btn:hover {
		opacity: .6;
	}
}
@media screen and (max-width:960px) {
	.recommend {
		padding: 0 calc(40 / 750 * 100vw);
		margin-top: calc(100 / 750 * 100vw);
	}
	.recommend-box {
		max-width: none;
	}
	.recommend h2 {
		border-bottom-width: calc(4 / 750 * 100vw);
		padding-bottom: calc(34 / 750 * 100vw);
		margin: 0 0 calc(50 / 750 * 100vw);
	}
	.recommend h2 img {
		max-width: calc(500 / 750 * 100vw);
	}
	.recommend-product {
		margin: 0 calc(14 / 750 * 100vw);
		grid-template-columns: repeat(2, 1fr);
		gap: calc(60 / 750 * 100vw) calc(40 / 750 * 100vw);
	}
	.recommend-product h3 {
		margin: calc(14 / 750 * 100vw) 0 calc(10 / 750 * 100vw);
		font-size: calc(26 / 750 * 100vw);
		min-height: 0;
		line-height: 1.2308;
	}
	.recommend-product .price {
		font-size: calc(16 / 750 * 100vw);
		margin: 0 0 calc(20 / 750 * 100vw);
	}
	.recommend-product .price > span {
		font-size: calc(32 / 750 * 100vw);
		vertical-align: -.08em;
	}
	.recommend-product .price > span span {
		font-size: calc(40 / 750 * 100vw);
	}
	.recommend-product .btn {
		margin: 0 calc(-4 / 750 * 100vw);
		height: calc(75 / 750 * 100vw);
		border-radius: calc(38 / 750 * 100vw);
		font-size: calc(24 / 750 * 100vw);
		padding-bottom: calc(8 / 750 * 100vw);
	}
}

.campaign {
	margin: 107px 0 50px;
	padding: 0 20px;
}
.campaign-box {
	max-width: 910px;
	margin: 0 auto;
}
.campaign h2 {
	border-bottom: 3px solid #000;
	padding: 0 0 29px;
	margin: 0 0 51px;
}
.campaign h2 img {
	width: 344.406px;
	display: block;
	margin: 0 auto;
}
.campaign-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px 30px;
	margin: 0;
	padding: 0;
}
.campaign-list li {
	display: block;
}
.campaign-list li a {
	display: block;
	transition: opacity .3s;
}
@media (hover:hover) {
	.campaign-list li a:hover {
		opacity: .6;
	}
}
@media screen and (max-width:960px) {
	.campaign {
		margin: calc(152 / 750 * 100vw) 0 calc(100 / 750 * 100vw);
		padding: 0 calc(40 / 750 * 100vw);
	}
	.campaign-box {
		max-width: none;
	}
	.campaign h2 {
		border-bottom-width: calc(4 / 750 * 100vw);
		padding: 0 0 calc(32 / 750 * 100vw);
		margin: 0 0 calc(50 / 750 * 100vw);
	}
	.campaign h2 img {
		width: calc(446 / 750 * 100vw);
	}
	.campaign-list {
		grid-template-columns: repeat(1, 1fr);
		gap: calc(40 / 750 * 100vw);
	}
}

.step {
	padding: 87px 0 0;
}
.step-box {
	max-width: 960px;
	margin: 0 auto;
}
.step-box h2 {
	border-bottom: 3px solid #000;
	padding: 0 0 14px;
	margin-bottom: 27px;
}
.step-box h2 img {
	width: 441.94px;
	display: block;
	margin: 0 auto;
}
.step-txt {
	text-align: center;
	font-size: 20px;
	font-weight: 500;
	letter-spacing: .03em;
	margin-bottom: 44px;
}
.step-list {
	padding: 0;
	display: flex;
	justify-content: center;
	gap: 59px;
	margin-bottom: 75px;
}
.step-list li {
	width: 102px;
	display: block;
	text-align: center;
	font-size: 17.6px;
	line-height: 1.2727;
	position: relative;
}
.step-list li:nth-child(n+4) {
	width: 85px;
}
.step-list li:nth-child(4) {
	margin-left: -12px;
}
.step-list li + li::before {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 10.5px 0 10.5px 18px;
	border-color: transparent transparent transparent #c2c2c2;
	position: absolute;
	top: 71px;
	left: -38px;
}
.step-list li + li:nth-child(5):before {
	left: -44px;
}
.step-list figure {
	margin: 0;
}
.step-list figure img {
	width: auto;
	height: 164px;
	margin: 0 auto 7px;
	display: block;
}
.step-list figcaption {
	height: 45px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.step h3 {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 52px;
}
.step img {
	width: 443.22px;
}
.step h3::before,
.step h3::after {
	content: '';
	display: block;
	width: 224px;
	height: 2px;
	margin-bottom: 2px;
	background: #000;
}
.step-routine {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	padding: 0;
}
.step-routine li {
	display: block;
	border: 1px solid #cfcfcf;
	padding: 24px 5px 20px;
	text-align: center;
}
.step-routine li figure {
	margin: 0 auto 16px;
	max-width: 229px;
}
.step-routine li h4 {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .05em;
	margin: 0 0 6px;
}
.step-routine li h4 img {
	display: block;
	width: auto;
	height: 13.03px;
	margin: 0 auto 6px;
}
.step-routine li p {
	text-align: center;
	font-size: 18px;
	letter-spacing: .03em;
	line-height: 1.6667;
	margin: 0;
}
@media screen and (max-width:960px) {
	.step {
		padding: calc(88 / 750 * 100vw) calc(30 / 750 * 100vw) calc(50 / 750 * 100vw);
	}
	.step-box {
		max-width: none;
	}
	.step-box h2 {
		border-bottom-width: calc(4 / 750 * 100vw);
		padding: 0 0 calc(22 / 750 * 100vw);
		margin-bottom: calc(36 / 750 * 100vw);
	}
	.step-box h2 img {
		width: calc(361.91 / 750 * 100vw);
	}
	.step-txt {
		font-size: calc(28 / 750 * 100vw);
		line-height: 1.6429;
		margin-bottom: calc(48 / 750 * 100vw);
	}
	.step-list {
		gap: 0;
		justify-content: space-between;
		left: auto;
		margin-bottom: calc(84 / 750 * 100vw);
	}
	.step-list li {
		width: calc(146 / 750 * 100vw);
		font-size: calc(22 / 750 * 100vw);
	}
	.step-list li:nth-child(n+4) {
		width: calc(140 / 750 * 100vw);
	}
	.step-list li:nth-child(4) {
		margin-left: calc(-20 / 750 * 100vw);
	}
	.step-list li:nth-child(5) {
		margin-left: calc(-20 / 750 * 100vw);
	}
	.step-list li + li::before {
		border-width: calc(14 / 750 * 100vw) 0 calc(14 / 750 * 100vw) calc(22 / 750 * 100vw);
		top: calc(90 / 750 * 100vw);
		left: calc(-6 / 750 * 100vw);
	}
	.step-list li + li:nth-child(5):before {
		left: calc(-6 / 750 * 100vw);
	}
	.step-list li + li:nth-child(4):before {
		left: calc(2 / 750 * 100vw);
	}
	.step-list li + li:nth-child(2):before {
		left: calc(-20 / 750 * 100vw);
	}
	.step-list figure img {
		height: calc(206 / 750 * 100vw);
		margin: 0 auto calc(6 / 750 * 100vw);
	}
	.step-list figcaption {
		height: calc(56 / 750 * 100vw);
	}
	.step h3 {
		margin: 0 calc(20 / 750 * 100vw) calc(48 / 750 * 100vw);
	}
	.step img {
		width: calc(508 / 750 * 100vw);
	}
	.step h3::before,
	.step h3::after {
		width: calc(54 / 750 * 100vw);
		height: calc(2 / 750 * 100vw);
		margin-bottom: 0;
	}
	.step-routine {
		margin: 0 calc(-30 / 750 * 100vw);
		padding-left: calc(50 / 750 * 100vw);
		display: block;
	}
	.step-routine .slick-list {
		overflow: visible;
	}
	.step-routine .slick-prev,
	.step-routine .slick-next {
		width: calc(28 / 750 * 100vw);
		height: calc(28 / 750 * 100vw);
		top: calc(388 / 750 * 100vw);
		border-color: #ccc;
	}
	.step-routine .slick-next {
		right: calc(18 / 750 * 100vw);
	}
	.step-routine .slick-prev {
		left: calc(18 / 750 * 100vw);
	}
	.step-routine .slick-track {
		display: flex;
	}
	.step-routine .slick-disabled {
		display: none !important;
	}
	.step-routine .slick-track::after {
		content: '';
		display: block;
		clear: both;
		width: 0;
		height: 0;
	}
	.step-routine li {
		height: 100%;
		width: calc(650 / 750 * 100vw);
		border-width: calc(2 / 750 * 100vw);
		padding: calc(50 / 750 * 100vw) calc(10 / 750 * 100vw) calc(38 / 750 * 100vw);
		float: left;
	}
	.step-routine .slick-slide {
		height: auto;
		padding-right: calc(50 / 750 * 100vw);
	}
	.step-routine .slick-slide > div {
		height: 100%;
	}
	.step-routine li figure {
		margin: 0 auto calc(40 / 750 * 100vw);
		max-width: calc(480 / 750 * 100vw);
	}
	.step-routine li h4 {
		font-size: calc(32 / 750 * 100vw);
		margin: 0 0 calc(20 / 750 * 100vw);
	}
	.step-routine li h4 img {
		height: calc(23 / 750 * 100vw);
		margin: 0 auto calc(14 / 750 * 100vw);
	}
	.step-routine li p {
		font-size: calc(28 / 750 * 100vw);
		line-height: 1.7857;
	}
}

.float-result {
	position: sticky;
	left: 0;
	bottom: 0;
	width: 100%;
	background: #f0f0f2;
	padding: 10px 20px;
}
.float-result-box {
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	align-items: flex-end;
}
.float-result-product {
	padding-left: 10px;
	width: 51.5%;
	display: grid;
	grid-template-columns: 154.65px auto;
	gap: 10px;
	margin: 0;
	border-right: 1px solid #999;
}
.float-result-product dd {
	font-size: 16px;
	font-weight: 500;
	padding-top: 6px;
	letter-spacing: .03em;
}
.float-result-product dd:empty::before {
	content: '商品を選択してください';
}
.float-result-normal {
	margin: 0 0 6px auto;
}
.float-result-normal dt {
	font-size: 12px;
	font-weight: 500;
	margin: 0 0 5px 2px;
}
.float-result-normal dd {
	font-size: 10.67px;
	font-weight: 500;
	position: relative;
}
.float-result-normal dd::after {
	content: '';
	display: block;
	height: 2px;
	background: #000;
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
}
.float-result-normal dd > span {
	font-size: 16px;
	letter-spacing: -.03em;
}
.float-result-normal dd > span span {
	font-size: 20px;
	letter-spacing: -.03em;
}
.float-result-total {
	margin: 0 0 5px 13px;
	color: #c90e30;
}
.float-result-total dt {
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 4px;
}
.float-result-total dd {
	font-size: 12px;
	font-weight: 700;
}
.float-result-total dd > span {
	font-size: 24px;
	letter-spacing: -.03em;
	vertical-align: -2px;
}
.float-result-total dd > span span {
	font-size: 30px;
	letter-spacing: -.03em;
}
.float-result-btn {
	appearance: none;
	border: 0;
	width: 20.4%;
	height: 50px;
	border-radius: 25px;
	background: #000;
	color: #fff !important;
	font-size: 16px;
	font-weight: 500;
	padding: 0 0 4px;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 0 12px 5px;
	letter-spacing: .08em;
	transition: opacity .3s;
}
@media (hover:hover) {
	.float-result-btn:hover {
		opacity: .6;
	}
}
@media screen and (max-width:960px) {
	.float-result {
		padding: calc(30 / 750 * 100vw);
	}
	.float-result-box {
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.float-result-product {
		padding-left: 0;
		width: 100%;
		grid-template-columns: calc(155 / 750 * 100vw) auto;
		gap: calc(12 / 750 * 100vw) calc(20 / 750 * 100vw);
		border-right: 0;
		margin-bottom: calc(18 / 750 * 100vw);
	}
	.float-result-product dd {
		font-size: calc(26 / 750 * 100vw);
		display: flex;
		align-items: center;
		justify-content: flex-start;
		padding-top: calc(6 / 750 * 100vw);
	}
	.float-result-normal {
		margin: 0 0 calc(-10 / 750 * 100vw);
	}
	.float-result-normal dt {
		font-size: calc(18 / 750 * 100vw);
		margin: 0 0 calc(4 / 750 * 100vw) calc(2 / 750 * 100vw);
	}
	.float-result-normal dd {
		font-size: calc(16 / 750 * 100vw);
	}
	.float-result-normal dd::after {
		height: calc(4 / 750 * 100vw);
	}
	.float-result-normal dd > span {
		font-size: calc(24 / 750 * 100vw);
	}
	.float-result-normal dd > span span {
		font-size: calc(30 / 750 * 100vw);
	}
	.float-result-total {
		margin: 0 0 calc(-14 / 750 * 100vw);
	}
	.float-result-total dt {
		font-size: calc(24 / 750 * 100vw);
		margin: 0 0 calc(6 / 750 * 100vw) calc(6 / 750 * 100vw);
	}
	.float-result-total dd {
		font-size: calc(18 / 750 * 100vw);
	}
	.float-result-total dd > span {
		font-size: calc(36 / 750 * 100vw);
	}
	.float-result-total dd > span span {
		font-size: calc(46 / 750 * 100vw);
	}
	.float-result-btn {
		width: calc(307 / 750 * 100vw);
		height: calc(75 / 750 * 100vw);
		border-radius: calc(38 / 750 * 100vw);
		font-size: calc(24 / 750 * 100vw);
		padding-bottom: 0;
		margin: 0;
	}
}