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

img {
	vertical-align: bottom;
}

select {
	-webkit-appearance: none;
	appearance: none;
}

:root {
	--color-blue: #156A9A;
	--color-gray: #F6F8F9;
	--color-gray2: #737373;
	--link-color: #558FC9;
	--color-primary: #156A9A;
	--color-accent: #2E94CC;
	--color-primary-dark: #13618E;
	--color-text: #4E4E4E;
}

.pc_item {
	display: block;
}

.sp_item {
	display: none;
}

.mt2em {
	margin-top: 2.5em !important;
}

.ml2em {
	margin-left: 2em;
}

.txt {
	font-size: min(1.0666666667vw, 16px);
	line-height: 2;
	color: var(--color-txt);
}

.mv {
	background-image: url("img/mv-buy.webp?2");
}

.mv-title {
	font-size: min(2.4vw, 36px);
	background-color: rgba(0, 0, 0, 0.4);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.48em;
	min-height: min(10vw, 150px);
}

.max1280 {
	max-width: 1280px;
	margin-inline: auto;
}

.max1280 {
	max-width: 1280px;
	margin-inline: auto;
}

/* アンカーリンク */
.anchor_link {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	margin-top: min(4vw, 60px);
	padding: 0 min(159 * 100vw / 1500, 159px);
}

.anchor_link--item {
	border-right: 3px solid var(--color-primary);
	border-left: 3px solid var(--color-primary);
}

.anchor_link--item:not(:first-child) {
	border-left: none;
}

.anchor_link--item>a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: min(1.4666666667vw, 22px) min(2.3333333333vw, 35px) min(1.4666666667vw, 22px) min(2.3333333333vw, 35px);
	text-align: center;
	text-decoration: none;
	font-size: min(1.2vw, 18px);
	font-weight: bold;
	line-height: 1.5555555556;
	letter-spacing: 0.15em;
	color: var(--color-primary);
	transition: all 0.3s;
}

.anchor_link--item>a::after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	right: min(1.3333333333vw, 20px);
	translate: 0 -50%;
	width: min(1.1486666667vw, 17.23px);
	height: min(1.0393333333vw, 15.59px);
	-webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	background-color: var(--color-primary);
}
.anchor_link--item>a.-page-link::after {
	rotate: -90deg;
}

@media (any-hover: hover) {
	.anchor_link--item>a:hover {
		background-color: var(--color-primary);
		color: #fff;
	}

	.anchor_link--item>a:hover::after {
		background-color: #fff;
	}
}

/* タイトル用
**************/
.section_heading--icon {
	font-size: min(2.4vw, 36px);
	color: var(--color-primary);
	line-height: 1.57;
	letter-spacing: 0.15em;
	font-weight: bold;
	display: flex;
	align-items: baseline;
}

.section_heading--icon::before {
	content: "";
	width: min(1.8666666667vw, 28px);
	height: min(1.8666666667vw, 28px);
	background-color: var(--color-primary);
	margin-right: min(1.1333333333vw, 17px);
	flex-shrink: 0;
}

.section_heading--icon+.txt {
	margin-top: min(2.1333333333vw, 32px);
}

.section_heading--arrow {
	font-size: min(1.3333333333vw, 20px);
	color: var(--color-primary);
	line-height: 1.45;
	font-weight: bold;
	display: flex;
	align-items: center;
}

.section_heading--arrow::before {
	content: "";
	width: min(1.0666666667vw, 16px);
	height: min(1.2vw, 18px);
	background-color: var(--color-primary);
	-webkit-clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
	clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
	margin-right: min(0.5333333333vw, 8px);
}

.section_heading--arrow+.txt--tight {
	margin-top: min(0.7333333333vw, 11px);
}

.section_heading--arrow+.info-block {
	margin-top: min(0.8vw, 12px);
}

.section_heading--arrow+.tbl_base {
	margin-top: min(1.0666666667vw, 16px);
}

/* オンライン申し込みオリジナル */
.section_block .section_heading--icon {
	padding-bottom: min(18 * 100vw / 1500, 18px);
}

.section_block .section_heading--icon+.cont_block {
	padding-top: min(20 * 100vw / 1500, 20px);
}

.content_wrap {
	padding: min(70 * 100vw / 1500, 70px) 0 min(100 * 100vw / 1500, 100px) 0;
}

.box-flex {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	gap: min(12 * 100vw / 1500, 12px);
}

.box-flex+.box-flex {
	margin-top: min(40 * 100vw / 1500, 40px);
}

.box-flex .step-img {
	width: min(535 * 100vw / 1500, 535px);
	flex-shrink: 0;
	text-align: center;
	padding: min(14 * 100vw / 1500, 14px) 0;
}

