/* 共通フォーム要素 */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="number"],
input[type="password"],
textarea,
select {
	width: 100%;
	padding: var(--sp-3) var(--sp-4);
	background: var(--c-bg-card);
	border: 1.5px solid var(--c-border);
	border-radius: var(--r-md);
	font-size: var(--fs-base);
	color: var(--c-fg);
	transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
input:focus,
textarea:focus,
select:focus {
	outline: 0;
	border-color: var(--c-primary);
	box-shadow: 0 0 0 3px var(--c-primary-soft);
}
input::placeholder,
textarea::placeholder {
	color: var(--c-fg-faint);
}

label {
	display: inline-block;
	color: var(--c-fg);
	font-weight: var(--fw-medium);
}

input[type="radio"],
input[type="checkbox"] {
	width: 18px; height: 18px;
	margin-right: var(--sp-2);
	accent-color: var(--c-primary);
	vertical-align: -3px;
}

textarea {
	min-height: 120px;
	resize: vertical;
	line-height: var(--lh-base);
}

/* ラジオ・チェックグループ */
.c-radioGroup,
.c-checkGroup {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}
.c-radioGroup label,
.c-checkGroup label {
	display: flex;
	align-items: center;
	padding: var(--sp-2) var(--sp-3);
	border-radius: var(--r-md);
	cursor: pointer;
	transition: background var(--dur-fast) var(--ease);
}
.c-radioGroup label:hover,
.c-checkGroup label:hover {
	background: var(--c-primary-soft);
}
