@charset "utf-8";
/* CSS Document */

/*==========
変数
==========*/
:root {
	--bg_color1: #F7F7F7;
	--bg_color2: #f5ffea;
	--font_color1: #292929;
	--main_color: #D6FF33;
	--sub_color1: #275B00;
	--sub_color2: #FF9233;
	--sub_color3: #275B00;
	--sub_color4: #ffcc06;
	--border_color1: #cfcfcf;
	--footer_color: #F7F7F7;
	--a_color: #0e94ff;
	--a_hover_color: #FF9233;
}


/*==========
共通
==========*/
html {
	font-size: 62.5%;
	scroll-behavior: smooth;
	height: 100%;
}

body {
	font-family: 'Noto Sans JP', "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
	font-size: clamp(1.6rem, 1.7vw, 1.8rem);
	font-weight: 400;
	line-height: 1;
	color: var(--font_color1);
	font-feature-settings: "palt"1;
	-webkit-text-size-adjust: 100%;
	background-color: #f5ffea;
	position: relative;
	margin: 0;
	overflow-wrap: break-word;
	min-height: 100svh;
}

a {
	color: var(--a_color);
	text-decoration: none;
	transition: .3s;
}

a:hover,
a:active {
	transition: .3s;
	color: var(--a_hover_color);
}

body {
	animation: fade .3s;
}