.box-flex .txt_wrap {
	flex-grow: 1;
	text-align: left;
	padding: min(20 * 100vw / 1500, 20px) 0;
}

.step_list {
	margin-top: min(70 * 100vw / 1500, 70px);
	padding: 0 min(68 * 100vw / 1500, 68px);
}

.step_item {
	background-color: #E7F3FC;
	border-radius: min(20 * 100vw / 1500, 20px);
	padding: min(24 * 100vw / 1500, 24px) min(35 * 100vw / 1500, 35px) min(24 * 100vw / 1500, 24px) min(30 * 100vw / 1500, 30px);
	margin-bottom: min(102 * 100vw / 1500, 102px);
	position: relative;
}

.step_item .icon_step {
	position: absolute;
	top: min(-24 * 100vw / 1500, -24px);
	left: min(29 * 100vw / 1500, 29px);
	display: inline-block;
	border-radius: min(54 * 100vw / 1500, 54px);
	font-size: min(24 * 100vw / 1500, 24px);
	font-weight: 700;
	color: #fff;
	background-color: var(--color-primary);
	padding: min(12 * 100vw / 1500, 12px) min(18 * 100vw / 1500, 18px) min(15 * 100vw / 1500, 15px);
}

.step_item .icon_step.signin {
	background-color: #50B2EB;
}

.step_item .icon_step.num {
	background: url("img/icon-step-num-arr.webp?1") no-repeat left center/contain;
	border-radius: 0;
	display: block;
	width: min(102 * 100vw / 1500, 102px);
}

.step_item .icon_step.point {
	background-color: #fff;
	color: #F2325D;
	border: #F2325D solid 4px;
	padding: min(6 * 100vw / 1500, 6px) min(17 * 100vw / 1500, 17px) min(6 * 100vw / 1500, 6px) min(70 * 100vw / 1500, 70px);
	font-size: min(20 * 100vw / 1500, 20px);
	letter-spacing: 0.15em;
	top: min(-18 * 100vw / 1500, -18px);
}

.step_item .icon_step.point::before {
	content: "";
	position: absolute;
	display: block;
	width: min(52 * 100vw / 1500, 52px);
	height: 100%;
	top: 0;
	left: min(-1 * 100vw / 1500, -1px);
	border-radius: min(20 * 100vw / 1500, 20px) 0 0 min(20 * 100vw / 1500, 20px);
	background: #F2325D;
}

.step_item .icon_step.point::after {
	content: "";
	background: url("img/icon-point.webp?1") no-repeat center center/contain;
	position: absolute;
	left: min(16 * 100vw / 1500, 16px);
	width: min(17 * 100vw / 1500, 17px);
	height: min(26 * 100vw / 1500, 26px);
	top: min(3 * 100vw / 1500, 3px);
}

.step_item .txt_wrap .ttl {
	color: var(--color-primary-dark);
	font-weight: 700;
}

.step_item .txt_wrap .txt {
	font-size: min(20 * 100vw / 1500, 20px);
	color: var(--color-primary-dark);
}

.step_item .txt_wrap .txt.note {
	font-size: min(16 * 100vw / 1500, 16px);
}

.step_item.arr {
	position: relative;
}

.step_item.arr::after {
	content: "";
	position: absolute;
	display: block;
	width: min(44 * 100vw / 1500, 44px);
	height: min(28 * 100vw / 1500, 28px);
	margin: auto;
	left: 0;
	right: 0;
	bottom: min(-50 * 100vw / 1500, -50px);
	background: url("img/icon-under-arr.webp?1") no-repeat center center/contain;
}

.step_item.step3 .box-flex .step-img {
	width: min(588 * 100vw / 1500, 588px);
}

.step_item.num_item .txt_wrap .ttl {
	font-size: min(20 * 100vw / 1500, 20px);
	margin: 0 0 min(26 * 100vw / 1500, 26px);
}

.step_item.num_item .txt_wrap .txt {
	font-size: min(16 * 100vw / 1500, 16px);
	line-height: 2.125;
}

.step_item.num_item .txt_wrap .txt+.txt {
	margin-top: min(8 * 100vw / 1500, 8px);
}

.step_item.num_item .txt_wrap .detail_list li {
	font-size: min(16 * 100vw / 1500, 16px);
	color: var(--color-primary-dark);
}

.step_item.point_item {
	background-color: #F8EAEA;
	border: #F2325D solid 4px;
}

.step_item.point_item .txt_wrap .ttl {
	color: #707070;
}

.step_item.point_item .txt_wrap .txt {
	color: #4E4E4E;
}

