/** Dragonfly CF7 form styles (Figma: Dragonfly Website, private events form, node 460:10253) **/
.dragonfly-form {
    /* Figma fonts → site fonts: Eros → Elsie Swash Caps, Double → Roboto Condensed */
    --form-font-display: 'Elsie Swash Caps', serif;
    --form-font: 'Roboto Condensed', sans-serif;
    --form-teal: #218296;
    --form-text: #242424;
    --form-muted: #6d6d6d;
    --form-error: #b3261e;

    display: flex;
    flex-direction: column;
    gap: 74px;
    width: 970px;
    max-width: 100%;
    margin: 0 auto;
    font-family: var(--form-font);
}

.dragonfly-form *,
.dragonfly-form *::before,
.dragonfly-form *::after {
    box-sizing: border-box;
}

.dragonfly-form__group {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.dragonfly-form .dragonfly-form__heading {
    margin: 0;
    padding: 0;
    color: var(--form-teal);
    font-family: var(--form-font-display);
    font-size: 34px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0.34px;
    text-transform: none;
}

.dragonfly-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px 70px;
}

/* CF7 wraps each field in a span */
.dragonfly-form .wpcf7-form-control-wrap {
    display: block;
}

/* ==========================================================================
   Fields: underline style
   ========================================================================== */
.dragonfly-form input.wpcf7-form-control:not([type="submit"]),
.dragonfly-form select.wpcf7-form-control,
.dragonfly-form textarea.wpcf7-form-control {
    display: block;
    width: 100%;
    height: 46px;
    margin: 0;
    padding: 10px;
    border: 0;
    border-bottom: 2px solid var(--form-teal);
    border-radius: 0;
    background-color: transparent;
    box-shadow: none;
    color: var(--form-text);
    font-family: var(--form-font);
    font-size: 18px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: 0.18px;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}

.dragonfly-form textarea.wpcf7-form-control {
    height: 140px;
    resize: vertical;
}

.dragonfly-form .wpcf7-form-control::placeholder {
    color: var(--form-muted);
    opacity: 1;
}

.dragonfly-form .wpcf7-form-control:focus {
    border-bottom-color: var(--form-text);
}

/* Unselected dropdowns show their first option in grey */
.dragonfly-form select.wpcf7-form-control.is-empty {
    color: var(--form-muted);
}

.dragonfly-form select.wpcf7-form-control option {
    color: var(--form-text);
}

/* Icons on the right of the event fields */
.dragonfly-form__field--date .wpcf7-form-control,
.dragonfly-form__field--time .wpcf7-form-control,
.dragonfly-form__field--guests .wpcf7-form-control,
.dragonfly-form__field--select .wpcf7-form-control {
    padding-right: 40px !important;
    background-repeat: no-repeat !important;
    background-position: right 10px center !important;
    background-size: 20px 20px !important;
}

.dragonfly-form__field--date .wpcf7-form-control   { background-image: url('images/form/calendar.svg') !important; }
.dragonfly-form__field--time .wpcf7-form-control   { background-image: url('images/form/clock.svg') !important; }
.dragonfly-form__field--guests .wpcf7-form-control { background-image: url('images/form/user.svg') !important; }
.dragonfly-form__field--select .wpcf7-form-control { background-image: url('images/form/chevron-down.svg') !important; }

/* Use the design's calendar icon: hide the browser's own, but keep it clickable over ours */
.dragonfly-form input[type="date"]::-webkit-calendar-picker-indicator {
    position: absolute;
    right: 10px;
    width: 20px;
    height: 20px;
    opacity: 0;
    cursor: pointer;
}

.dragonfly-form__field--date .wpcf7-form-control-wrap {
    position: relative;
}

/* Hide number spinners (the user icon sits there) */
.dragonfly-form input[type="number"]::-webkit-inner-spin-button,
.dragonfly-form input[type="number"]::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.dragonfly-form input[type="number"] {
    -moz-appearance: textfield;
}

/* ==========================================================================
   Additional information
   ========================================================================== */
.dragonfly-form__message {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: -40px; /* sits 34px below the event fields in the design */
}

.dragonfly-form .dragonfly-form__label {
    margin: 0;
    color: var(--form-teal);
    font-family: var(--form-font);
    font-size: 15px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: 0.15px;
}

/* ==========================================================================
   Submit (Elementor's global button style via .elementor-button)
   ========================================================================== */
.dragonfly-form__submit {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin-top: -24px; /* 50px below the notes in the design */
}

.dragonfly-form .wpcf7-submit {
    min-width: 154px;
    cursor: pointer;
}

.dragonfly-form .wpcf7-spinner {
    position: absolute;
    left: calc(50% + 90px);
    margin: 0;
}

/* ==========================================================================
   Validation and response messages
   ========================================================================== */
.dragonfly-form .wpcf7-not-valid-tip {
    margin-top: 6px;
    color: var(--form-error);
    font-family: var(--form-font);
    font-size: 14px;
}

.dragonfly-form .wpcf7-form-control.wpcf7-not-valid {
    border-bottom-color: var(--form-error);
}

.wpcf7 form:has(.dragonfly-form) .wpcf7-response-output {
    width: 970px;
    max-width: 100%;
    margin: 24px auto 0;
    padding: 12px 16px;
    border: 1px solid var(--form-teal, #218296);
    color: #242424;
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 16px;
    text-align: center;
}

.wpcf7 form.invalid:has(.dragonfly-form) .wpcf7-response-output,
.wpcf7 form.failed:has(.dragonfly-form) .wpcf7-response-output {
    border-color: #b3261e;
}

/* ==========================================================================
   Mobile
   ========================================================================== */
@media (max-width: 767px) {
    .dragonfly-form {
        gap: 48px;
    }

    .dragonfly-form__group {
        gap: 24px;
    }

    .dragonfly-form .dragonfly-form__heading {
        font-size: 28px;
    }

    .dragonfly-form__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .dragonfly-form__message {
        margin-top: -24px;
    }

    .dragonfly-form input.wpcf7-form-control:not([type="submit"]),
    .dragonfly-form select.wpcf7-form-control,
    .dragonfly-form textarea.wpcf7-form-control {
        font-size: 16px;
    }

    .dragonfly-form__submit {
        margin-top: 0;
    }
}
