/* Enquiry forms. Uses theme tokens with fallbacks. */
.hhe-form,
.hhe-done {
	padding: clamp(1.25rem, 3vw, 2.25rem);
	background: #fff;
	border: 1px solid var(--hh-line, #E2DACA);
	border-radius: var(--hh-radius-lg, 18px);
	color: var(--hh-ink, #18201B);
}
.hhe-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem 1.25rem; }
.hhe-field { display: grid; gap: 0.4rem; margin: 0; min-width: 0; }
.hhe-field--wide { grid-column: 1 / -1; }
.hhe-field label,
.hhe-field legend { font-weight: 600; font-size: 0.95rem; padding: 0; }
.hhe-req { color: var(--hh-gold-ink, #8A6A2C); }
.hhe-hint { font-weight: 400; color: var(--hh-muted, #5B665E); font-size: 0.85rem; }
.hhe-field input:not([type="radio"]):not([type="checkbox"]),
.hhe-field select,
.hhe-field textarea { width: 100%; min-height: 48px; }
.hhe-field textarea { min-height: 130px; }

/* Choice groups: an even grid of tidy option cards. */
.hhe-choices {
	border: 0;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.6rem;
}
.hhe-choices legend { margin: 0 0 0.6rem; padding: 0; }
.hhe-choice {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	min-height: 52px;
	padding: 0.7rem 0.9rem;
	border: 1px solid var(--hh-line, #E2DACA);
	border-radius: 12px;
	background: var(--hh-paper, #FAF7F0);
	font-weight: 400 !important;
	font-size: 0.95rem;
	line-height: 1.3;
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease;
}
.hhe-choice:hover { border-color: var(--hh-leaf, #3F6B4F); }
.hhe-choice:has(input:checked) { border-color: var(--hh-forest, #1F3A2E); background: var(--hh-leaf-soft, #DCE5DA); }
.hhe-choice:has(input:focus-visible) { outline: 2px solid var(--hh-gold, #B8924A); outline-offset: 2px; }

/* Custom tick box and round button, same size everywhere. */
.hhe-choice input[type="checkbox"],
.hhe-choice input[type="radio"] {
	-webkit-appearance: none;
	appearance: none;
	flex: 0 0 20px;
	width: 20px !important;
	height: 20px !important;
	min-height: 0 !important;
	margin: 0;
	padding: 0;
	border: 1.5px solid var(--hh-muted, #5B665E);
	background: #fff;
	display: grid;
	place-content: center;
	cursor: pointer;
}
.hhe-choice input[type="checkbox"] { border-radius: 5px; }
.hhe-choice input[type="radio"] { border-radius: 50%; }
.hhe-choice input[type="checkbox"]::after {
	content: "";
	width: 10px;
	height: 6px;
	border: solid #fff;
	border-width: 0 0 2px 2px;
	transform: rotate(-45deg) translate(1px, -1px);
	opacity: 0;
}
.hhe-choice input[type="radio"]::after {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--hh-forest, #1F3A2E);
	opacity: 0;
}
.hhe-choice input[type="checkbox"]:checked { background: var(--hh-forest, #1F3A2E); border-color: var(--hh-forest, #1F3A2E); }
.hhe-choice input[type="radio"]:checked { border-color: var(--hh-forest, #1F3A2E); }
.hhe-choice input:checked::after { opacity: 1; }

.hhe-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.hhe-foot .hh-btn { padding: 1em 2em; font-size: 1rem; }
.hhe-note { margin: 0; color: var(--hh-muted, #5B665E); font-size: 0.9rem; }
.hhe-error {
	margin: 0 0 1.25rem;
	padding: 0.75rem 0.9rem;
	border-left: 3px solid var(--hh-error, #A2412F);
	background: #FBEFEC;
	color: var(--hh-error, #A2412F);
}
.hhe-done { border-left: 4px solid var(--hh-leaf, #3F6B4F); }
.hhe-done__title { margin: 0 0 0.5rem; font-size: 1.6rem; }
.hhe-done p { margin: 0; }
.hhe-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 900px) {
	.hhe-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.hhe-grid { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
	.hhe-choices { grid-template-columns: 1fr; }
}
