/* LEAD Enquiry Form: follows the theme's colour tokens and falls back to the LEAD palette. */
.lead-form-wrap { --lef-green: var(--wp--preset--color--deep-green, #174d38); --lef-leaf: var(--wp--preset--color--leaf-green, #27684b); --lef-line: rgba(23, 77, 56, 0.4); --lef-tint: var(--wp--preset--color--lime-tint, #eef4db); --lef-gold: var(--wp--preset--color--warm-gold, #e9b949); --lef-err: #a32020; --lef-ease: cubic-bezier(0.22, 0.61, 0.36, 1); color: var(--wp--preset--color--ink, #15281f); }
.lead-form { display: grid; gap: 1.35rem; margin-top: 0.5rem; }
.lead-form__row { display: grid; gap: 1.35rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lead-form__field { display: grid; gap: 0.45rem; align-content: start; }
.lead-form label { font-weight: 600; font-size: 0.9375rem; color: var(--lef-green); }
.lead-form__req { color: var(--lef-err); }

.lead-form input[type="text"], .lead-form input[type="email"], .lead-form select, .lead-form textarea {
	width: 100%; box-sizing: border-box; min-height: 3.4rem; padding: 0.8rem 1rem; border: 1.5px solid var(--lef-line); border-radius: 14px;
	background: #fbfbf7; color: inherit; font: inherit; line-height: 1.4;
	outline: 2px solid transparent; outline-offset: 0;
	transition: border-color 200ms var(--lef-ease), background-color 200ms var(--lef-ease), box-shadow 200ms var(--lef-ease), outline-color 200ms var(--lef-ease);
}
.lead-form textarea { min-height: 9.5rem; resize: vertical; }
.lead-form select { appearance: none; -webkit-appearance: none; padding-right: 2.75rem; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23174D38' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; background-size: 1.1rem; }
.lead-form input::placeholder, .lead-form textarea::placeholder { color: rgba(63, 82, 71, 0.6); }
.lead-form input:hover, .lead-form select:hover, .lead-form textarea:hover { border-color: var(--lef-leaf); background-color: #fff; }

/* Focus: ONE clear ring. The border turns green and a soft halo appears, on mouse click and keyboard alike.
   (The outline stays transparent so it is still visible in forced-colours / high-contrast mode.) */
.lead-form input:focus, .lead-form select:focus, .lead-form textarea:focus,
.lead-form input:focus-visible, .lead-form select:focus-visible, .lead-form textarea:focus-visible {
	outline: 2px solid transparent; outline-offset: 0; border-color: var(--lef-green); background-color: #fff;
	box-shadow: 0 0 0 4px rgba(39, 104, 75, 0.24);
}
.lead-form [aria-invalid="true"] { border-color: var(--lef-err); background-color: #fff8f8; }
.lead-form [aria-invalid="true"]:focus { border-color: var(--lef-err); box-shadow: 0 0 0 4px rgba(163, 32, 32, 0.18); }
.lead-form__error { color: var(--lef-err); font-size: 0.875rem; font-weight: 600; }

.lead-form__check { display: flex; gap: 0.85rem; align-items: flex-start; font-weight: 400; font-size: 0.9375rem; line-height: 1.5; color: var(--wp--preset--color--ink-soft, #3f5247); cursor: pointer; }
.lead-form__check input { flex: none; width: 1.35rem; height: 1.35rem; margin: 0.1rem 0 0; accent-color: var(--lef-green); cursor: pointer; border-radius: 6px; outline-offset: 3px; }
.lead-form__check input:focus-visible { outline: 2px solid var(--lef-green); outline-offset: 3px; box-shadow: none; }
.lead-form__check a { color: var(--lef-green); }

.lead-form__submit { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; min-height: 3.4rem; padding: 0.85rem 2rem; border: 2px solid transparent; border-radius: 999px; background: var(--lef-green); color: #f7f7f0; font: inherit; font-weight: 600; cursor: pointer; transition: background-color 220ms var(--lef-ease), transform 220ms var(--lef-ease), box-shadow 220ms var(--lef-ease); }
.lead-form__submit::after { content: ""; width: 1.05em; height: 1.05em; background: currentColor; transition: transform 220ms var(--lef-ease); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.lead-form__submit:hover { background: var(--lef-leaf); transform: translateY(-1px); box-shadow: 0 12px 26px rgba(23, 77, 56, 0.28); }
.lead-form__submit:hover::after { transform: translateX(4px); }
.lead-form__submit:active { transform: translateY(0) scale(0.985); }
.lead-form__submit:focus-visible { outline: 3px solid var(--lef-green); outline-offset: 3px; }
.lead-form__submit[disabled] { opacity: 0.7; cursor: progress; }

.lead-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lead-form__notice { padding: 1.1rem 1.35rem; margin-bottom: 1.5rem; border-left: 4px solid var(--lef-gold); background: var(--lef-tint); color: var(--lef-green); border-radius: 0 14px 14px 0; animation: lead-notice-in 420ms var(--lef-ease) both; }
.lead-form__notice--error { border-left-color: var(--lef-err); background: #fbeaea; color: #6d1414; }
.lead-form__notice--warn { border-left-color: var(--lef-gold); }
@keyframes lead-notice-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@media (max-width: 640px) { .lead-form__row { grid-template-columns: minmax(0, 1fr); } .lead-form__submit { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .lead-form *, .lead-form__submit, .lead-form__notice { transition: none !important; animation: none !important; } }
