/* Additions for the static site: forms (replacing Forminator) and the search page. Uses the theme's tokens. */

.nh-form { display: grid; gap: 20px; }
.nh-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.nh-field { display: grid; gap: 7px; min-width: 0; }
.nh-field--wide, .nh-field--checks { grid-column: 1 / -1; }
.nh-field label, .nh-field legend { font-size: var(--fs-14); font-weight: 600; color: var(--scrub); }
.nh-field__req { color: var(--mint-ink); }
.nh-form input[type="text"], .nh-form input[type="email"], .nh-form input[type="tel"], .nh-form input[type="url"], .nh-form select, .nh-form textarea {
	width: 100%; min-height: 48px; padding: 12px 16px; border-radius: 12px; border: 1px solid var(--line-2); background: var(--paper); font-size: var(--fs-15);
	transition: border-color .2s, box-shadow .2s;
}
.nh-form textarea { min-height: 140px; resize: vertical; }
.nh-form select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 22px) 52%, calc(100% - 17px) 52%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 44px; }
.nh-form :is(input, select, textarea):focus-visible { outline: none; border-color: var(--scrub); box-shadow: 0 0 0 3px rgba(67, 227, 168, .35); }
.nh-form .is-invalid { border-color: #c2412d !important; }
.nh-field--checks { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 10px; }
.nh-field--checks legend { width: 100%; margin-bottom: 8px; }
.nh-check { display: inline-flex; align-items: flex-start; gap: 10px; font-size: var(--fs-15); cursor: pointer; }
.nh-field--checks .nh-check { padding: 9px 14px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--paper); }
.nh-field--checks .nh-check:has(input:checked) { background: var(--scrub); border-color: var(--scrub); color: var(--paper); }
.nh-check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--scrub); flex: none; }
.nh-field--checks .nh-check input { position: absolute; opacity: 0; pointer-events: none; }
.nh-form__consent { font-size: var(--fs-14); color: var(--muted); }
.nh-form__consent a { color: inherit; }
.nh-form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.nh-form button[type="submit"] { min-height: 48px; padding: 0 26px; border-radius: 999px; border: 0; background: var(--scrub); color: var(--paper); font-weight: 600; cursor: pointer; transition: background .2s, color .2s; }
.nh-form button[type="submit"]:hover { background: var(--mint); color: var(--scrub); }
.nh-form button[disabled] { opacity: .6; cursor: progress; }
.nh-form__status { font-size: var(--fs-15); color: var(--muted); }
.nh-form__status.is-ok { color: var(--mint-ink); font-weight: 600; }
.nh-form__status.is-error { color: #a3361f; }
.nh-form__status a { color: inherit; font-weight: 600; }
.nh-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.nh-form.is-sent .nh-form__grid, .nh-form.is-sent .nh-form__consent, .nh-form.is-sent button { display: none; }
.nh-form-card { margin-top: 32px; }
.prose .nh-form-card :is(input, select, textarea) { margin: 0; }
.prose .nh-form-card label, .prose .nh-form-card legend { margin: 0; }
@media (max-width: 640px) { .nh-form__grid { grid-template-columns: 1fr; } }

/* Search */
[data-search-results] .cards { margin-top: 8px; }
[data-search-results]:empty { display: none; }
.search-more { margin-top: 40px; display: flex; justify-content: center; }
