@charset "UTF-8";

:root {
	--c-black: #161616;
	--c-white: #fff;
	--c-green-50: #effaf3;
	--c-green-400: #387e55;
	--c-green-500: #1d5032;
	--c-red-400: #ff5741;
	--c-cta: #c00402;
	--c-gray-50: #f1f1f1;
	--c-gray-100: #ececec;
	--c-gray-500: #606060;
	--c-label: #696969;
	--c-arrow: #74af8c;
	--c-prize-bg: #d7ebe0;
	--c-tbd: #d0021b;
	--c-ok: #2e9e5b;
	--c-pending-bg: #fff3f0;
	--c-focus-bg: #f1faf4;

	--ff-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	--ff-en: "Poppins", var(--ff-sans);

	--radius: 16px;
	--inner: 1040px;

	--k: clamp(0px, calc((100vw - 375px) / 1065), 1px);

	--fs-xs: 12px;
	--fs-sm: 14px;
	--fs-base: 16px;
	--fs-md: 18px;
	--fs-lg: 20px;
	--fs-xl: 24px;
	--fs-sec-title: calc(24px + 16 * var(--k));
	--fs-card-title: calc(20px + 8 * var(--k));
	--fs-num: calc(32px + 8 * var(--k));
	--fs-unit: calc(18px + 6 * var(--k));
	--fs-lead-sub: calc(18px + 14 * var(--k));
	--fs-lead-sub-s: calc(14px + 10 * var(--k));
	--fs-lead-title: calc(24px + 16 * var(--k));
	--fs-lead-title-s: calc(18px + 14 * var(--k));
	--fs-lead-num: calc(40px + 40 * var(--k));
	--fs-jcb-lead: calc(16px + 4 * var(--k));
	--fs-contact-title: calc(22px + 2 * var(--k));
	--fs-contact-tel: calc(24px + 8 * var(--k));
}

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

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--c-white);
	color: var(--c-black);
	font-family: var(--ff-sans);
	font-size: var(--fs-base);
	line-height: 1.8;
	font-feature-settings: "palt";
	overflow-x: hidden;
}

img { max-width: 100%; height: auto; vertical-align: bottom; }
picture { display: contents; }
picture source { display: none; }
a { color: var(--c-green-500); }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }

.pc-only { display: none; }
.sp-only { display: inline; }
.nw { display: inline-block; }
@media (min-width: 768px) {
	.pc-only { display: inline; }
	.sp-only { display: none; }
}

.visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.tbd {
	color: var(--c-tbd);
	font-weight: 700;
	background: rgba(208, 2, 27, .06);
	border-radius: 4px;
	padding: 0 4px;
}

.lp-header {
	background: var(--c-white);
	border-bottom: 1px solid var(--c-gray-100);
}
.lp-header__inner {
	display: flex;
	justify-content: center;
	padding: calc(12px + 4 * var(--k)) 40px;
}
.lp-logo {
	display: flex;
	align-items: flex-start;
	gap: calc(10.74px + 3.58 * var(--k));
	color: var(--c-green-500);
	font-weight: 700;
	text-decoration: none;
}
.lp-logo__mark img { display: block; width: calc(41.05px + 13.69 * var(--k)); }
.lp-logo__text img { display: block; width: calc(68.21px + 22.74 * var(--k)); margin-top: calc(8.8px + 2.94 * var(--k)); }

.lp-footer {
	background: var(--c-green-500);
	color: var(--c-white);
	padding: 56px 24px 40px;
}
.lp-footer__inner {
	display: flex;
	flex-direction: column;
	gap: 40px;
	max-width: var(--inner);
	margin: 0 auto;
}
.lp-footer__org { text-align: center; font-size: var(--fs-base); font-weight: 500; line-height: 1.4; letter-spacing: .05em; }
@media (min-width: 768px) {
	.lp-footer { padding: 56px 106px 40px; }
	.lp-footer__inner { align-items: center; gap: 24px; }
}
.page-lp .lp-footer { padding-bottom: 120px; }
@media (min-width: 768px) {
	.page-lp .lp-footer { padding-bottom: 40px; }
}

