@charset "UTF-8";

.l-contents {
	color: #333;
	background-color: #efefef;
	position: relative;
}
.l-contents a {
	text-decoration: none;
}

.l-contents * {
	box-sizing: border-box;
}

@media print and (min-width: 768px), screen and (min-width: 768px) {
    .pc-hide {
        display: none !important;
    }
}
@media print and (max-width: 767px), screen and (max-width: 767px) {
    .sp-hide {
        display: none !important;
    }
}
@media screen and (min-width: 600px) and (max-width: 767px) {
	.mid-hide {
		display: none;
  }
}

/* ==========================
   .p-kv 
========================== */
.p-kv {
	position: relative;
	overflow: hidden;
	background: #fff;
}

@media screen and (min-width: 768px) { /* PCのみ */
	.p-kv__photo {
		position: absolute;
		inset: 0;
		background-image: url("../img/pc/fv_bg.jpg");
		background-repeat: no-repeat;
		background-size: cover;
		background-position: center center;
  }
}

.p-kv__inner {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
	padding-top: min(10px, calc(10 / 1200 * 100vw));
	padding-bottom: min(20px, calc(20 / 1200 * 100vw));
}
@media screen and (max-width: 767px) {
  .p-kv__inner {
	  padding: 0;
  }
}

.p-kv__title {
	width: clamp(97.166%, calc(1166 / 1200 * 100vw), 1166px);
}
@media screen and (max-width: 767px) {
  .p-kv__title {
	  width: 100%;
  }
}

