/**
 * Form — Forminator section + map layout
 */

.form__inner {
    display: flex;
    flex-direction: column;
    gap: var(--stack-gap-lg);
}

.form__copy,
.form__main,
.form__map,
.form__placeholder,
.form__embed {
    min-width: 0;
}

.form__copy .block-intro {
    margin-block-end: 0;
}

.form__footer {
    margin-block-start: var(--stack-gap);
}

.form__map {
    position: relative;
    overflow: hidden;
    min-height: 280px;
    border-radius: var(--border-radius-md);
    background: var(--color-surface);
}

.form__map iframe {
    display: block;
    width: 100%;
    min-height: 280px;
    border: 0;
}

/* Row: intro left, form right */
@media (min-width: 768px) {
    .form--row .form__inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 40px;
        align-items: start;
    }

    .form--row .form__copy {
        grid-column: 1;
    }

    .form--row .form__main {
        grid-column: 2;
    }

    .form--row .form__map {
        grid-column: 1 / -1;
        min-height: 360px;
    }

    .form--row .form__map iframe {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        min-height: 0;
    }

    .form--row .form__copy .block-intro__heading {
        max-width: 18ch;
    }
}

@media (min-width: 1200px) {
    .form--row .form__inner {
        gap: 56px 80px;
    }
}

/* ── Forminator → theme form controls ────────────────────────────────────── */

.form__embed .forminator-ui,
.form__embed .forminator-custom-form,
.form__embed form {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.form__embed .forminator-row {
    margin: 0 0 1.25rem !important;
}

.form__embed .forminator-field {
    margin: 0 !important;
    padding: 0 !important;
}

.form__embed .forminator-label,
.form__embed label {
    display: block !important;
    margin: 0 0 0.5em !important;
    padding: 0 !important;
    font-family: var(--primary-font) !important;
    font-size: var(--small-font-size) !important;
    font-weight: var(--font-weight-medium) !important;
    line-height: var(--line-height-tight) !important;
    color: var(--color-text) !important;
    background: none !important;
    border: 0 !important;
}

.form__embed .forminator-required,
.form__embed .forminator-label .forminator-required {
    color: var(--color-danger) !important;
    margin-inline-start: 0.15em;
}

.form__embed .forminator-description,
.form__embed .forminator-description--character-counter {
    margin: 0 0 0.5em !important;
    padding: 0 !important;
    font-family: var(--primary-font) !important;
    font-size: var(--tiny-font-size) !important;
    line-height: var(--line-height-body) !important;
    color: var(--color-text-muted) !important;
    background: none !important;
    border: 0 !important;
}

.form__embed .forminator-input,
.form__embed .forminator-textarea,
.form__embed .forminator-select,
.form__embed .forminator-select--field,
.form__embed .forminator-input-with-icon,
.form__embed input[type="text"],
.form__embed input[type="email"],
.form__embed input[type="tel"],
.form__embed input[type="url"],
.form__embed input[type="number"],
.form__embed input[type="password"],
.form__embed input[type="date"],
.form__embed input[type="time"],
.form__embed textarea,
.form__embed select {
    width: 100% !important;
    max-width: none !important;
    min-height: var(--input-min-height) !important;
    margin: 0 !important;
    padding-block: 0.75em !important;
    padding-inline: 1em !important;
    font-family: var(--primary-font) !important;
    font-size: var(--small-font-size) !important;
    font-weight: var(--font-weight-regular) !important;
    line-height: var(--line-height-tight) !important;
    color: var(--color-text) !important;
    background-color: var(--input-bg) !important;
    background-image: none !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--border-radius-sm) !important;
    box-shadow: none !important;
    appearance: none !important;
    transition:
        border-color var(--transition),
        box-shadow var(--transition) !important;
}

@media (min-width: 1200px) {
    .form__embed .forminator-input,
    .form__embed .forminator-textarea,
    .form__embed input,
    .form__embed textarea,
    .form__embed select {
        font-size: var(--body-font-size) !important;
    }
}

.form__embed .forminator-textarea,
.form__embed textarea {
    min-height: 140px !important;
    resize: vertical !important;
}

.form__embed .forminator-input::placeholder,
.form__embed .forminator-textarea::placeholder,
.form__embed input::placeholder,
.form__embed textarea::placeholder {
    color: var(--color-text-subtle) !important;
    opacity: 1 !important;
}

.form__embed .forminator-input:hover,
.form__embed .forminator-textarea:hover,
.form__embed input:hover,
.form__embed textarea:hover,
.form__embed select:hover {
    border-color: var(--gray-30) !important;
}

.form__embed .forminator-input:focus,
.form__embed .forminator-textarea:focus,
.form__embed input:focus,
.form__embed textarea:focus,
.form__embed select:focus {
    border-color: var(--color-primary) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 25%, transparent) !important;
}

.form__embed .forminator-error-message {
    margin: 0.35em 0 0 !important;
    padding: 0 !important;
    font-size: var(--tiny-font-size) !important;
    color: var(--color-danger) !important;
    background: none !important;
    border: 0 !important;
}