.cta { display: flex; justify-content: center; }
.cta__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 16px;
	border: 0;
	border-radius: 50px;
	background: var(--c-cta);
	color: var(--c-white);
	font-family: inherit;
	font-size: var(--fs-md);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .05em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: opacity .15s;
}
.cta__btn:hover { opacity: .85; }
.cta__btn:focus-visible { outline: 3px solid var(--c-green-400); outline-offset: 3px; }
.cta__spacer,
.cta__icon { flex: none; width: 40px; height: 40px; }
@media (min-width: 768px) {
	.cta__btn { width: auto; }
	.cta__spacer,
	.cta__icon { width: 32px; height: 32px; }
}
.cta__btn.is-disabled {
	background: #b9b9b9;
	cursor: default;
	padding: 20px 32px;
}
.cta__btn.is-disabled:hover { opacity: 1; }

.sticky-cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 50;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, .95);
	box-shadow: 0 -4px 16px rgba(0, 0, 0, .1);
	transform: translateY(110%);
	visibility: hidden;
	transition: transform .25s, visibility .25s;
}
.sticky-cta.is-visible { transform: none; visibility: visible; }
.sticky-cta .cta__btn { padding-top: 14px; padding-bottom: 14px; }
@media (min-width: 768px) {
	.sticky-cta { display: none; }
}

.sec { padding: 80px 24px; }
.sec__inner { max-width: var(--inner); margin: 0 auto; }
.sec > .sec__inner > * + * { margin-top: 48px; }
.sec--green { background: var(--c-green-50); }
@media (min-width: 768px) {
	.sec { padding: 112px 24px; }
}

.sec-title { text-align: center; }
.sec-title__label {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--c-label);
	font-family: var(--ff-en);
	font-size: var(--fs-sm);
	font-weight: 500;
	line-height: 1;
	letter-spacing: .05em;
}
.sec-title__label img { width: 24px; height: auto; }
.sec-title__main {
	margin-top: 8px;
	color: var(--c-black);
	font-size: var(--fs-sec-title);
	font-weight: 500;
	line-height: 1.4;
}
@media (min-width: 768px) {
	.sec-title__label { gap: 6px; }
	.sec-title__label img { width: 32px; }
	.sec-title__main { margin-top: 0; }
}

.box {
	border: 1px solid var(--c-green-400);
	border-radius: var(--radius);
	background: var(--c-white);
}

.fv { position: relative; }
.fv img { display: block; width: 100%; }
.fv__cta {
	position: absolute;
	left: 6.40%;
	top: 85.21%;
	width: 87.07%;
	height: 11.64%;
	border-radius: 999px;
}
.fv__cta:focus-visible { outline: 3px solid var(--c-green-400); outline-offset: 3px; }
@media (min-width: 768px) {
	.fv__cta { left: 30.49%; top: 88.40%; width: 38.99%; height: 8.27%; }
}
.fv__cta.is-disabled {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #b9b9b9;
	color: var(--c-white);
	font-size: var(--fs-md);
	font-weight: 600;
}

.sec--prize {
	padding-top: 64px;
	background: var(--c-prize-bg) url("../img/bg_pattern.png") repeat 0 0 / 30px 30px;
}
@media (min-width: 768px) {
	.sec--prize { padding-top: 112px; }
}

.lead { position: relative; text-align: center; }
.lead__sub {
	position: relative;
	display: inline-block;
	padding: 4px 18px;
	color: var(--c-green-500);
	font-size: var(--fs-lead-sub);
	font-weight: 600;
	line-height: 1;
	letter-spacing: 2px;
}
.lead__sub .s { font-size: var(--fs-lead-sub-s); letter-spacing: .05em; }
.lead__sub::before,
.lead__sub::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 2px;
	height: calc(16px + 16 * var(--k));
	background: url("../img/lead_line_l.svg") no-repeat center / 100% 100%;
}
.lead__sub::before { left: 0; transform: translateY(-50%) rotate(-30deg); }
.lead__sub::after { right: 0; transform: translateY(-50%) rotate(30deg); background-image: url("../img/lead_line_r.svg"); }
.lead__title {
	color: var(--c-green-500);
	font-size: var(--fs-lead-title);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 2px;
	text-shadow: 0 0 15px rgba(255, 255, 255, .6);
}
.lead__title .s { font-size: var(--fs-lead-title-s); }
.lead__title em { font-style: normal; color: var(--c-red-400); }
.lead__title .num { font-size: var(--fs-lead-num); }
.lead__text { margin-top: 24px; font-weight: 500; text-align: left; }
@media (min-width: 768px) {
	.lead__text { text-align: center; }
}

