/*
 * forms.css — formularze i Contact Form 7
 *
 * Część arkuszy theme'u rozbitych per feature. Kolejność ładowania i lista
 * plików: functions.php → oliwa_enqueue_assets(). Wszystkie wartości pochodzą
 * z assets/css/tokens.css.
 */

/* -------------------------------------------------------------------------
   Formularze i Contact Form 7

   wpcf7_autop_or_not jest wyłączone w functions.php, więc layout formularza
   pochodzi stąd, nie z autoformatowania wtyczki.
   ---------------------------------------------------------------------- */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="number"],
input[type="search"],
input[type="date"],
select,
textarea {
	background: var(--wp--preset--color--surface-card);
	border: 1px solid var(--hairline);
	border-radius: var(--radius-control);
	/* Theme nie ma globalnego resetu box-sizing, a kontrolki dostają width:100%
	   razem z paddingiem — bez tego wiersza input jest szerszy od swojego
	   kontenera o sumę paddingu i wychodzi poza kartę. */
	box-sizing: border-box;
	color: var(--wp--preset--color--contrast);
	font-family: var(--font-body);
	font-size: var(--text-base);
	padding: var(--pad-control-md);
	width: 100%;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	border-color: var(--wp--preset--color--accent);
	box-shadow: var(--focus-ring-shadow);
	outline: none;
}

textarea {
	min-height: 140px;
	resize: vertical;
}

.wpcf7 form {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
}

.wpcf7 form p {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	margin: 0;
}

.wpcf7 form label {
	color: var(--wp--preset--color--primary);
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 600;
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
}

.wpcf7-form-control-wrap {
	display: block;
}

.wpcf7 .wpcf7-submit {
	align-self: flex-start;
	background-color: var(--wp--preset--color--primary);
	border: 0;
	border-radius: var(--radius-control);
	color: var(--wp--preset--color--base-alt);
	cursor: pointer;
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 600;
	letter-spacing: var(--tracking-wider);
	padding: var(--pad-control-lg);
	text-transform: uppercase;
	transition: background-color var(--duration-base) var(--easing-standard),
		transform var(--duration-fast) var(--easing-standard);
	width: auto;
}

.wpcf7 .wpcf7-submit:hover {
	background-color: var(--wp--preset--color--primary-light);
}

.wpcf7 .wpcf7-submit:active {
	transform: scale(0.985);
}

.wpcf7 .wpcf7-not-valid {
	border-color: var(--wp--preset--color--sale);
}

.wpcf7-not-valid-tip {
	color: var(--wp--preset--color--sale);
	font-size: var(--text-sm);
	text-transform: none;
}

.wpcf7 .wpcf7-response-output {
	border-radius: var(--radius-card);
	border-width: 1px;
	font-size: var(--text-sm);
	margin: 0;
	padding: var(--pad-control-md);
}

.wpcf7 form.sent .wpcf7-response-output {
	background: #e4eedf;
	border-color: #4b7a3f;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
	background: #f6e3da;
	border-color: var(--wp--preset--color--sale);
}

.wpcf7-spinner {
	background-color: var(--wp--preset--color--accent);
}