.step_item.point_item .txt_wrap .red {
	color: #FF0000;
}

.red_btn {
	width: min(300 * 100vw / 1500, 300px);
	margin: min(100 * 100vw / 1500, 100px) auto 0;
}

.red_btn a {
	padding: min(15 * 100vw / 1500, 15px) min(20 * 100vw / 1500, 20px) min(16 * 100vw / 1500, 16px);
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #FF3B00;
	color: #fff;
	border-radius: min(50 * 100vw / 1500, 50px);
	font-size: min(20 * 100vw / 1500, 20px);
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	position: relative;
	height: min(80 * 100vw / 1500, 80px);
}

.red_btn a:hover {
	opacity: 0.8;
}

.red_btn a::before {
	content: "";
	position: absolute;
	margin: auto;
	top: 0;
	bottom: 0;
	left: min(25 * 100vw / 1500, 25px);
	width: min(39 * 100vw / 1500, 39px);
	height: min(40 * 100vw / 1500, 40px);
}

@media (max-width: 768px) {
	.pc_item {
		display: none;
	}

	.sp_item {
		display: block;
	}

	.ml2em {
		margin-left: 0;
	}

	.txt {
		font-size: 4.2666666667vw;
		line-height: 1.59375;
	}

	.mv {
		background-image: url("img/mv-buy-sp.webp?2");
	}

	.mv-title {
		font-size: 5.5vw;
		line-height: 1.5;
		letter-spacing: 0.15em;
		padding-block: 0.7em;
	}

	.mv-title .smaller {
		font-size: 6.6666666667vw;
	}

	/* layout
   **************/
	.anchor_link {
		grid-template-columns: repeat(3, 1fr);
		gap: 0;
		margin-top: 7.0666666667vw;
		padding: 0;
	}

	.anchor_link--item {
		border-left: none;
		border-width: calc(3 * 100vw / 750);
	}

	.anchor_link--item>a {
		display: flex;
		justify-content: center;
		align-items: center;
		padding-top: 0.2666666667vw;
		padding-bottom: 0.2666666667vw;
		padding-left: 0.5333333333vw;
		padding-right: 4vw;
		border-radius: 0;
		box-shadow: none;
		font-size: 3.2vw;
		line-height: 1.4285714286;
	}

	.anchor_link--item>a::after {
		right: 1.3333333333vw;
		width: 2.2973333333vw;
		height: 2.0786666667vw;
	}

	.anchor_link--item:nth-of-type(2n)>a {
		border-left: 0;
	}

	.anchor_link--item:nth-of-type(n + 3)>a {
		border-top: 0;
	}

	.anchor_link--item:last-child {
		border-right: 0;
	}

	/* タイトル用
   **************/
	.section_heading--icon {
		font-size: 7.6vw;
		line-height: 1.5964912281;
	}

	.section_heading--icon::before {
		width: 5.3333333333vw;
		height: 5.3333333333vw;
		margin-right: 2.1333333333vw;
	}

	.section_heading--icon+.txt {
		margin-top: 9.3333333333vw;
	}

	.section_heading--arrow {
		font-size: 4.2666666667vw;
		line-height: 0.7;
	}

	.section_heading--arrow::before {
		width: 4.8vw;
		height: 5.0666666667vw;
		margin-right: 1.0666666667vw;
	}

	.section_heading--arrow+.txt--tight {
		margin-top: 2.1333333333vw;
	}

	.section_heading--arrow+.info-block {
		margin-top: 4.5333333333vw;
	}

	.section_heading--arrow+.tbl_base {
		margin-top: 4.2666666667vw;
	}

	/* オンライン申し込みオリジナル */
	.box-flex {
		flex-direction: column;
		gap: calc(32 * 100vw / 750);
		align-items: flex-start;
	}

	.box-flex+.box-flex {
		margin-top: calc(80 * 100vw / 750);
	}

	.box-flex .step-img {
		width: 100%;
	}

	/* オンライン申し込みオリジナル */
	.section_block .section_heading--icon {
		padding-bottom: calc(40 * 100vw / 750);
	}

	.section_block .section_heading--icon.sec2 {
		padding-bottom: 0;
	}

	.section_block .section_heading--icon+.cont_block {
		padding-top: calc(20 * 100vw / 750);
	}

	.section_block .section_heading--icon+.cont_block>.step_list {
		margin-top: calc(90 * 100vw / 750);
	}

	.content_wrap {
		padding: calc(106 * 100vw / 750) 0 calc(100 * 100vw / 750) 0;
	}

	.box-flex {
		flex-direction: column;
		gap: calc(32 * 100vw / 750);
		align-items: flex-start;
	}

	.box-flex+.box-flex {
		margin-top: calc(80 * 100vw / 750);
	}

	.box-flex .step-img {
		width: 100%;
	}

	.box-flex .txt_wrap {
		padding: calc(20 * 100vw / 750) 0;
	}

	.step_list {
		margin-top: calc(130 * 100vw / 750);
		padding: 0;
	}

	.step_item {
		border-radius: calc(20 * 100vw / 750);
		padding: calc(77 * 100vw / 750) calc(27 * 100vw / 750) calc(30 * 100vw / 750);
		margin-bottom: calc(160 * 100vw / 750);
		position: relative;
	}

	.step_item .icon_step {
		position: absolute;
		width: fit-content;
		top: calc(-40 * 100vw / 750);
		left: 0;
		margin: auto;
		display: flex;
		border-radius: calc(54 * 100vw / 750);
		font-size: calc(48 * 100vw / 750);
		padding: calc(14 * 100vw / 750) calc(44 * 100vw / 750) calc(16 * 100vw / 750);
	}

	.step_item .icon_step.step {
		right: 0;
	}

	.step_item .icon_step.signin {
		right: 0;
	}

	.step_item .icon_step.num {
		background: url("img/icon-step-num-arr.webp?1") no-repeat left center/contain;
		border-radius: 0;
		display: block;
		width: calc(193 * 100vw / 750);
		padding: calc(14 * 100vw / 750) calc(44 * 100vw / 750) calc(16 * 100vw / 750) calc(24 * 100vw / 750);
	}

	.step_item .icon_step.point {
		border: #F2325D solid calc(8 * 100vw / 750);
		padding: calc(6 * 100vw / 750) calc(27 * 100vw / 750) calc(6 * 100vw / 750) calc(120 * 100vw / 750);
		font-size: calc(35 * 100vw / 750);
		top: calc(-20 * 100vw / 750);
		left: calc(-8 * 100vw / 750);
		border-radius: calc(27 * 100vw / 750);
	}

	.step_item .icon_step.point::before {
		content: "";
		position: absolute;
		display: block;
		width: calc(90 * 100vw / 750);
		height: 100%;
		top: 0;
		left: min(-1 * 100vw / 1500, -1px);
		border-radius: calc(20 * 100vw / 750) 0 0 calc(20 * 100vw / 750);
		background: #F2325D;
	}

	.step_item .icon_step.point::after {
		content: "";
		background: url("img/icon-point.webp?1") no-repeat center center/contain;
		position: absolute;
		left: calc(30 * 100vw / 750);
		width: calc(29 * 100vw / 750);
		height: calc(45 * 100vw / 750);
		top: calc(3 * 100vw / 750);
	}

	.step_item .txt_wrap .txt {
		font-size: calc(32 * 100vw / 750);
		line-height: 1.59375;
	}

	.step_item .txt_wrap .txt.note {
		font-size: calc(30 * 100vw / 750);
	}

	.step_item.arr::after {
		width: calc(88 * 100vw / 750);
		height: calc(56 * 100vw / 750);
		bottom: calc(-90 * 100vw / 750);
	}

	.step_item.step3 .box-flex .step-img {
		width: 100%;
	}

	.step_item.num_item {
		margin-bottom: calc(110 * 100vw / 750);
	}

	.step_item.num_item .txt_wrap .ttl {
		font-size: calc(32 * 100vw / 750);
		margin: 0 0 calc(26 * 100vw / 750);
	}

	.step_item.num_item .txt_wrap .txt {
		font-size: calc(32 * 100vw / 750);
		line-height: 1.59375;
	}

	.step_item.num_item .txt_wrap .txt+.txt {
		margin-top: calc(10 * 100vw / 750);
	}

	.step_item.num_item .txt_wrap .detail_list li {
		font-size: min(16 * 100vw / 1500, 16px);
		color: var(--color-primary-dark);
	}

	.step_item.point_item {
		border: #F2325D solid calc(8 * 100vw / 750);
	}

	.red_btn {
		width: calc(600 * 100vw / 750);
		margin: calc(100 * 100vw / 750) auto 0;
	}

	.red_btn a {
		padding: calc(15 * 100vw / 750) calc(20 * 100vw / 750) calc(16 * 100vw / 750);
		border-radius: calc(76 * 100vw / 750);
		font-size: calc(28 * 100vw / 750);
		height: calc(152 * 100vw / 750);
	}

	.red_btn a::before {
		left: calc(25 * 100vw / 750);
		width: calc(39 * 100vw / 750);
		height: calc(40 * 100vw / 750);
	}
}