.lead__illust {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 32px;
	margin-top: 24px;
}
.illust { position: relative; flex: none; }
.illust img { position: absolute; display: block; max-width: none; }
.illust--house { width: 140px; height: 168px; }
.illust--house .house-main { left: 0; top: 0; width: 110.13px; }
.illust--house .house-ground { left: 62.22px; top: 110.13px; width: 77.78px; }
.illust--family { width: 122px; height: 162px; }
.illust--family .balloon { left: 0; top: 0; width: 61.5px; transform: scaleX(-1); }
.illust--family .balloon-a { left: 41.73px; top: 6.3px; width: 11.41px; transform: scaleX(-1); }
.illust--family .balloon-b { left: 15.31px; top: 15.95px; width: 11.42px; transform: scaleX(-1); }
.illust--family .person-1 { left: 11.5px; top: 56.77px; width: 35.48px; }
.illust--family .person-2 { left: 67.14px; top: 41.28px; width: 54.87px; }
.illust--family .person-3 { left: 39.52px; top: 90.91px; width: 35.1px; }
@media (min-width: 1200px) {
	.lead { width: 721px; margin: 0 auto; }
	.lead__title { margin: 0 -40px; white-space: nowrap; }
	.lead__illust { display: block; margin: 0; }
	.illust--house { position: absolute; left: -249px; top: -13px; transform: scale(1.607); transform-origin: 0 0; }
	.illust--family { position: absolute; left: 745px; top: -28px; transform: scale(1.7787); transform-origin: 0 0; }
}

.prize-cards { display: grid; gap: 48px; margin-top: 64px; }
@media (min-width: 768px) {
	.prize-cards { grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 72px; }
}
.prize-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	padding: 24px 0;
}
.prize-card > :not(.prize-card__photos):not(.prize-card__flag) { padding: 0 24px; }
@media (min-width: 768px) {
	.prize-card { padding: 24px; }
	.prize-card > :not(.prize-card__photos):not(.prize-card__flag) { padding: 0; }
}
.prize-card__flag {
	position: absolute;
	left: 32px;
	top: calc(-32px - 7 * var(--k));
	width: calc(186px + 56 * var(--k));
}
.prize-card__head { text-align: center; }
.prize-card__head img { display: block; width: 48px; height: 48px; margin: 0 auto; object-fit: contain; }
.prize-card__name {
	color: var(--c-green-400);
	font-size: var(--fs-card-title);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .05em;
}
.prize-card__photos {
	display: grid;
	grid-template-columns: 1fr 1fr;
	width: 100%;
}
.prize-card__photos figure { position: relative; aspect-ratio: 229 / 152; overflow: hidden; }
.prize-card__photos img { display: block; width: 100%; height: 100%; object-fit: cover; }
.prize-card__photos img.pos-bottom { object-position: center bottom; }
.prize-card__photos figcaption {
	position: absolute;
	right: 6px;
	bottom: 6px;
	color: var(--c-white);
	font-size: var(--fs-xs);
	font-weight: 500;
	line-height: 1;
	text-shadow: 0 0 10px rgba(0, 0, 0, .9), 0 0 20px rgba(0, 0, 0, .6);
}

