/* ES Enquiry: shared presentation for the CF7 widget and [es_contact_form].
 * Scoped !important rules override ElementsKit's generated per-widget controls.
 * Field names and submission logic remain in eve-shields-core.
 */
/* Give the container-query form a definite width during Elementor's flex sizing.
 * An auto-width widget can reserve excess height before the form is laid out.
 */
.elementor-widget-elementskit-contact-form7:has(.es-enquiry-form) {
    width: 100%;
}

.es-enquiry-form {
    --es-form-border: #87938e;
    box-sizing: border-box;
    width: 100%;
    max-width: 920px;
    margin-inline: auto;
    padding: clamp(24px, 3vw, 40px);
    border: 1px solid var(--es-line, #d6d6d1);
    border-radius: 8px;
    background: #fff;
    color: var(--es-text, #1a1d1f);
    font: 400 16px/1.5 Inter, sans-serif;
    container: es-enquiry / inline-size;
}

.es-enquiry-form .es-form-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    align-items: stretch;
}
.es-enquiry-form .es-field { min-width: 0; }
.es-enquiry-form .es-field--wide { grid-column: 1 / -1; }
.es-enquiry-form .es-field > p { height: 100%; margin: 0 !important; }
.es-enquiry-form .es-field > p > label,
.es-enquiry-form .es-field > label {
    display: flex !important;
    flex-direction: column;
    gap: 8px;
    height: 100%;
    margin: 0 !important;
    color: var(--es-text, #1a1d1f) !important;
    font: 500 14px/1.5 Inter, sans-serif !important;
}
.es-enquiry-form .es-field-label {
    display: block !important;
    margin: 0 !important;
    color: var(--es-text, #1a1d1f) !important;
    font: 500 14px/1.5 Inter, sans-serif !important;
}
.es-enquiry-form label .es-optional {
    display: inline !important;
    margin-left: 4px;
    color: #606a65 !important;
    font: 400 13px/1.5 Inter, sans-serif !important;
    white-space: nowrap;
}
.es-enquiry-form label > .wpcf7-form-control-wrap {
    display: block !important;
    width: 100%;
    margin-top: auto !important;
}

.es-enquiry-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
    box-sizing: border-box;
    display: block !important;
    width: 100% !important;
    max-width: 100%;
    min-height: 52px;
    margin: 0 !important;
    padding: 13px 16px !important;
    border: 1px solid var(--es-form-border) !important;
    border-radius: 4px !important;
    background-color: #f8f9f7 !important;
    color: var(--es-text, #1a1d1f) !important;
    font: 400 16px/1.5 Inter, sans-serif !important;
    letter-spacing: normal;
    box-shadow: none !important;
    transition: border-color .18s ease, background-color .18s ease;
}
.es-enquiry-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea):hover {
    border-color: var(--es-accent, #2f6f6b) !important;
}
.es-enquiry-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea):focus {
    border-color: var(--es-accent, #2f6f6b) !important;
    background-color: #fff !important;
    outline: 2px solid var(--es-accent, #2f6f6b) !important;
    outline-offset: 2px;
}
.es-enquiry-form :is(input[type="text"], input[type="email"], input[type="tel"], select) { height: 52px !important; }
.es-enquiry-form :is(input, textarea)::placeholder { color: #606a65 !important; font: inherit !important; opacity: 1; }
.es-enquiry-form select {
    appearance: none !important;
    padding-right: 44px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%232f6f6b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 15px center !important;
    background-size: 20px !important;
    cursor: pointer;
}
.es-enquiry-form textarea,
.elementor .elementor-widget .wpcf7 form .es-enquiry-form textarea {
    height: 128px;
    min-height: 112px;
    resize: vertical !important;
}
.es-enquiry-form textarea[name="message"],
.elementor .elementor-widget .wpcf7 form .es-enquiry-form textarea[name="message"] { height: 152px; }

.es-enquiry-form .es-consent { padding-top: 24px; border-top: 1px solid var(--es-line, #d6d6d1); }
.es-enquiry-form .wpcf7-list-item { margin: 0 !important; }
.es-enquiry-form .wpcf7-acceptance label { display: flex !important; align-items: flex-start; gap: 12px; margin: 0 !important; }
.es-enquiry-form .wpcf7-acceptance .wpcf7-list-item-label { display: block; color: #46514b !important; font: 400 14px/1.65 Inter, sans-serif !important; }
.es-enquiry-form input[type="checkbox"] {
    appearance: auto !important;
    flex: 0 0 20px;
    width: 20px !important;
    height: 20px !important;
    margin: 2px 0 0 !important;
    accent-color: var(--es-accent, #2f6f6b);
}
.es-enquiry-form :is(input[type="checkbox"], a, input[type="submit"]):focus-visible { outline: 2px solid var(--es-accent, #2f6f6b) !important; outline-offset: 4px; }
.es-enquiry-form a { color: var(--es-accent, #2f6f6b); text-decoration: underline; text-underline-offset: 3px; }
.es-enquiry-form .es-privacy-link { display: block; margin: 8px 0 0 32px; font-size: 14px; }
/* Consent already names the policy; add a separate line only for its live link. */
.es-enquiry-form .es-privacy-link:not(:has(a)) { display: none; }

.es-enquiry-form .es-actions { margin-top: 28px; }
.es-enquiry-form .es-actions > p { display: flex; align-items: center; gap: 12px; margin: 0 !important; }
.es-enquiry-form input[type="submit"].es-button {
    display: inline-flex;
    width: auto !important;
    min-width: 188px;
    height: 52px !important;
    margin: 0 !important;
    padding: 14px 28px !important;
    border: 1px solid transparent !important;
    border-radius: 4px !important;
    background: var(--es-accent, #2f6f6b) !important;
    color: #fff !important;
    font: 600 16px/1.4 Inter, sans-serif !important;
    box-shadow: none !important;
    cursor: pointer;
    transition: background-color .18s ease;
}
.es-enquiry-form input[type="submit"].es-button:hover { background: var(--es-accent-hover, #255853) !important; }
.es-enquiry-form input[type="submit"]:disabled { cursor: wait; opacity: .65; }
.es-enquiry-form .wpcf7-spinner { flex-shrink: 0; margin: 0; }
.es-enquiry-form .es-form-note { max-width: 620px; margin: 16px 0 0 !important; color: #606a65 !important; font: 400 13px/1.65 Inter, sans-serif !important; }
.es-enquiry-form .wpcf7-not-valid-tip { display: block; margin-top: 8px; color: #a82c31 !important; font: 400 14px/1.5 Inter, sans-serif !important; }
.es-enquiry-form :is(input, select, textarea)[aria-invalid="true"] { border-color: #a82c31 !important; }
.es-enquiry-form .es-form-meta { display: none !important; }
.es-enquiry-form .es-honeypot { position: absolute !important; left: -10000px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }
.wpcf7:has(.es-enquiry-form) .wpcf7-response-output { box-sizing: border-box; max-width: 920px; margin: 20px auto 0; padding: 16px 20px; background: #fff; color: var(--es-text, #1a1d1f); font: 400 14px/1.65 Inter, sans-serif; }

/* Follow the form's width: a narrow Contact column stays single-column on desktop. */
@container es-enquiry (min-width: 620px) {
    .es-enquiry-form .es-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .es-enquiry-form { padding: 24px 20px; }
    .es-enquiry-form input[type="submit"].es-button { width: 100% !important; }
    .es-enquiry-form .es-actions > p { position: relative; width: 100%; padding: 0; }
    .es-enquiry-form .wpcf7-spinner { position: absolute; right: 10px; }
}
@media (prefers-reduced-motion: reduce) {
    .es-enquiry-form :is(input, textarea, select) { transition: none; }
}
