@charset "utf-8";

/* initialize */
.contents {
	margin-bottom: 0;
	padding-top: 0;
}
.contents__inr { /* stylelint-disable-line */
	width: 100%;
	margin-bottom: 0;
}
#heibai {
	width: 100%;
	margin: 0 auto;
}
#heibai img {
	max-width: 100%;
}

/* common */
#heibai .image-loading {
	background: url(/images/common/loading.gif) no-repeat center center;
	background-size: 25px 25px;
}
#heibai .section-container {
	padding: 50px 0;
}
#heibai .section-container[data-section-color='white'] {
	box-shadow: 0 2px 2px rgb(0 0 0 / 10%);
}
#heibai .section-container[data-section-color='white']:last-child {
	box-shadow: none;
}
#heibai .section-container[data-section-color='gray'] {
	border-top: solid 1px #e8e8e8;
	border-bottom: solid 1px #e8e8e8;
	background: #f4f4f4;
}
#heibai .section-container .section-container {
	padding-top: 35px;
	padding-bottom: 0;
}
#heibai .section-inner {
	max-width: 720px;
	margin: 0 auto;
}
#heibai .title-lv2,
#heibai .title-lv3,
#heibai .title-lv4 {
	font-weight: bold;
	text-align: center;
}
#heibai .title-lv2 {
	margin-bottom: 20px;
	font-size: 26px;
}
#heibai .title-lv3 {
	margin-bottom: 15px;
	font-size: 20px;
}
#heibai .text {
	margin-bottom: 30px;
	font-size: 16px;
	text-align: center;
}
#heibai .text-bold {
	font-weight: bold;
}
#heibai .text-yellow {
	color: #aa9400;
}
#heibai .text-gray {
	color: #888;
}
#heibai .text-red {
	color: #f00;
}
#heibai .label {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: 4px 4px 3px;
	box-sizing: border-box;
	color: #fff;
	font-size: 13px;
	font-weight: bold;
	line-height: 1;
}
#heibai .label[data-label-color='shopping'],
#heibai .button-link[data-button-color='shopping'] {
	background: #333;
}
#heibai .label[data-label-color='store'],
#heibai .button-link[data-button-color='store'] {
	background: #2eb6aa;
}
#heibai .button-link {
	display: inline-block;
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 14px 20px;
	box-sizing: border-box;
	color: #fff;
	font-size: 12px;
	font-weight: bold;
	line-height: 1;
	text-decoration: none;
}
#heibai .button-link::after {
	position: absolute;
	top: calc(50% - 1px);
	right: 14px;
	width: 8px;
	height: 8px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: rotate(45deg) translateY(-50%);
	content: '';
}
#heibai .list-number {
	display: inline-block;
	margin-right: 5px;
}
#heibai .list-type-disc {
	font-size: 14px;
}
#heibai .list-type-disc-item:not(:last-child),
#heibai .list-type-free-item:not(:last-child) {
	margin-bottom: 10px;
}
#heibai .pc-d-n {
	display: none;
}

