/* LFW Demo Forms. Colors and type come from the active theme's theme.json
   presets, with fallbacks for themes that name them differently. Override any
   --ldf-* property on .ldf to retune. Minimum text size is 14px. */
.ldf {
	--ldf-ink: var(--wp--preset--color--ink, var(--wp--preset--color--contrast, #1c1f1e));
	--ldf-paper: var(--wp--preset--color--paper, var(--wp--preset--color--base, #fff));
	--ldf-muted: var(--wp--preset--color--muted, var(--ldf-ink));
	--ldf-accent: var(--wp--preset--color--accent, var(--wp--preset--color--teal, var(--wp--preset--color--primary, var(--ldf-ink))));
	--ldf-focus: var(--wp--preset--color--focus, var(--ldf-accent));
	--ldf-line: #767676;
	--ldf-error: #a1261b;
	--ldf-error-bg: #fdf1ef;
	--ldf-radius: var(--wp--custom--input-radius, 10px);
	--ldf-small: max(14px, var(--wp--preset--font-size--small, 0.9375rem));
	color: var(--ldf-ink);
	font-size: max(16px, 1rem);
	line-height: 1.5;
}
.ldf [hidden] { display: none !important; }
.ldf * { box-sizing: border-box; }
.ldf .ldf-badge {
	display: inline-block;
	margin: 0 0 16px;
	padding: 4px 12px;
	border: 1.5px dashed currentColor;
	border-radius: 999px;
	font-size: var(--ldf-small);
	font-weight: 600;
	line-height: 1.4;
}
.ldf .ldf-title { margin: 0 0 8px; }
.ldf .ldf-intro { margin: 0 0 16px; }
.ldf .ldf-form { display: block; margin: 0; }
.ldf .ldf-key { margin: 0 0 20px; font-size: var(--ldf-small); color: var(--ldf-muted); }
.ldf .ldf-key b { color: var(--ldf-ink); font-weight: 600; }
.ldf .ldf-field { margin: 0 0 22px; padding: 0; border: 0; min-width: 0; }
.ldf .ldf-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 0 20px; }
.ldf .ldf-field > label,
.ldf .ldf-field > legend {
	display: block;
	margin: 0 0 6px;
	padding: 0;
	font-size: max(16px, 1rem);
	font-weight: 600;
	color: var(--ldf-ink);
}
.ldf .ldf-req { margin-left: 4px; font-size: var(--ldf-small); font-weight: 500; color: var(--ldf-muted); }
.ldf .ldf-hint { margin: 0 0 8px; font-size: var(--ldf-small); color: var(--ldf-muted); }
.ldf .ldf-error {
	margin: 0 0 8px;
	font-size: var(--ldf-small);
	font-weight: 600;
	color: var(--ldf-error);
}
.ldf .ldf-error::before { content: "! "; }
.ldf input[type=text],
.ldf input[type=email],
.ldf input[type=tel],
.ldf input[type=url],
.ldf select,
.ldf textarea {
	display: block;
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 10px 14px;
	border: 1.5px solid var(--ldf-line);
	border-radius: var(--ldf-radius);
	background: #fff;
	color: #1c1f1e;
	font: inherit;
	font-size: max(16px, 1rem);
}
.ldf textarea { min-height: 150px; resize: vertical; }
.ldf input[type=file] { display: block; max-width: 100%; font: inherit; font-size: var(--ldf-small); color: var(--ldf-ink); }
.ldf input:focus-visible,
.ldf select:focus-visible,
.ldf textarea:focus-visible,
.ldf button:focus-visible,
.ldf .ldf-summary:focus-visible,
.ldf .ldf-done:focus-visible {
	outline: 3px solid var(--ldf-focus);
	outline-offset: 2px;
}
.ldf .ldf-summary:focus,
.ldf .ldf-done:focus { outline: 3px solid var(--ldf-focus); outline-offset: 2px; }
.ldf .is-invalid input:not([type=checkbox]):not([type=radio]),
.ldf .is-invalid select,
.ldf .is-invalid textarea { border: 2px solid var(--ldf-error); }
.ldf .ldf-field.is-invalid { border-left: 4px solid var(--ldf-error); padding-left: 14px; }
.ldf .ldf-count { margin: 6px 0 0; font-size: var(--ldf-small); color: var(--ldf-muted); text-align: right; }
.ldf .ldf-check { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; align-items: start; margin: 0 0 10px; }
.ldf .ldf-check input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--ldf-accent); }
.ldf .ldf-check label { font-weight: 400; font-size: max(16px, 1rem); color: var(--ldf-ink); }
.ldf .ldf-checkbox .ldf-error { margin-top: 4px; }
.ldf .ldf-summary {
	margin: 0 0 24px;
	padding: 16px 20px;
	border: 2px solid var(--ldf-error);
	border-radius: 12px;
	background: var(--ldf-error-bg);
	color: #1c1f1e;
}
.ldf .ldf-summary > :first-child { margin: 0; font-size: max(17px, 1.0625rem); font-family: inherit; font-weight: 600; color: #7e1c13; }
.ldf .ldf-summary ul { margin: 8px 0 0; padding-left: 1.2em; }
.ldf .ldf-summary a { color: #7e1c13; font-weight: 600; text-decoration: underline; }
.ldf .ldf-actions { margin-top: 8px; }
.ldf .ldf-submit { cursor: pointer; min-height: 48px; padding: 12px 26px; }
.ldf .ldf-submit[disabled] { cursor: not-allowed; opacity: .75; }
.ldf .ldf-done {
	padding: 22px 24px;
	border: 2px solid var(--ldf-accent);
	border-radius: 14px;
	background: #fff;
	color: #1c1f1e;
}
.ldf .ldf-done > :first-child { margin: 0 0 6px; font-family: inherit; font-size: max(18px, 1.125rem); font-weight: 600; color: #1c1f1e; }
.ldf .ldf-done p { margin: 0 0 14px; color: #1c1f1e; }
.ldf .ldf-again {
	min-height: 44px;
	padding: 8px 18px;
	border: 1.5px solid #1c1f1e;
	border-radius: var(--wp--custom--button-radius, 999px);
	background: #fff;
	color: #1c1f1e;
	font: inherit;
	font-size: max(16px, 1rem);
	font-weight: 600;
	cursor: pointer;
}
.ldf .ldf-sr {
	position: absolute !important;
	width: 1px; height: 1px; margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
/* Inline layout: one field and the button on a row. */
.ldf .ldf-form.is-inline { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 10px; align-items: end; }
.ldf .ldf-form.is-inline > .ldf-summary,
.ldf .ldf-form.is-inline > noscript { grid-column: 1 / -1; }
.ldf .ldf-form.is-inline .ldf-field { margin-bottom: 0; }
.ldf .ldf-form.is-inline .ldf-actions { margin-top: 0; }
@media (max-width: 600px) {
	.ldf .ldf-form.is-inline { grid-template-columns: 1fr; gap: 10px; }
	.ldf .ldf-submit { width: 100%; }
}