.prize-list {
	display: grid;
	grid-template-columns: max-content minmax(48px, 1fr) max-content;
	align-items: end;
	gap: calc(6px - 2 * var(--k)) 0;
	width: 100%;
	max-width: 320px;
	color: var(--c-red-400);
	font-weight: 600;
	line-height: 1;
}
.prize-list li { display: contents; }
.prize-list__amount { justify-self: end; }
.prize-list__dots {
	height: 4px;
	margin: 0 4px 4px;
	background: radial-gradient(circle, var(--c-red-400) 1.2px, transparent 1.6px) repeat-x 0 50% / 6px 4px;
}
.prize-list .num { font-family: var(--ff-en); font-size: var(--fs-num); letter-spacing: .05em; }
.prize-list .unit { font-size: var(--fs-unit); letter-spacing: .05em; }
.prize-card__notes { display: grid; gap: 8px; max-width: 400px; line-height: 1.4; }
.prize-card__notes .note { display: flex; font-size: var(--fs-xs); }
.prize-card__more { padding-top: 0; }
.prize-card__link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	width: 100%;
	padding: 8px 12px;
	border: 1px solid var(--c-black);
	border-radius: 50px;
	color: var(--c-black);
	font-size: var(--fs-sm);
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}
.prize-card__link::before { content: ""; width: 16px; }
.prize-card__link img { width: 16px; height: 16px; }
.prize-card__link:hover { background: var(--c-gray-50); }
@media (min-width: 768px) {
	.prize-card__more { margin-top: auto; padding-top: 16px; }
	.prize-card__link { width: auto; font-size: var(--fs-base); }
	.prize-card__link::before { width: 24px; }
	.prize-card__link img { width: 24px; height: 24px; }
}

.prize-extra {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	margin-top: 16px;
	padding: 24px;
	text-align: center;
	font-weight: 600;
}
.prize-extra__lead { font-size: var(--fs-jcb-lead); line-height: 1.4; }
.prize-extra__name { margin-top: 8px; color: var(--c-green-400); font-size: var(--fs-card-title); line-height: 1; }
.prize-extra__name .num { font-size: var(--fs-num); }
.prize-extra__image { width: 190px; }
.prize-extra__winners { align-self: flex-end; color: var(--c-red-400); line-height: 1; }
.prize-extra__winners .num { font-family: var(--ff-en); font-size: var(--fs-num); }
.prize-extra__winners .unit { font-size: var(--fs-unit); }
@media (min-width: 768px) {
	.prize-extra { flex-direction: row; justify-content: center; gap: 48px; }
	.prize-extra__image { order: -1; }
	.prize-extra__row { display: flex; align-items: flex-end; gap: 32px; margin-top: 24px; }
	.prize-extra__name { margin-top: 0; }
	.prize-extra__winners { align-self: auto; }
}
.sec--prize .cta { margin-top: 40px; }