@keyframes fade {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

img {
	max-width: 100%;
	height: auto;
}

section {
	padding: clamp(3rem, 6vw, 6rem) 0;
}

.wrap {
	width: 100%;
	background-color: var(--bg_color2);
}

.container {
	padding: 2rem;
}


@media (min-width: 768px) {

	.wrap,
	.container {
		width: 640px;
		margin-inline: auto;
	}
}

.bg_color {
	background-color: var(--bg_color1);
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.ac {
	text-align: center;
}

.mb2 {
	margin-bottom: 2rem !important;
}


/*==========
MV
==========*/
.mv {}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/*==========
セクション
==========*/
h1 {
	font-size: clamp(2.2rem, 3vw, 2.8rem);
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	margin-top: 4rem;
}

.section_title {
	margin-bottom: 3rem;
	inline-size: fit-content;
	margin-inline: auto;
}

.section_title span {
	font-size: clamp(2.2rem, 2.6vw, 2.8rem);
	font-weight: 700;
	color: var(--sub_color1);
	display: inline-block;
	background: linear-gradient(transparent 70%, var(--main_color) 70%);
	padding: 0 1.5rem 0.5rem;
}

section p {
	line-height: 1.75;
}

section p strong {
	font-size: clamp(1.8rem, 2vw, 2rem);
}


/*==========
キャンペーン概要
==========*/
.summary {
	padding-top: 2rem;
}

.summary h3 {
	text-align: center;
	font-weight: 700;
	font-size: clamp(2rem, 2.4vw, 2.6rem);
	line-height: 1.75;
	margin: 2rem auto 0;
}

.summary h3 span {
	background: linear-gradient(transparent 50%, #ffd9f1 50%);
}

.summary p {
	font-weight: 600;
	font-size: clamp(1.65rem, 1.8vw, 1.8rem);
}


.summary .sub {
	color: #8b8b8b;
	margin-top: 2rem;
	font-weight: 400;
	font-size: clamp(1.5rem, 1.7vw, 1.7rem);
}


/*==========
協賛の流れ
==========*/
.flow .item {
	background: #fff;
	padding: clamp(3rem, 5vw, 5rem);
	line-height: 1.75;
	margin-bottom: 3rem;
}

.flow .item h3 {
	font-size: clamp(2rem, 2.4vw, 2.6rem);
	font-weight: 700;
	border-left: solid 8px var(--main_color);
	padding: 1px 0 1px 8px;
	margin-bottom: 2rem;
}

.flow_list {
	margin-bottom: 6rem;
}

.flow_list .item_arrow {
	margin-bottom: 6rem;
}

.item_arrow {
	--b: 3px;
	width: 100%;
	background: #FFF;
	position: relative;
	border-right: var(--b) solid var(--main_color);
	border-left: var(--b) solid var(--main_color);
	border-bottom: 2px solid var(--main_color);
	margin-bottom: 6rem;
}

.item_arrow::after {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: -34px;
	border-left: calc(50vw - 2rem) solid transparent;
	border-right: calc(50vw - 2rem) solid transparent;
	border-top: 32px solid var(--main_color);
}

.item_arrow .inner {
	padding: 2rem;
	position: relative;
	background: #FFF;
	border-bottom: solid 1px #FFF;
}

.item_arrow .inner::after {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: -33px;
	border-left: calc(50vw - 2rem) solid transparent;
	border-right: calc(50vw - 2rem) solid transparent;
	border-top: 32px solid #FFF;
	z-index: 1;
}

@media (min-width: 768px) {
	.item_arrow::after {
		border-left: calc(320px - 2rem) solid transparent;
		border-right: calc(320px - 2rem) solid transparent;
	}

	.item_arrow .inner::after {
		border-left: calc(320px - 2rem) solid transparent;
		border-right: calc(320px - 2rem) solid transparent;
	}
}

.item_arrow h3 {
	background-color: var(--main_color);
	text-align: center;
	font-size: clamp(1.8rem, 2vw, 2.1rem);
	font-weight: 700;
	padding: 9px 0 12px;
}

.item_arrow .inner {
	padding: 24px;
}

.item_arrow .inner img {
	margin: 0 auto 1rem;
	width: 88px;
	display: block;
}

.item_arrow .inner img.large {
	width: 120px;
}

@media (min-width: 768px) {
	.item_arrow .inner {
		padding: 32px 56px 48px;
	}
}

.flow .item2 {
	border: solid 12px var(--sub_color4);
	background-color: #FFF;
	padding: 3rem 2rem;
}

.flow .item2 h3 {
	text-align: center;
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: 2rem;
}

.flow .item2 h3 span {
	background: linear-gradient(transparent 70%, #fff494 70%);
	padding: 0 1.5rem;
}

.flow .item2 img {
	margin: 0 auto 1rem;
	width: 72px;
	display: block;
}

.flow .item .link {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-bottom: 2rem;
	inline-size: fit-content;
	margin-inline: auto;
}

.flow .item .link svg {
	fill: var(--a_color);
	width: 16px;
	height: 16px;
}

.flow_list .item .flow_arrow {
	position: absolute;
	bottom: -5.5rem;
	left: 50%;
	transform: translateX(-50%);
	width: 48px;
	height: 48px;
	color: var(--sub_color2);
	display: inline-block;
}

.flow_list .item .flow_arrow svg {
	width: 100%;
	height: 100%;
}

.flow_list .item:last-child::after {
	content: none;
}

.flow .item.caution h3 {
	border-left: solid 8px #f50000;
}

.flow .item p {
	margin: 1rem 0;
}

.flow .item ul {
	margin: 1rem 0;
}

ul li {
	position: relative;
	margin: 1.5rem 0;
	padding: 0 1.5rem 1.5rem 2.5rem;
	line-height: 1.75;
}

ul li:not(:last-child) {
	border-bottom: dotted 1px #acacac;
}

ul li::before {
	content: "•";
	position: absolute;
	left: 8px;
	color: var(--sub_color2);
}

.flow .item.caution {
	margin-bottom: 0;
	border: solid 3px #ff8c8c;
}

.flow .item.caution ul li::before {
	color: #f50000;
}

.flow .item .unit {
	width: 100%;
	margin: 2rem 0;
}

.flow .item .unit th,
.flow .item .unit td {
	display: block;
	line-height: 1.5;
	text-align: center;
}

.flow .item .unit th {
	padding: 1rem 0;
	background-color: var(--main_color);
	font-size: clamp(1.6rem, 1.8vw, 1.8rem);
	font-weight: 400;
}

.flow .item .unit td {
	padding: 1rem 0;
	background-color: #f1f1f1ad;
}

.flow .item .unit th span {
	font-weight: 700;
	font-size: clamp(2rem, 2.4vw, 2.8rem);
}

.flow .item .unit td p {
	font-weight: 700;
	font-size: clamp(2rem, 2vw, 2.2rem);
}

.flow .item .unit td p span {
	font-size: clamp(3rem, 3vw, 3.2rem);
	color: #ff9233;
}

.flow .item .unit td .red {
	font-size: clamp(1.5rem, 1.6vw, 1.6rem);
	color: #453737;
	display: block;
}



/*==========
フッター
==========*/
.site_footer {
	background-color: var(--main_color);
	text-align: center;
	padding: 5rem 0 9rem;
}

.site_footer_copyright {
	font-size: clamp(1.25rem, 1.4vw, 1.4rem);
}


/*==========
固定フッター
==========*/
.footer_fixed {
	position: fixed;
	bottom: 0;
	z-index: 99;
	width: 100%;
	padding: 1rem;
}

.footer_fixed a {
	display: grid;
	place-items: center;
	background-color: var(--sub_color2);
	height: 72px;
	max-width: 480px;
	margin: 0 auto;
	border-radius: 50vmax;
	box-shadow: 0 6px 0 #6f4404;
	border: solid 1px var(--sub_color2);
}

.footer_fixed a span {
	font-size: clamp(1.7rem, 1.7vw, 1.9rem);
	font-weight: 700;
	color: #ffffff;
	transform: translateY(-1px)
}

.footer_fixed a:hover,
.footer_fixed a:active {
	transform: translateY(4px);
	box-shadow: 0 2px 0 #6f4404;
}


/*==========
よくある質問
==========*/
.faq {}

.faq_list {}

.faq_list details {
	background: #fff;
	margin-bottom: 16px;
	transition: .2s ease;
}

.faq_list summary {
	cursor: pointer;
	padding: 2rem 3.5rem 2rem 2rem;
	font-weight: 700;
	line-height: 1.75;
	position: relative;
	list-style: none;
}

.faq_list summary::-webkit-details-marker {
	display: none;
}

.faq_list summary::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 12px;
	height: 12px;
	border-right: 2px solid var(--sub_color2);
	border-bottom: 2px solid var(--sub_color2);
	transform: translateY(-50%) rotate(45deg);
	transition: transform .2s ease;
	pointer-events: none;
}

.faq_list details[open]>summary::after {
	transform: translateY(-50%) rotate(-135deg);
}

.faq_list details>div {
	padding: 0 3.5rem 2rem 2rem;
	line-height: 1.75;
}

.faq_list div p.title {
	margin-top: 3rem;
	color: var(--sub_color2);
}

.faq_list div p.title span {
	background-color: var(--sub_color2);
	color: #FFF;
	padding: 0px 8px;
	margin-right: 8px;
	border-radius: 50vmax;
}



/*==========
404ページ
==========*/
.not_found {
	height: 100vh;
	padding-top: 60px;
}

.not_found h1 {
	font-size: 2.4rem;
	font-weight: 700;
	margin-bottom: 2rem;
}

.not_found_body {
	width: 90%;
	margin: 0 auto;
}

.not_found_body p {
	line-height: 1.6;
	margin-bottom: 60px;
}

.section_link {
	display: grid;
	place-items: center;
	background-color: var(--a_color);
	height: 60px;
	max-width: 420px;
	margin: 0 auto;
}

.section_link span {
	color: #FFF;
	font-weight: 700;
}

.site_footer_link {
	margin-bottom: 4rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2rem;
}

.site_footer_link div {
	margin-bottom: 1rem;
}

.site_footer_link div a {
	font-size: 1.35rem;
	color: var(--font_color1);
}