/* contents */
#heibai .keyvisual-area {
	background: #f8f6ec;
	text-align: center;
}
#heibai .section-container#section-campaign-summary {
	padding-top: 40px;
}
#heibai .campaign-catch {
	margin-bottom: 15px;
	font-size: 20px;
	text-align: center;
}
#heibai .target-list {
	display: flex;
	margin-right: -10px;
	margin-bottom: 35px;
}
#heibai .target-list-item {
	display: flex;
	justify-content: center;
	align-items: center;
	width: calc(100% / 3 - 10px);
	min-height: 98px;
	margin-right: 10px;
	border: solid 1px #ccc;
}
#heibai .target-icon-item {
	width: 62px;
	height: 62px;
}
#heibai .target-icon + .target-text {
	margin-left: 10px;
}
#heibai .target-text {
	font-size: 11px;
	text-align: center;
}
#heibai .target-text-inner {
	display: block;
	margin-bottom: 2px;
}
#heibai .target-text-large {
	font-size: 14px;
}
#heibai .target-text .label {
	margin-right: 5px;
}
#heibai .term-list {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 90px;
	border: solid 1px #ccc;
}
#heibai .term-list-item {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	min-height: 98px;
	text-align: center;
}
#heibai .term-list-item + .term-list-item {
	margin-left: 145px;
}
#heibai .term-list-item + .term-list-item::before {
	position: absolute;
	top: 50%;
	left: -77px;
	width: 27px;
	height: 27px;
	background: url(/src/static/campaign/2509/img/icon-plus.svg) no-repeat center center;
	transform: translateY(-50%);
	content: '';
}
#heibai .term-icon-item-shopping {
	width: 32px;
	height: 49px;
}
#heibai .term-icon-item-store {
	width: 54px;
	height: 45px;
}
#heibai .term-icon + .term-list-item-inner {
	margin-left: 20px;
}
#heibai .term-list .label {
	margin-bottom: 8px;
	padding: 4px 10px 3px;
	font-size: 14px;
}
#heibai .term-text {
	font-size: 16px;
	font-weight: bold;
	text-align: center;
}
#heibai .target-container + .panel-container::before {
	position: absolute;
	top: -58px;
	left: 50%;
	border-style: solid;
	border-top: 28px solid #d8ce98;
	border-right: 39px solid transparent;
	border-bottom: 0;
	border-left: 39px solid transparent;
	transform: translateX(-50%);
	content: '';
}
#heibai .panel-container {
	position: relative;
	margin-bottom: 20px;
}
#heibai .panel-head {
	padding: 8px 8px 7px;
	background: #aa9400;
	color: #fff;
	font-size: 14px;
	font-weight: bold;
	text-align: center;
}
#heibai .panel-body {
	padding: 20px 0;
	background: #f8f6ec;
	text-align: center;
}
#heibai .join-list {
	display: flex;
	margin-bottom: 20px;
}
#heibai .join-list-item {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	width: calc(100% / 2);
	min-height: 190px;
	padding: 10px 0 40px;
	border: solid 1px #ccc;
	box-sizing: border-box;
	text-decoration: none;
	text-align: center;
}
#heibai .join-list-item + .join-list-item {
	margin-left: 20px;
}
#heibai .join-list .label {
	position: absolute;
	top: 0;
	left: 0;
	margin-bottom: 15px;
	padding: 6px 13px 5px;
	font-size: 14px;
}
#heibai .join-list-wrap {
	display: flex;
	align-items: center;
	text-align: left;
}
#heibai .join-text {
	margin-left: 30px;
	font-size: 16px;
	font-weight: bold;
}
#heibai .join-list-wrap .text-yellow {
	font-size: 13px;
}
#heibai .list-container-center {
	margin: 0 auto;
	text-align: center;
}
#heibai .list-container-center ul[class^='list-type'] {
	display: inline-block;
}
#heibai #section-campaign-summary .list-type-asterisk {
	font-size: 12px;
}
#heibai .section-container#section-karte-banner {
	padding-top: 20px;
	padding-bottom: 20px;
}
#heibai .karte-banner-list {
	display: flex;
	flex-wrap: wrap;
	margin-right: -20px;
}
#heibai .karte-banner-list-item {
	width: calc(100% / 2 - 20px);
	margin-right: 20px;
	text-align: center;
}
#heibai .title-lv2-wrap {
	text-align: center;
}
#heibai #section-benefits-program .title-lv2 {
	display: inline-block;
	position: relative;
	margin-bottom: 0;
	color: #aa9400;
	font-size: 20px;
	line-height: 1.5;
}
#heibai #section-benefits-program .title-lv2::before,
#heibai #section-benefits-program .title-lv2::after {
	position: absolute;
	top: 50%;
	width: 46px;
	height: 1px;
	background-color: #333;
	content: '';
}
#heibai #section-benefits-program .title-lv2::before {
	left: -50px;
	margin-right: 10px;
	transform: rotate(60deg);
}
#heibai #section-benefits-program .title-lv2::after {
	right: -50px;
	margin-left: 10px;
	transform: rotate(-60deg);
}
#heibai #section-benefits-program .title-lv3 {
	font-size: 16px;
}
#heibai .section-container#section-benefits-program .section-container {
	padding-top: 20px;
}
#heibai #section-benefits-program .text {
	margin-right: -130px;
	margin-bottom: 40px;
	margin-left: -130px;
	font-size: 15px;
	line-height: 1.6;
}
#heibai #section-benefits-program .text:not(:last-of-type) {
	margin-bottom: 6px;
}
#heibai .benefits-banner {
	margin-top: 20px;
	text-align: center;
}
#heibai .benefits-button {
	margin-top: 40px;
}
#heibai .benefits-button a {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	width: 398px;
	height: 48px;
	margin: 0 auto;
	border: 1px solid #ccc;
	border-radius: 8px;
	background: #fff;
	font-size: 18px;
	text-decoration: none;
}
#heibai .benefits-button a::after {
	position: absolute;
	top: calc(50% - 1px);
	right: 20px;
	width: 6px;
	height: 6px;
	border-top: 2px solid #333;
	border-right: 2px solid #333;
	transform: rotate(45deg) translateY(-50%);
	content: '';
}
#heibai .section-container#section-notes {
	padding-bottom: 0;
	box-shadow: none;
}
#heibai #section-notes .title-lv2,
#heibai #section-contact .title-lv2 {
	margin-bottom: 25px;
	padding-bottom: 10px;
	border-bottom: 1px solid #ddd;
	font-size: 24px;
}
#heibai .section-container#section-contact {
	padding-top: 30px;
}
#heibai #section-contact .text {
	margin-bottom: 10px;
	font-size: 14px;
	text-align: left;
}