.p-kv__note {
	font-size: min(12.5px, calc(12.5 / 375 * 100vw), 13px);
	-webkit-text-stroke: 2px #fff;
    paint-order: stroke fill;
    filter: drop-shadow(0 0 1px #fff);
	width: fit-content;
	max-width: 96%;
	margin: 15px auto 0;
}
@media screen and (max-width: 767px) {
  .p-kv__note {
	  margin: -1.5em auto 8px;
	  padding-inline: min(16.5px, calc(16 / 375 * 100vw));
  }
}

.p-kv__note a {
	text-decoration: underline;
	text-decoration-color: #333;
	text-underline-offset: 2px;
	color: #333;
}
.p-kv__note a:hover {
	text-decoration: none;
}

/* ==========================
   p-cta
========================== */
.p-cta {
	background-image: linear-gradient(90deg, #a5321d, #7c2236);
	padding: min(16px, calc(16 / 375 * 100vw)) clamp(14.5px, calc(14.5 / 375 * 100vw), 20px);
}
.p-cta__inner {
	width: min(96%, 950px);
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(2, 50%);
	align-items: flex-end;
	justify-content: center;
	gap: clamp(15px, calc(35 / 1200 * 100vw), 35px);
}
@media screen and (max-width: 767px) {
	.p-cta__inner {
		width: 100%;
		grid-template-columns: 1fr;
	}
	.p-cta__link {
		order:2;
	}
	.p-cta__entry {
		order:1;
	}
}


/* CTA button */
.p-cta__button01 {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 456px;
	max-height: 81px;
	margin: 0 auto;
	padding: min(25px, calc(25 / 1200 * 100vw));
	border: 2.75px solid #fff;
	border-radius: 999px;
	background-image: linear-gradient(#000054, #002866 33%, #00499e 68%, #6099cc);
	color: #fff;
	text-decoration: none;
	box-shadow: 3.67px 3.67px 3.67px rgb(0 0 0 / 20%);
	transition: filter 0.2s ease;
}
@media screen and (max-width: 767px) {
  .p-cta__button01 {
	  border: 1.5px solid #fff;
	  padding: calc(9 / 375 * 100vw) calc(14 / 375 * 100vw) calc(11 / 375 * 100vw);
  }
}

.p-cta__button01::before,
.p-cta__button02::before {
	content: "";
	position: absolute;
	top: -50px;
	left: 50%;
	transform: translateX(-50%);
	width: 555px;
	height: 93px;
	background-color: rgb(255,255,255, 20%);
	border-radius: 50%;
}
@media screen and (max-width: 767px) {
	.p-cta__button01::before,
	.p-cta__button02::before {
		top: calc(-37 / 375 * 100vw);
		width: calc(426 / 375 * 100vw);
		height: calc(67 / 375 * 100vw);
	}
}

.p-cta__button01-text {
	font-size: min(calc(21 / 1200 * 100vw), 21px);
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.p-cta__button01-text .text-large {
	color: #ffec00;
	font-size: min(calc(25.65 / 1200 * 100vw), 25.65px);
	margin-right: 0.2em;
}

@media screen and (max-width: 767px) {
	.p-cta__button01-text {
		font-size: clamp(16px, calc(16 / 375 * 100vw), 25px);
		transform: translateX(-0.35em);
	}
	.p-cta__button01-text .text-large {
		font-size: clamp(20px, calc(20 / 375 * 100vw), 25px);
	}
}

.p-cta__arrow {
  position: absolute;
  top: 50%;
  right: min(6%, 40px);
  width: 12px;
  height: 12px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}
@media screen and (max-width: 767px) {
  .p-cta__arrow {
	  width: min(12px, calc(8 / 375 * 100vw));
	  height: min(12px, calc(8 / 375 * 100vw));
  }
}

.p-cta__button01:hover,
.p-cta__button02:hover {
	filter: brightness(1.08);
	color: #fff;
}

.p-cta__button02 {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 456px;
	max-height: 81px;
	margin: 0 auto;
	padding: min(25px, calc(25 / 1200 * 100vw));
	border: 2.75px solid #fff;
	border-radius: 999px;
	background-image: linear-gradient(#ff8200, #ff1400 82%);
	color: #fff;
	text-decoration: none;
	box-shadow: 3.67px 3.67px 3.67px rgb(0 0 0 / 20%);
	transition: filter 0.2s ease;
}
@media screen and (max-width: 767px) {
  .p-cta__button02 {
	  border: 1.5px solid #fff;
	  padding: calc(9 / 375 * 100vw) calc(14 / 375 * 100vw) calc(11 / 375 * 100vw);
  }
}

.p-cta__button02-text {
	font-size: min(calc(21 / 1200 * 100vw), 21px);
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.p-cta__button02-text .text-large {
	font-size: min(calc(28.5 / 1200 * 100vw), 28.5px);
	margin-right: 0.2em;
}
.p-cta__button02-text .text-yellow {
	color: #ffec00;
}

@media screen and (max-width: 767px) {
	.p-cta__button02-text {
		font-size: clamp(19px, calc(19 / 375 * 100vw), 25px);
	}
	.p-cta__button02-text .text-large {
		font-size: clamp(25px, calc(25 / 375 * 100vw), 25px);
	}
}

.p-cta__cta_heading {
	color: #fff;
	width: fit-content;
	max-width: 100%;
	font-size: min(calc(18 / 1200 * 100vw), 18px);
	font-weight: 700;
	text-align: center;
	padding: 0 1.5em;
	margin-inline: auto;
	margin-bottom: min(calc(15 / 1200 * 100vw), 15px);
	position: relative;
}
@media screen and (max-width: 767px) {
	.p-cta__cta_heading {
		font-size: min(15px, calc(15 / 375 * 100vw));
		padding: 0 1em;
	}
}

.p-cta__cta_heading .text-yellow {
	color: #ffec00;
}

.p-cta__cta_heading::before,
.p-cta__cta_heading::after {
  content: "";
  position: absolute;
  top: 55%;
  width: 1px;
  height: 100%;
  background-color: #fff;
}

.p-cta__cta_heading::before {
  left: 12px;
  transform: translateY(-50%) rotate(330deg);
}
.p-cta__cta_heading::after {
  right: 12px;
  transform: translateY(-50%) rotate(30deg);
}
@media screen and (max-width: 767px) {
  .p-cta__cta_heading::before {
	  left: 0.5em;
  }
  .p-cta__cta_heading::after {
	  right: 0.5em;
  }
}

/* ==========================
   p-campaign-overview
========================== */
.p-campaign-overview {
	background-color: #ffeee9;
}

.p-campaign__inner {
	width: 95%;
	max-width: 950px;
	margin: 0 auto;
	padding-top: clamp(45px, calc(45 / 375 * 100vw), 60px);
	padding-bottom: clamp(45px, calc(45 / 375 * 100vw), 70px);
}
@media screen and (max-width: 767px) {
  .p-campaign__inner {
	  width: calc(345 / 375 * 100vw);
	  padding-bottom: min(calc(120 / 375 * 100vw), 140px);
  }
}

.p-campaign__intro {
	position: relative;
	width: min(calc(607 / 950 * 100vw), 607px);
	min-height: 186px;
	margin-bottom: 40px;
	margin-left: min(95px, calc(95 / 1200 * 100vw));
	padding: 35px;
	border-radius: 20px;
	background: #fff;

	display: flex;
	justify-content: center;
	align-items: center;
}
@media screen and (max-width: 767px) {
  .p-campaign__intro {
	  width: min(calc(295 / 375 * 100vw), 84%);
	  min-height: auto;
	  padding: max(calc(20 / 375 * 100vw), 20px) max(calc(15 / 375 * 100vw), 15px);
	  margin-bottom: calc(66 / 375 * 100vw);
	  margin-left: 0;
  }
}

.p-campaign__intro-text {
	font-size: clamp(16px, calc(16 / 375 * 100vw), 26px);
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-campaign__intro-text {
	  letter-spacing: 0;
  }
}

.p-campaign__intro-text .text-red {
	color: #7c2236;
	font-size: clamp(18px, calc(18 / 375 * 100vw), 30px);
}

.p-campaign__intro-illust {
	width: 293px;
	position: absolute;
	right: -135px;
	bottom: -20px;
}
@media screen and (max-width: 767px) {
  .p-campaign__intro-illust {
	  width: calc(174 / 375 * 100vw);
	  right: calc(-65 / 375 * 100vw);
	  bottom: calc(-42 / 375 * 100vw);
  }
}

.p-campaign__present {
	width: 100%;
	max-width: 755px;
	margin: 0 auto;
}

.p-campaign__message {
	position: relative;
	z-index: 1;
	margin: 0 auto clamp(50px, calc(50 / 375 * 100vw), 90px);
}
@media screen and (max-width: 767px) {
  .p-campaign__message {
	  margin-top: calc(10 / 375 * 100vw);
  }
}

.p-campaign__message p {
	font-size: clamp(16px, calc(16 / 375 * 100vw), 26px);
	font-weight: 700;
	line-height: 1.65;
	text-align: center;
	-webkit-text-stroke: 5px #fff;
	paint-order: stroke fill;
	filter: drop-shadow(0 0 1px #fff);
}

.p-campaign__message .text-red {
	color: #7c2236;
	font-size: clamp(18px, calc(18 / 375 * 100vw), 30px);
}

.p-campaign__message:before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 87%;
	max-width: 755px;
	min-height: 222px;
	margin: -5px auto 20px;
	background: linear-gradient(
    to bottom,
    rgba(160, 34, 35, 0),
    rgba(160, 34, 35, 0.4)
	);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	pointer-events: none;
}
@media screen and (max-width: 767px) {
  .p-campaign__message:before {
	  width: 100%;
	  min-height: auto;
	  height: max(calc(120 / 375 * 100vw), 150px);
  }
}

.p-campaign__detail {
	position: relative;
	width: 100%;
	max-width: 755px;
	margin: 0 auto;
}

.p-campaign__detail-box {
	width: max(calc(607 / 950 * 100vw), 607px);
	max-width: 607px;
	min-height: 349px;
	border-radius: 20px;
	background: #fff;
	padding: 35px;
	padding-left: 90px;
	margin-left: auto;
}
@media screen and (max-width: 767px) {
  .p-campaign__detail-box {
	  width: max(calc(302 / 375 * 100vw), 80%);
	  min-height: auto;
	  padding: max(calc(20 / 375 * 100vw), 20px);
	  margin-left: 0;
  }
}

.p-campaign__detail-box p {
	font-size: clamp(16px, calc(16 / 375 * 100vw), 26px);
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0.05em;
	border-radius: 20px;
	background: #fff;
	font-feature-settings: "palt";
}

.p-campaign__detail-box .text-red {
	color: #7c2236;
	font-size: clamp(18px, calc(18 / 375 * 100vw), 30px);
	letter-spacing: 0;
}

.p-campaign__detail-box p + p {
  margin-top: 8px;
}
@media screen and (max-width: 767px) {
	.p-campaign__detail-box p + p {
		margin-top: 4px;
	}
}

@media screen and (min-width: 768px) {
	.p-campaign__detail-illust {
	  	width: 214px;
		position: absolute;
		left: -8px;
		top: 12px;
	}
}
@media screen and (max-width: 767px) {
	.p-campaign__detail-illust {
		position: absolute;
		width: calc(144 / 375 * 100vw);
		right: 0;
		bottom: calc(-70 / 375 * 100vw);
	}
}

/* ==========================
   p-page-navi
========================== */
.p-page-navi {
}

.p-page-navi__inner {
	width: 95%;
	max-width: 950px;
	margin: 0 auto;
	padding: min(calc(60 / 375 * 100vw), 60px);
}
@media screen and (max-width: 767px) {
	.p-page-navi__inner {
		grid-template-columns: 1fr;
		padding: min(calc(60 / 375 * 100vw), 60px) min(calc(25 / 375 * 100vw), 25px);
	}
}

.p-campaign-nav__list {
	border: 1px solid #bcbcbc;
	background-color: #fff;
	border-radius: 8px;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1em 4em;
	padding: 30px 60px;
	padding-right: 30px;
}
@media screen and (max-width: 767px) {
	.p-campaign-nav__list {
		grid-template-columns: 1fr;
		padding: min(calc(30 / 375 * 100vw), 30px) calc(24 / 375 * 100vw);
	}
}

.p-campaign-nav__list a {
	position: relative;
	display: block;
	padding-left: 36px;
	color: #003996;
	font-size: clamp(18px, calc(18 / 375 * 100vw), 20px);
	line-height: 1.44;
	white-space: nowrap;
}
@media screen and (max-width: 767px) {
	.p-campaign-nav__list a {
		white-space: normal;
	}
}


.p-campaign-nav__list a::before {
	position: absolute;
	top: 5px;
	left: 6px;
	width: 10px;
	height: 10px;
	border-right: 2px solid #a5a5a5;
	border-bottom: 2px solid #a5a5a5;
	content: "";
	transform: rotate(45deg);
}

.p-campaign-nav__list a:hover {
  text-decoration: underline;
}


/* ==========================
   p-campaign__heading
========================== */
.p-campaign__heading {
	background-image: linear-gradient(90deg, #a5321d, #7c2236);
	min-height: 180px;
	display: flex;
	align-items: center;
	justify-content: center;
}
@media screen and (max-width: 767px) {
  .p-campaign__heading {
	  min-height: min(calc(140 / 375 * 100vw), 140px);
  }
}

.p-campaign__heading h2 {
  width: 100%;
}

.p-campaign-headding__lv3 {
	background-image: linear-gradient(90deg, #a5321d, #7c2236);
	color: #fff;
	font-size: clamp(18px, calc(18 / 375 * 100vw), 23px);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-align: center;
	padding: 8px 5px 12px;
	width: 98%;
	max-width: 1000px;
	margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .p-campaign-headding__lv3 {
	  width: calc(300 / 375 * 100vw);
  }
}

.p-campaign-headding__lv2 {
	padding: 35px 20px 32px;
	background: #7c2236;
	color: #fff;
	font-size: clamp(24px, calc(24 / 375 * 100vw), 32px);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-align: center;
	border-radius: 15px 15px 0 0;
}
@media screen and (max-width: 767px) {
  .p-campaign-headding__lv2 {
	  padding: min(calc(28 / 375 * 100vw), 28px) 10px min(calc(30 / 375 * 100vw), 30px);
  }
}


/* ==========================
   参加条件 campaign-condition
========================== */
.campaign-condition {
	background-color: #fffcee;
}

.campaign-condition .p-campaign__heading img {
	display: block;
	width: 100%;
	max-width: 596px;
	height: auto;
	margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .campaign-condition .p-campaign__heading img {
	  max-width: min(calc(312 / 375 * 100vw), 312px);
  }
}

.campaign-condition__inner {
	width: 98%;
	max-width: 1000px;
	margin: 0 auto;
	padding: clamp(90px, calc(90 / 375 * 100vw), 95px) 0  clamp(50px, calc(50 / 375 * 100vw), 73px);
}
@media screen and (max-width: 767px) {
  .campaign-condition__inner {
	  width: calc(300 / 375 * 100vw);
  }
}

.campaign-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: min(calc(45 / 1200 * 100vw), 45px);
}
@media screen and (max-width: 767px) {
  .campaign-steps {
	  grid-template-columns: 1fr;
	  gap: calc(88 / 375 * 100vw);
  }
}

.campaign-step {
	position: relative;
	border: 2px solid #7c2236;
	border-radius: 8px;
	background: #f8feff;
	box-shadow: 0 0px 2px rgb(0 0 0 / 15%);
}

.campaign-step:not(:last-child)::after {
	content: "";
	position: absolute;
	z-index: 1;
	width: 0;
	height: 0;
}
@media screen and (min-width: 768px) {
  .campaign-step:not(:last-child)::after {
	  top: 28%;
	  right: max(calc(-36 / 1200 * 100vw), -36px);
	  border-top: min(calc(62 / 1200 * 100vw), 62px) solid transparent;
	  border-bottom: min(calc(62 / 1200 * 100vw), 62px) solid transparent;
	  border-left: min(calc(36 / 1200 * 100vw), 36px) solid #7c2236;
  }
}
@media screen and (max-width: 767px) {
  .campaign-step:not(:last-child)::after {
	  bottom: calc(-36 / 375 * 100vw);
	  left: 50%;
	  border-right: calc(62 / 375 * 100vw) solid transparent;
	  border-left: calc(62 / 375 * 100vw) solid transparent;
	  border-top: calc(36 / 375 * 100vw) solid #7c2236;
	  transform: translateX(-50%);
	}
}

.campaign-step__main {
	border-radius: 6px 6px 0 0;
	background: #fff59c;
	min-height: 204px;
	padding: 5px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.campaign-step__label {
	width: 260px;
	position: absolute;
	top: -35px;
	left: 50%;
	transform: translateX(-50%);
}

.campaign-step__visual {
	width: 261px;
	transform: translateY(15px);
}

.campaign-step__body {
  min-height: 290px;
  padding: min(calc(20 / 1200 * 100vw), 20px);
  font-size: min(calc(18 / 375 * 100vw), 18px);
  font-weight: 400;
  line-height: 1.9;
}
@media screen and (max-width: 767px) {
  .campaign-step__body {
	  min-height: auto;
	  padding: min(calc(20 / 375 * 100vw), 20px);
	}
}

.campaign-step__body strong {
  background: #fff59c;
  color: #7c2236;
  font-weight: 700;
}

.p-cta__button__step {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	max-height: 71px;
	margin-top: 20px;
	padding: min(10px, calc(10 / 1200 * 100vw));
	border: 2.75px solid #fff;
	border-radius: 18px;
	background-image: linear-gradient(#ff8200, #ff1400 82%);
	color: #fff;
	text-decoration: none;
	box-shadow: 4px 4px 4px rgb(0 0 0 / 20%);
	transition: filter 0.2s ease;
}
@media screen and (max-width: 767px) {
  .p-cta__button__step {
	  max-width: min(calc(260 / 375 * 100vw), 260px);
	  margin-inline: auto;
  }
}

.p-cta__button__step::before {
	content: "";
	position: absolute;
	top: -55px;
	left: 50%;
	transform: translateX(-50%);
	width: 320px;
	height: 90px;
	background-color: rgb(255,255,255, 20%);
	border-radius: 50%;
}

.p-cta__button__step-text {
	font-size: 21px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.p-cta__button__step-text .text-large {
	color: #ffec00;
	font-size: 22px;
}

.p-cta__button__step:hover {
	filter: brightness(1.08);
	color: #fff;
}

.p-cta__button__step .p-cta__arrow {
  position: absolute;
  top: 50%;
  right: min(6%, 40px);
  width: 12px;
  height: 12px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

.campaign-condition__bottom {
	padding-bottom: 40px;
}

.campaign-condition__period {
	font-size: min(calc(21 / 1200 * 100vw), 21px);
	letter-spacing: 0.1em;
	text-align: center;
	padding: 1em;
}
.campaign-condition__period .text-red {
	color: #7c2236;
	font-size: min(calc(25 / 1200 * 100vw), 25px);
	font-weight: 700;	
}

@media screen and (max-width: 767px) {
  .campaign-condition__period {
	  font-size: min(calc(16 / 375 * 100vw), 16px);
	  letter-spacing: 0.05em;
  }
  .campaign-condition__period .text-red {
	  font-size: min(calc(20 / 375 * 100vw), 20px);
  }
}

.campaign-condition__p-cta__entry {
	max-width: 704px;
	margin: 20px auto 40px;
}

.campaign-condition__cta_heading {
	color: #333;
	width: fit-content;
	max-width: 100%;
	font-size: min(calc(22 / 1200 * 100vw), 22px);
	font-weight: 700;
	text-align: center;
	padding: 0 1.5em;
	margin-inline: auto;
	margin-bottom: min(calc(15 / 1200 * 100vw), 15px);
	position: relative;
}
@media screen and (max-width: 767px) {
	.campaign-condition__cta_heading {
		font-size: min(15px, calc(15 / 375 * 100vw));
		padding: 0 1em;
	}
}

.campaign-condition__cta_heading .text-orange {
	color: #ff500b;
}

.campaign-condition__cta_heading::before,
.campaign-condition__cta_heading::after {
  content: "";
  position: absolute;
  top: 55%;
  width: 1px;
  height: 100%;
  background-color: #333;
}

.campaign-condition__cta_heading::before {
  left: 12px;
  transform: translateY(-50%) rotate(330deg);
}
.campaign-condition__cta_heading::after {
  right: 12px;
  transform: translateY(-50%) rotate(30deg);
}
@media screen and (max-width: 767px) {
  .campaign-condition__cta_heading::before {
	  left: 0.5em;
  }
  .campaign-condition__cta_heading::after {
	  right: 0.5em;
  }
}

.p-cta__button03 {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 704px;
	max-height: 98px;
	margin: 0 auto;
	padding: min(25px, calc(25 / 1200 * 100vw));
	border: 2.8px solid #fff;
	border-radius: 999px;
	background-image: linear-gradient(#ff8200, #ff1400 82%);
	color: #fff;
	text-decoration: none;
	box-shadow: 3.67px 3.67px 3.67px rgb(0 0 0 / 20%);
	transition: filter 0.2s ease;
}
@media screen and (max-width: 767px) {
  .p-cta__button03 {
	  max-width: calc(310 / 375 * 100vw);
	  border: 1.5px solid #fff;
	  padding: calc(19 / 375 * 100vw) calc(14 / 375 * 100vw) calc(22 / 375 * 100vw);
  }
}

.p-cta__button03::before {
	content: "";
	position: absolute;
	top: -60px;
	left: 50%;
	transform: translateX(-50%);
	width: 866px;
	height: 109px;
	background-color: rgb(255,255,255, 20%);
	border-radius: 50%;
}
@media screen and (max-width: 767px) {
	.p-cta__button03::before {
		top: calc(-37 / 375 * 100vw);
		width: calc(426 / 375 * 100vw);
		height: calc(67 / 375 * 100vw);
	}
}

.p-cta__button03-text {
	font-size: min(calc(32 / 1200 * 100vw), 32px);
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.p-cta__button03-text .text-large {
	font-size: min(calc(38 / 1200 * 100vw), 38px);
	margin-right: 0.2em;
}
.p-cta__button03-text .text-yellow {
	color: #ffec00;
}

@media screen and (max-width: 767px) {
	.p-cta__button03-text {
		font-size: clamp(17px, calc(17 / 375 * 100vw), 25px);
		transform: translateX(-0.35em);
	}
	.p-cta__button03-text .text-large {
		font-size: clamp(23px, calc(23 / 375 * 100vw), 25px);
	}
}

.p-cta__button03:hover {
	filter: brightness(1.08);
	color: #fff;
}

.p-cta__button03 .p-cta__arrow {
  position: absolute;
  top: 50%;
  right: min(6%, 40px);
  width: 16px;
  height: 16px;
  border-top: 2.5px solid #fff;
  border-right: 2.5px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}
@media screen and (max-width: 767px) {
  .p-cta__button03 .p-cta__arrow {
	  border-top: 2px solid #fff;
	  border-right: 2px solid #fff;
	  width: min(16px, calc(10 / 375 * 100vw));
	  height: min(16px, calc(10 / 375 * 100vw));
  }
}

.p-contents__note {
	color: #515151;
	font-size: min(12.5px, calc(12.5 / 375 * 100vw), 13px);
	width: fit-content;
	max-width: 96%;
	margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .p-contents__note {
	  margin: 0 auto 8px;
	  padding-inline: min(16.5px, calc(16 / 375 * 100vw));
  }
}

.p-contents__note a {
	text-decoration: underline;
	color: #003996;
}
.p-contents__note a:hover {
	text-decoration: none;
}

/* ==========================
   対象者 campaign-target
========================== */
.campaign-target {
	background-color: #ffeee9;
}

.campaign-target .p-campaign__heading img {
	display: block;
	width: 100%;
	max-width: 320px;
	height: auto;
	margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .campaign-target .p-campaign__heading img {
	  max-width: min(calc(240 / 375 * 100vw), 240px);
  }
}

.campaign-target__inner {
	width: 98%;
	max-width: 1000px;
	margin: 0 auto;
	padding: clamp(53px, calc(53 / 375 * 100vw), 73px) 0  clamp(67px, calc(67 / 375 * 100vw), 82px);
}
@media screen and (max-width: 767px) {
  .campaign-target__inner {
	  width: calc(300 / 375 * 100vw);
  }
}

.campaign-target__list {
	display: grid;
	gap: 18px;
	margin-bottom: 40px;
}
@media screen and (max-width: 767px) {
  .campaign-target__list {
	  margin-bottom: min(calc(53 / 375 * 100vw), 53px);
  }
}

.campaign-target__item {
	display: grid;
	grid-template-columns: 30px 1fr;
	gap: 16px;
	padding: clamp(20px, calc(20 / 375 * 100vw), 28px) clamp(18px, calc(18 / 375 * 100vw), 20px);
	border: 2px solid #7c2236;
	border-radius: 8px;
	background: #fff7d7;
}
@media screen and (max-width: 767px) {
  .campaign-target__item {
	  grid-template-columns: 20px 1fr;
	  gap: 8px;
  }
}

.campaign-target__check {
	width: 30px;
	height: 30px;
	background: url("../img/common/icon_check.svg") no-repeat center / contain;
	margin-top: 5px;
}
@media screen and (max-width: 767px) {
  .campaign-target__check {
	  width: 20px;
	  height: 20px;
	  margin-top: 8px;
  }
}

.campaign-target__item__text {
	font-size: clamp(21px, calc(21 / 375 * 100vw), 23px);
	font-weight: 700;
}

.campaign-target__item__text .text-red {
	color: #85243a;
}

.campaign-target__item__text .text-normal {
	font-size: clamp(18px, calc(18 / 375 * 100vw), 20px);
	font-weight: 400;
}
@media screen and (max-width: 767px) {
	.campaign-target__item__text .text-normal {
		display: inline-block;
	}
}

.campaign-excluded {
	max-width: 914px;
	margin-left: 1.5em;
}
@media screen and (max-width: 767px) {
	.campaign-excluded {
		margin: 0;
	}
}

.campaign-excluded .p-contents__note {
	width: 100%;
	color: inherit;
	padding: 0;
}

/* p-contents-list__circle */
.p-contents-list__circle {
	display: grid;
	gap: 0.5em;
	padding: 0 10px;
	margin-top: 20px;
	margin-bottom: 20px;
}
@media screen and (max-width: 767px) {
	.p-contents-list__circle {
		padding: 0;
	}
}

.p-contents-list__circle li {
	position: relative;
	padding-left: 1.8em;
	font-size: 16px;
	line-height: 1.8;
}

.p-contents-list__circle li::before {
	content: "";
	position: absolute;
	top: 0.5em;
	left: 5px;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: #333;
}

/* p-contents-list__dotted */
.p-contents-list__dotted {
	max-width: 96%;
    margin: 10px auto 0;
}
@media screen and (max-width: 767px) {
	.p-contents-list__dotted {
		max-width: 100%;
	}
}

.p-contents-list__dotted li {
	position: relative;
	padding-left: 1.8em;
	font-size: 13px;
	line-height: 1.7;
}
.p-contents-list__dotted li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 5px;
	width: 15px;
	height: 15px;
}

/* ==========================
   特典の発送 campaign-shipping
========================== */
.campaign-shipping {
	background-color: #fffcee;
}

.campaign-shipping .p-campaign__heading img {
	display: block;
	width: 100%;
	max-width: 374px;
	height: auto;
	margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .campaign-shipping .p-campaign__heading img {
	  max-width: min(calc(274 / 375 * 100vw), 274px);
  }
}

.campaign-shipping__inner {
	width: 98%;
	max-width: 1000px;
	margin: 0 auto;
	padding: clamp(50px, calc(50 / 375 * 100vw), 70px) 0  clamp(50px, calc(50 / 375 * 100vw), 86px);
}
@media screen and (max-width: 767px) {
  .campaign-shipping__inner {
	  width: calc(300 / 375 * 100vw);
	  padding: min(calc(84 / 375 * 100vw), 82px) 0  min(calc(53 / 375 * 100vw), 53px);
  }
}

.campaign-shipping__text {
	font-size: clamp(22px, calc(22 / 375 * 100vw), 24px);
	width: fit-content;
	margin: 1em auto 0;
}

.campaign-shipping__text:not(:last-child) {
	margin-bottom: 2em;
}

/* ==========================
   注意事項 campaign-notes
========================== */
.campaign-notes {
	width: 96%;
	max-width: 1000px;
	margin: clamp(60px, calc(60 / 375 * 100vw), 108px) auto 0;
	background-color: #fff;
	border-radius: 20px;
	box-shadow: 0 0px 3px rgb(0 0 0 / 15%);
}
@media screen and (max-width: 767px) {
  .campaign-notes {
	  width: calc(345 / 375 * 100vw);
  }
}

.campaign-notes__body {
	padding: 45px 25px;
}
@media screen and (max-width: 767px) {
  .campaign-notes__body {
	  padding: min(calc(40 / 375 * 100vw), 40px) min(calc(20 / 375 * 100vw), 20px);
  }
}

.campaign-notes__body a {
	text-decoration: underline;
	color: #030b70;
}
.campaign-notes__body a:hover {
	text-decoration: none;
}

.p-contents-list__circle--red {
	display: grid;
	gap: 0.5em;
	padding: 0 10px;
	margin-bottom: 20px;
}
@media screen and (max-width: 767px) {
	.p-contents-list__circle--red {
		padding: 0;
	}
}

.p-contents-list__circle--red li {
	position: relative;
	padding-left: 1.8em;
	font-size: 15px;
	line-height: 1.8;
}

.p-contents-list__circle--red li::before {
	content: "";
	position: absolute;
	top: 0.5em;
	left: 5px;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: #7c2236;
}

.campaign-notes__remark {
	font-size: 14px;
	padding: 0 15px;
}
@media screen and (max-width: 767px) {
	.campaign-notes__remark {
		padding: 0 5px;
	}
}

.campaign-notes__remark li + li {
	margin-top: 8px;
}


.campaign-notes__organizer {
	margin-top: 25px;
}
@media screen and (max-width: 767px) {
	.campaign-notes__organizer {
		margin-top: min(calc(35 / 375 * 100vw), 35px);
	}
}

.campaign-notes__subheading {
	color: #7c2236;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.6;
	padding: 0 0.3em 4px;
	margin-bottom: 1em;
	border-bottom: 2px solid #7c2236;
	
}

/* ==========================
   よくある質問 campaign-faq
========================== */
.campaign-faq {
	width: 96%;
	max-width: 1000px;
	margin: clamp(60px, calc(60 / 375 * 100vw), 77px) auto 0;
	background-color: #fff;
	border-radius: 20px;
	box-shadow: 0 0px 3px rgb(0 0 0 / 15%);
}
@media screen and (max-width: 767px) {
  .campaign-faq {
	  width: calc(345 / 375 * 100vw);
  }
}

.campaign-faq__body {
	padding: 45px 25px;
}
@media screen and (max-width: 767px) {
  .campaign-faq__body {
	  padding: min(calc(40 / 375 * 100vw), 40px) min(calc(20 / 375 * 100vw), 20px);
  }
}

/*   c-list-faq
--------------------------------------------- */
.js-acc-target {
    display: none;
}

.c-list-faq {
}

.list-faq__item {
    position: relative;
    background-color: #fff;
    overflow: hidden;
    z-index: 1;
}

.list-faq__item:nth-of-type(n + 2) {
    margin-top: 15px;
}

.list-faq__cont-q {
    position: relative;
    padding: 16px 77px 16px 90px;
    cursor: pointer;
    font-size: 17px;
    font-weight: 700;
	background-color: #ffebe6;
}
@media screen and (max-width: 767px) {
    .list-faq__cont-q {
		padding: 16px 45px;
	}
}

.list-faq__cont-q:after {
    position: absolute;
    content: "";
    width: 25px;
    height: 25px;
    top: 18px;
    right: 25px;
    background: url("../img/common/icon_plus.svg") 0 0 no-repeat;
    background-size: 100% 100%;
}
@media screen and (max-width: 767px) {
    .list-faq__cont-q:after {
		top: 16px;
		right: 16px;
	}
}

.is-acc-open .list-faq__cont-q::after {
    top: 18px;
	right: 25px;
    width: 25px;
    height: 25px;
    background: url("../img/common/icon_minus.svg") 0 0 no-repeat;
    background-size: 100% 100%;
}
@media screen and (max-width: 767px) {
    .is-acc-open .list-faq__cont-q::after {
		top: 16px;
		right: 16px;
	}
}

@media screen and (min-width: 768px) {
    .list-faq__cont-q {
        -webkit-transition: opacity 300ms;
        transition: opacity 300ms;
        will-change: transform;
    }

    .list-faq__cont-q:hover {
        opacity: 0.8;
    }
}

.list-faq__icon-q {
    position: absolute;
    top: 7px;
    left: 30px;
    color: #7c2236;
	font-size: 26px;
}
@media screen and (max-width: 767px) {
    .list-faq__icon-q {
		top: 6px;
		left: 15px;
	}
}

.list-faq__icon-a {
    position: absolute;
    top: 7px;
    left: 33px;
    color: #333;
	font-size: 26px;
	font-weight: 700;
}
@media screen and (max-width: 767px) {
    .list-faq__icon-a {
		top: 6px;
		left: 15px;
	}
}

.list-faq__cont-a {
	position: relative;
    padding: 16px 30px 16px 90px;
    background-color: #f4f4f4;
	line-height: 1.66;
	font-size: 15px;
}
@media screen and (max-width: 767px) {
    .list-faq__cont-a {
		padding: 16px 16px 16px 45px;
	}
}


/* ==========================
   問い合わせ campaign-contact
========================== */
.campaign-contact {
	width: 96%;
	max-width: 1000px;
	margin: clamp(60px, calc(60 / 375 * 100vw), 77px) auto  clamp(55px, calc(55 / 375 * 100vw), 86px);
	background-color: #fff;
	border-radius: 20px;
	box-shadow: 0 0px 3px rgb(0 0 0 / 15%);
}
@media screen and (max-width: 767px) {
  .campaign-contact {
	  width: calc(345 / 375 * 100vw);
  }
}

.campaign-contact__body {
	padding: 25px 25px 45px;
}
@media screen and (max-width: 767px) {
  .campaign-contact__body {
	  padding: min(calc(20 / 375 * 100vw), 20px);
  }
}

.campaign-contact__subheading {
	border: 1px solid #7c2236;
	padding: 13px;
	color: #7c2236;
	font-size: 20px;
	font-weight: 700;
	text-align: center;
	margin-bottom: clamp(23px, calc(23 / 375 * 100vw), 30px);
}
@media screen and (max-width: 767px) {
  .campaign-contact__subheading {
	  padding: min(calc(17 / 375 * 100vw), 17px);
  }
}

.campaign-contact__button {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 400px;
	max-height: 45px;
	margin: 0 auto;
	padding: min(12px, calc(12 / 1000 * 100vw));
	border-radius: 8px;
	background: #dbdbdb;
	text-decoration: none;
	transition: filter 0.2s ease;
}
@media screen and (max-width: 767px) {
  .campaign-contact__button {
	  padding: min(calc(17 / 375 * 100vw), 17px);
  }
}


.campaign-contact__button-text {
	font-size: 17px;
	font-weight: 700;
	text-align: center;
	color: #333;
}

.campaign-contact__button .p-cta__arrow {
  position: absolute;
  top: 50%;
  right: min(6%, 40px);
  width: 10px;
  height: 10px;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
  transform: translateY(-50%) rotate(45deg);
}

.campaign-contact__button:hover {
	filter: brightness(1.08);
	color: #fff;
}

.contact-dial {
	margin-top: clamp(30px, calc(30 / 375 * 100vw), 38px);
	color: #000;
}

.contact-dial__title {
	font-size: 20px;
	font-weight: 700;
	text-align: center;
	margin-bottom: clamp(25px, calc(25 / 375 * 100vw), 30px);
}

.contact-dial__tel {
	text-align: center;
	line-height: 1;
}

.contact-dial__tel a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	font-size: clamp(39px, calc(39 / 375 * 100vw), 48px);
	font-weight: 700;
	color: #000;
	letter-spacing: 0.05em;
	text-decoration: none;
	white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .contact-dial__tel a {
	  gap: 3px;
	  letter-spacing: 0;
  }
}

@media screen and (min-width: 768px) {
  .contact-dial__tel a {
	  pointer-events: none;
  }
}

.contact-dial__icon {
	display: inline-block;
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	background: url("../img/common/icon_tel.svg") no-repeat center / contain;
	transform: translateY(5px);
}
@media screen and (max-width: 767px) {
  .contact-dial__icon {
	  width: 34px;
	  height: 34px;
  }
}

.contact-dial__notes {
	color: #333;
	font-size: 14px;
	line-height: 1.7;
	width: fit-content;
	margin: 30px auto 0;
}


/* floating CTA */
.p-floating__cta {
	background-color: #1e4ea5;
	padding: clamp(13px, calc(13 / 375 * 100vw), 15px) clamp(14.5px, calc(14.5 / 375 * 100vw), 20px);
	box-sizing: border-box;
}

.p-floating__cta a {
	text-decoration: none;
}

@media screen and (min-width: 768px) { /* PCのみ */
	.p-floating__inner {
		display: grid;
		grid-template-columns: 43% 1fr;
		align-items: center;
		gap: min(calc(25 / 1080 * 100vw), 25px);
		max-width: min(calc(1000 / 1080 * 100vw), 1000px);
		width: 100%;
		margin: 0 auto;
	}
	.p-floating__tel * {
		text-align: center;
		color: #fff;
	}
	.p-floating__tel-sub {
		font-size: 16px;
		font-weight: 800;
	}
	.p-floating__telnumber .telnumber {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 10px;
		font-weight: 800;
		letter-spacing: 0.05em;
		font-size: min(calc(46 / 1080 * 100vw), 46px);
		line-height: 1;
	}
	.p-floating__telnumber {
        pointer-events: none;
    }
	.p-floating__tel-icon {
		width: 37px;
	}
	.p-floating__telnumber .cv__btn-main {
		font-size: min(calc(42 / 1080 * 100vw), 42px);
	}
	.p-floating__tel-time {
		font-size: min(calc(13 / 1080 * 100vw), 13px);
		margin-top: 8px;
	}
}

.p-floating__cta_heading {
	color: #ffe150;
	width: fit-content;
	max-width: 100%;
	font-size: min(calc(19 / 1080 * 100vw), 19px);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-align: center;
	padding: 0 1em 0 1.5em;
	margin-inline: auto;
	margin-bottom: clamp(10px, calc(10 / 375 * 100vw), 15px);
	position: relative;
}
@media screen and (max-width: 767px) {
  .p-floating__cta_heading {
	  font-size: clamp(12px, calc(12 / 375 * 100vw), 19px);
  }
}

.p-floating__cta_heading::before,
.p-floating__cta_heading::after {
  content: "";
  position: absolute;
  top: 55%;
  width: 1.5px;
  height: 100%;
  background-color: #ffe150;
}

.p-floating__cta_heading::before {
  left: 12px;
  transform: translateY(-50%) rotate(330deg);
}
.p-floating__cta_heading::after {
  right: 12px;
  transform: translateY(-50%) rotate(30deg);
}
@media screen and (max-width: 767px) {
  .p-floating__cta_heading::before {
	  left: 0.5em;
  }
  .p-floating__cta_heading::after {
	  right: 0.5em;
  }
}

.js-floating {
	width: 100%;
	position: fixed;
	right: 0;
	bottom: 0;
	z-index: 100;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s;
}

.js-floating.is-show {
  opacity: 1;
  visibility: visible;
}

.js-floating.is-stop {
	position: absolute;
	bottom: auto;
}