.form__embed .forminator-has_error .forminator-input,
.form__embed .forminator-has_error .forminator-textarea,
.form__embed .forminator-has_error input,
.form__embed .forminator-has_error textarea {
    border-color: var(--color-danger) !important;
}

.form__embed .forminator-response-message,
.form__embed .forminator-response-message.forminator-error,
.form__embed .forminator-response-message.forminator-success,
.form__embed .forminator-response-message.forminator-hidden,
.form__embed .forminator-response-message:empty {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.form__embed .forminator-response-message.forminator-show:not(:empty),
.form__embed .forminator-response-message.forminator-accessible:not(:empty) {
    display: block !important;
    margin: 0 0 1rem !important;
    padding: 12px 16px !important;
    border-radius: var(--border-radius-sm) !important;
    border: 1px solid var(--color-border) !important;
    font-size: var(--small-font-size) !important;
    background: var(--color-surface) !important;
    color: var(--color-text) !important;
}

.form__embed .forminator-response-message.forminator-show.forminator-success:not(:empty),
.form__embed .forminator-response-message.forminator-accessible.forminator-success:not(:empty) {
    border-color: var(--color-success) !important;
    background: color-mix(in srgb, var(--color-success) 12%, transparent) !important;
    color: var(--gray-15) !important;
}

.form__embed .forminator-response-message.forminator-show.forminator-error:not(:empty),
.form__embed .forminator-response-message.forminator-accessible.forminator-error:not(:empty) {
    border-color: var(--color-danger) !important;
    background: color-mix(in srgb, var(--color-danger) 10%, transparent) !important;
    color: var(--color-danger) !important;
}

.form__embed .forminator-button-submit,
.form__embed button.forminator-button-submit,
.form__embed button[type="submit"],
.form__embed input[type="submit"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--btn-min-height) !important;
    margin: 0 !important;
    padding-block: 0 !important;
    padding-inline: var(--btn-padding-inline) !important;
    font-family: var(--primary-font) !important;
    font-size: var(--btn-font-size) !important;
    font-weight: var(--btn-font-weight) !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: var(--btn-transform) !important;
    color: var(--btn-primary-text) !important;
    background-color: transparent !important;
    background-image: var(--btn-primary-gradient) !important;
    border: 0 !important;
    border-radius: var(--btn-radius) !important;
    box-shadow: var(--btn-primary-shadow) !important;
    cursor: pointer !important;
    transition: filter var(--transition), transform var(--transition) !important;
}

.form__embed .forminator-button-submit:hover,
.form__embed button.forminator-button-submit:hover,
.form__embed button[type="submit"]:hover,
.form__embed input[type="submit"]:hover {
    filter: brightness(0.97) !important;
    color: var(--btn-primary-text) !important;
}

.form__embed .forminator-checkbox,
.form__embed .forminator-radio {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.75em !important;
}

.form__embed .forminator-checkbox input[type="checkbox"],
.form__embed .forminator-radio input[type="radio"] {
    width: 1.25rem !important;
    height: 1.25rem !important;
    min-height: 0 !important;
    margin: 0.15em 0 0 !important;
    padding: 0 !important;
    accent-color: var(--color-primary);
    border-radius: var(--border-radius-xs) !important;
    box-shadow: none !important;
}

/* Colored section contrast */
[data-block].form--bg-dark .form__embed .forminator-label,
[data-block].form--bg-dark .form__embed label,
[data-block].form--bg-primary .form__embed .forminator-label,
[data-block].form--bg-primary .form__embed label,
[data-block].form--bg-brand .form__embed .forminator-label,
[data-block].form--bg-brand .form__embed label {
    color: rgba(255, 255, 255, 0.92) !important;
}

[data-block].form--bg-dark .form__embed .forminator-description,
[data-block].form--bg-primary .form__embed .forminator-description,
[data-block].form--bg-brand .form__embed .forminator-description {
    color: rgba(255, 255, 255, 0.7) !important;
}

[data-block].form--bg-dark .form__embed .forminator-input,
[data-block].form--bg-dark .form__embed .forminator-textarea,
[data-block].form--bg-dark .form__embed input,
[data-block].form--bg-dark .form__embed textarea,
[data-block].form--bg-dark .form__embed select,
[data-block].form--bg-primary .form__embed .forminator-input,
[data-block].form--bg-primary .form__embed .forminator-textarea,
[data-block].form--bg-primary .form__embed input,
[data-block].form--bg-primary .form__embed textarea,
[data-block].form--bg-primary .form__embed select,
[data-block].form--bg-brand .form__embed .forminator-input,
[data-block].form--bg-brand .form__embed .forminator-textarea,
[data-block].form--bg-brand .form__embed input,
[data-block].form--bg-brand .form__embed textarea,
[data-block].form--bg-brand .form__embed select {
    color: var(--color-text) !important;
    background-color: var(--white) !important;
}