.steps { display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
.step {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	padding: 24px;
}
.step__num {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: var(--c-green-400);
	color: var(--c-white);
	font-family: var(--ff-en);
	font-weight: 600;
	font-size: var(--fs-base);
	line-height: 1;
}
.step__num span { font-size: var(--fs-xl); }
.step__title { color: var(--c-green-400); font-size: var(--fs-xl); font-weight: 600; line-height: 1.4; }
.step__icon { width: 95px; height: 95px; object-fit: contain; }
.step__text { font-weight: 500; }
.steps__arrow {
	align-self: center;
	width: 28px;
	height: 24px;
	background: url("../img/arrow_step_sp.svg") no-repeat center / contain;
	transform: rotate(180deg);
}
@media (min-width: 768px) {
	.steps { flex-direction: row; }
	.step { flex: 1 1 0; }
	.steps__arrow { background-image: url("../img/arrow_step_pc.svg"); transform: rotate(90deg); }
}

.faq { display: grid; gap: 16px; }
.faq__item { border-radius: 8px; }
.faq__q,
.faq__a {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	letter-spacing: .05em;
}
.faq__q {
	align-items: center;
	padding: 16px;
	font-weight: 500;
	cursor: pointer;
	list-style: none;
}
.faq__q::-webkit-details-marker { display: none; }
.faq__q .mark,
.faq__a .mark {
	flex: none;
	color: var(--c-green-400);
	font-family: var(--ff-en);
	font-size: var(--fs-xl);
	font-weight: 600;
	line-height: 1;
}
.faq__q .text { flex: 1; }
.faq__icon { flex: none; width: 32px; height: 32px; }
.faq__icon .is-open,
.faq__item[open] .faq__icon .is-closed { display: none; }
.faq__item[open] .faq__icon .is-open { display: block; }
.faq__a { padding: 0 16px 16px; }
@media (min-width: 768px) {
	.faq__item { border-radius: 12px; }
	.faq__q { gap: 16px; padding: 24px 40px; }
	.faq__a { gap: 16px; padding: 16px 40px 40px; }
}

.terms { padding: 32px 16px; }
.terms__scroll {
	height: 398px;
	overflow-y: auto;
	padding-right: 8px;
	scrollbar-color: var(--c-gray-500) var(--c-gray-50);
}
.terms__scroll::-webkit-scrollbar { width: 14px; }
.terms__scroll::-webkit-scrollbar-track { border-radius: 50px; background: var(--c-gray-50); }
.terms__scroll::-webkit-scrollbar-thumb { border-radius: 50px; background: var(--c-gray-500); }
.terms__scroll:focus-visible { outline: 2px solid var(--c-green-400); outline-offset: 4px; }
.terms__list { display: grid; gap: 24px; padding-right: 8px; }
.terms__list dt {
	color: var(--c-green-500);
	font-size: var(--fs-md);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: .05em;
}
.terms__list dd { margin-top: 8px; letter-spacing: .05em; }
.terms__list dd > * + * { margin-top: 4px; }
.terms__list dd > .terms__sub:not(:first-child) { margin-top: 16px; }
.terms__sub,
.terms__strong,
.terms__ul strong { font-weight: 700; }
.terms__ul li { position: relative; padding-left: 1em; }
.terms__ul li::before { content: "・"; position: absolute; left: 0; }
.terms__note { padding-left: 1em; text-indent: -1em; }
@media (min-width: 768px) {
	.terms { padding: 40px 24px 40px 40px; }
	.terms__scroll { padding-right: 24px; }
	.terms__list { gap: 40px; padding-right: 16px; }
}

.contact {
	margin-top: 24px;
	padding: 32px 16px;
	text-align: center;
}
.contact__inner { display: grid; gap: 16px; max-width: 400px; margin: 0 auto; }
.contact__title { color: var(--c-green-500); font-size: var(--fs-contact-title); font-weight: 500; line-height: 1.4; letter-spacing: .1em; }
.contact__tel { color: var(--c-green-500); font-family: var(--ff-en); font-size: var(--fs-contact-tel); font-weight: 500; line-height: 1; }
.contact__tel a { color: inherit; text-decoration: none; }
.contact__hours { margin-top: 8px; }
.contact__note { font-size: var(--fs-xs); text-align: left; letter-spacing: .05em; }
@media (min-width: 768px) {
	.contact { margin-top: 48px; padding: 40px; }
}

.about { padding: 32px 16px; letter-spacing: .05em; }
@media (min-width: 768px) {
	.about { padding: 56px 40px; text-align: center; }
}
.about__logo { display: flex; justify-content: center; margin-bottom: 24px; }
.about__logo .lp-logo__mark img { width: 55px; }
.about__logo .lp-logo__text img { width: 91px; margin-top: 12px; }
.about__photos { display: grid; grid-template-columns: 1fr 1fr; margin-top: 24px; }
.about__photos img { display: block; width: 100%; height: auto; }
.about__photos .is-main { grid-column: 1 / -1; }
@media (min-width: 768px) {
	.about__photos { grid-template-columns: minmax(0, 10fr) minmax(0, 10.5fr) minmax(0, 10.5fr); margin-top: 32px; }
	.about__photos .is-main { grid-column: auto; }
}

.company { padding: 32px 16px; font-size: var(--fs-sm); letter-spacing: .05em; }
.company__table { max-width: 800px; margin: 0 auto; border-top: 1px solid var(--c-green-400); }
.company__row { padding: 16px 4px; border-bottom: 1px solid var(--c-gray-100); }
.company__row:last-child { border-bottom-color: var(--c-green-400); }
.company__row dt { color: var(--c-green-500); font-weight: 500; }
.company__row dd { margin-top: 4px; }
.company__license { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--c-gray-100); font-size: var(--fs-xs); }
.company__group { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 32px; }
.company__group img { width: 50px; }
.company__group p { font-size: var(--fs-xs); line-height: 1.4; }
@media (min-width: 768px) {
	.company { padding: 56px 40px; font-size: var(--fs-base); }
	.company__row { display: flex; gap: 24px; padding: 24px 16px; }
	.company__row dt { flex-shrink: 0; width: 160px; }
	.company__row dd { flex: 1; margin-top: 0; }
	.company__license { font-size: var(--fs-sm); }
	.company__group { gap: 28px; margin-top: 40px; }
	.company__group img { width: 66px; }
	.company__group p { font-size: var(--fs-sm); }
}

