.cc {
	--cc-green: var(--green, #2d6a4f);
	--cc-line: var(--line, #e2ddd2);
	--cc-muted: var(--muted, #7d7a72);
	--cc-white: var(--white, #fff);
	--cc-radius: var(--radius, 14px);
	max-width: 560px;
	margin-inline: auto;
	text-align: left;
}

.cc__notice {
	border-radius: 8px;
	padding: 12px 16px;
	font-size: .875rem;
	margin: 0 0 18px;
	line-height: 1.8;
}
.cc__notice--ok { background: var(--green-soft, #e7efe9); color: var(--cc-green); }
.cc__notice--error { background: #fdecec; color: #8c2f2f; }

.cc__row { margin: 0 0 16px; }
.cc__row label {
	display: block;
	font-size: .8125rem;
	font-weight: 700;
	margin-bottom: 6px;
}
.cc__req {
	display: inline-block;
	font-size: .6875rem;
	font-weight: 400;
	color: #8c2f2f;
	background: #fdecec;
	border-radius: 4px;
	padding: 1px 6px;
	margin-left: 4px;
	vertical-align: middle;
}

.cc__row input,
.cc__row textarea {
	width: 100%;
	font: inherit;
	color: inherit;
	padding: 11px 13px;
	border: 1px solid var(--cc-line);
	border-radius: 8px;
	background: var(--cc-white);
}
.cc__row input:focus-visible,
.cc__row textarea:focus-visible {
	outline: 2px solid var(--cc-green);
	outline-offset: 1px;
	border-color: var(--cc-green);
}

/* ハニーポット。人には見せず、スクリーンリーダーからも外す。 */
.cc__row--trap {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.cc__actions { margin: 0; text-align: center; }
.cc__submit {
	display: inline-block;
	padding: 14px 40px;
	border: 0;
	border-radius: 999px;
	background: var(--cc-green);
	color: #fff;
	font: inherit;
	font-weight: 700;
	letter-spacing: .06em;
	cursor: pointer;
	transition: background .25s;
}
.cc__submit:hover, .cc__submit:focus { background: #245840; }