.page-form { background: var(--c-green-50); }
.form-page { padding: 40px 16px 64px; }
.form-page .sec__inner { max-width: 800px; }
.form-page__title { text-align: center; color: var(--c-green-500); font-size: var(--fs-sec-title); font-weight: 600; line-height: 1.4; }
.form-page__lead { margin-top: 24px; text-align: center; font-weight: 700; }

.form-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 24px;
	font-size: var(--fs-sm);
	font-weight: 700;
	text-align: center;
	line-height: 1.4;
}
.form-steps li {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 6px 4px;
	background: var(--c-gray-100);
	color: var(--c-label);
}
.form-steps li:first-child { border-radius: 8px 0 0 8px; }
.form-steps li:last-child { border-radius: 0 8px 8px 0; }
.form-steps li.is-active { background: var(--c-green-400); color: var(--c-white); }

.form-alert {
	margin-top: 24px;
	padding: 16px 20px;
	border: 2px solid var(--c-tbd);
	border-radius: var(--radius);
	background: var(--c-white);
	color: var(--c-tbd);
}
.form-alert__title { font-weight: 900; }
.form-alert__body span { display: block; font-size: var(--fs-sm); }
.form-alert__body span::before { content: "・"; }

.entry-form { margin-top: 24px; }
.form-block {
	margin: 0 0 24px;
	padding: 24px 16px;
	border: 1px solid var(--c-green-400);
	border-radius: var(--radius);
	background: var(--c-white);
}
@media (min-width: 768px) {
	.form-block { padding: 32px 40px; }
}
.form-block__title {
	float: left;
	width: 100%;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--c-green-400);
	color: var(--c-green-500);
	font-size: var(--fs-lg);
	font-weight: 700;
}
.form-block__title + * { clear: both; }
.form-block__title span {
	display: inline-block;
	margin-right: 10px;
	padding: 0 10px;
	border-radius: 4px;
	background: var(--c-green-400);
	color: var(--c-white);
	font-family: var(--ff-en);
	font-size: var(--fs-xs);
	vertical-align: middle;
}

.form-row { padding: 14px 0; border-bottom: 1px solid var(--c-gray-100); }
.form-row:last-child { border-bottom: 0; }
.form-row__label { display: block; margin-bottom: 8px; color: var(--c-green-500); font-weight: 700; }
.req,
.opt {
	display: inline-block;
	margin-left: 8px;
	padding: 0 6px;
	border-radius: 3px;
	font-size: var(--fs-xs);
	line-height: 1.8;
	vertical-align: middle;
}
.req { background: var(--c-cta); color: var(--c-white); }
.opt { background: #ddd; color: #555; }
.form-row__note { margin-top: 4px; font-size: var(--fs-xs); color: var(--c-label); }

.entry-form input[type="text"],
.entry-form input[type="tel"],
.entry-form input[type="email"] {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #c9c9c9;
	border-radius: 8px;
	background: var(--c-white);
	font: inherit;
	font-size: var(--fs-base);
}
.entry-form input:focus { outline: 2px solid var(--c-green-400); outline-offset: 1px; border-color: transparent; }
#f-郵便番号 { width: 12em; }
.zip-btn {
	margin-left: 8px;
	padding: 10px 14px;
	border: 1px solid var(--c-green-500);
	border-radius: 8px;
	background: var(--c-white);
	color: var(--c-green-500);
	font: inherit;
	font-size: var(--fs-sm);
	font-weight: 700;
	cursor: pointer;
}

.choices { display: flex; flex-wrap: wrap; gap: 8px; }
.choices label {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	border: 1px solid #c9c9c9;
	border-radius: 8px;
	cursor: pointer;
	font-size: var(--fs-base);
	line-height: 1.4;
}
.choices label:has(input:checked) { border-color: var(--c-green-400); background: var(--c-green-50); }
.choices input { width: 18px; height: 18px; margin: 0; accent-color: var(--c-green-400); }

.form-agree {
	padding: 24px 16px;
	border: 1px solid var(--c-green-400);
	border-radius: var(--radius);
	background: var(--c-white);
	font-size: var(--fs-sm);
}
.form-agree__title { color: var(--c-green-500); font-size: var(--fs-base); font-weight: 700; }
.form-agree p { margin-top: 8px; }
.form-agree__check { text-align: center; font-size: var(--fs-base); font-weight: 700; }
.form-agree__check label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.form-agree__check input { width: 20px; height: 20px; accent-color: var(--c-green-400); }

.form-submit { margin-top: 32px; text-align: center; }
.form-submit .cta__btn { max-width: 480px; }
.form-submit--confirm { display: flex; flex-direction: column; align-items: center; gap: 20px; }
.form-submit__back,
.form-back a { color: var(--c-label); font-size: var(--fs-sm); }
.form-back { margin-top: 32px; text-align: center; }

.confirm-list > div { display: grid; gap: 2px; padding: 12px 0; border-bottom: 1px solid var(--c-gray-100); }
.confirm-list > div:last-child { border-bottom: 0; }
.confirm-list dt { color: var(--c-green-500); font-size: var(--fs-sm); font-weight: 700; }
.confirm-list dd { word-break: break-all; }
.confirm-list .empty { color: var(--c-label); }
@media (min-width: 768px) {
	.confirm-list > div { grid-template-columns: 220px 1fr; gap: 16px; }
}

.entry-form .is-pending input[type="text"],
.entry-form .is-pending input[type="tel"],
.entry-form .is-pending input[type="email"],
.is-pending .choices label,
.form-agree__check.is-pending label { background: var(--c-pending-bg); }
.entry-form .form-row input[type]:focus { background: var(--c-focus-bg); }
.entry-form .is-invalid input[type="text"],
.entry-form .is-invalid input[type="tel"],
.entry-form .is-invalid input[type="email"] { border-color: var(--c-tbd); }
.form-agree__check label { padding: 8px 14px; border-radius: 8px; }

.form-row__error {
	display: none;
	margin-top: 6px;
	color: var(--c-tbd);
	font-size: var(--fs-sm);
	font-weight: 700;
	line-height: 1.5;
}
.is-invalid .form-row__error { display: block; }

.form-row.is-valid .form-row__label::after {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	margin-left: 8px;
	vertical-align: middle;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%232e9e5b'/%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
}

.cta__btn.is-blocked,
.cta__btn.is-blocked:hover {
	background: #b9b9b9;
	opacity: 1;
	cursor: not-allowed;
}

.form-remaining {
	margin-bottom: 12px;
	color: var(--c-cta);
	font-weight: 700;
}
.form-remaining strong { margin: 0 4px; font-size: var(--fs-xl); }
.form-remaining.is-complete { color: var(--c-ok); }

.thanks {
	margin-top: 24px;
	padding: 32px 20px;
	border: 1px solid var(--c-green-400);
	border-radius: var(--radius);
	background: var(--c-white);
	text-align: center;
}
.thanks__title { color: var(--c-green-500); font-size: var(--fs-card-title); font-weight: 600; line-height: 1.5; }
.thanks__text { margin-top: 16px; }
.thanks__note { margin-top: 12px; font-size: var(--fs-sm); color: var(--c-label); }

.visit {
	margin-top: 40px;
	padding: 32px 20px;
	border: 2px solid var(--c-green-500);
	border-radius: var(--radius);
	background: var(--c-white);
}
.visit__title { text-align: center; color: var(--c-green-500); font-size: var(--fs-card-title); font-weight: 600; line-height: 1.5; }
.visit__text { margin-top: 16px; }
.visit__banner { margin-top: 24px; }
.visit__banner img { display: block; width: 100%; height: auto; }
.visit__caution { margin-top: 16px; font-size: var(--fs-sm); color: var(--c-label); }
.visit .cta { margin-top: 24px; }
.visit .cta { flex-wrap: wrap; gap: 8px; }
