/**
 * =================================================================
 * BASIC CONTACT FORM
 * =================================================================
 */
/* Base container */
.wpcf7-form {
    display: flex;
    flex-direction: column;    
    box-sizing: border-box;
    position: relative;
    padding-bottom: 45px;
}
.wpcf7-form .form-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 15px;
}
/* Field wrapper */
.wpcf7-form .form-field {
    display: block;
    margin-bottom: 18px;
}
.form-field label {
    color: var(--e-global-color-text);
}
@media (max-width: 767px) {
    .wpcf7-form .form-row {
        grid-template-columns: repeat(1, 1fr);
    }
}
/* Shared style for all form elements */
.wpcf7-form :is(input, textarea, select) {
    display: block;
    width: 100%;
    min-height: 40px;
    padding: 12px 15px;
    border-radius: 8px;
    border: 1px solid #e6e9ee;
    background: var(--e-global-color-text);
    box-shadow: 0 1px 0 rgba(248, 40, 14, 0.02);
    font-size: 1rem;
    line-height: 1.2;
    color: #0f172a;
    transition: box-shadow 160ms ease, border-color 160ms ease, transform 160ms ease;
    box-sizing: border-box;
    outline: none;
}
/* Placeholder */
.wpcf7-form ::placeholder {
    color: #9ca3af;
    opacity: 1;
}
/* Focus state */
.wpcf7-form :is(input, textarea, select):focus {
    border-color: var(--e-global-color-primary);
    box-shadow: 0 6px 18px rgba(248, 40, 14, 0.08), 0 0 0 3px rgba(248, 40, 14, 0.08);
}
/* Focus-visible for keyboard navigation */
.wpcf7-form :focus-visible {
    outline: 3px solid rgba(248, 40, 14, 0.12);
    outline-offset: 2px;
}
/* Select dropdown arrow and input field calendar */
.wpcf7-form :is(select, input.hasDatepicker) {
    appearance: none;
    -webkit-appearance: none;
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 44px;
}
.wpcf7-form select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%239ca3af' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-size: 16px 16px;
}
.wpcf7-form input.hasDatepicker {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%239ca3af' d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11zm0-13H5V6h14v1z'/%3E%3C/svg%3E");
    background-size: 32px 32px;
}
/* Error state (CF7 uses wpcf7-not-valid) */
.wpcf7-not-valid-tip {
    display: none !important;
}
.wpcf7-form:is(.invalid, .error) .form-field :is(input, select), .wpcf7-form :is(input, select).wpcf7-not-valid {
    background-color: rgb(248 40 14 / 30%);
    border-color: var(--e-global-color-primary);
    box-shadow: 0 4px 12px rgba(220, 38, 38, 0.08);
    color: #fff;
}
.wpcf7-form select.wpcf7-not-valid option {
    color: #000;
}
.wpcf7-form .wpcf7-not-valid::placeholder {
    color: #fff;
}
/* Hint text */
.wpcf7-form .hint {
    display: block;
    margin-top: 6px;
    font-size: 0.875rem;
    color: #6b7280;
}
/* Turnstile (cloudflare) */
.wpcf7-turnstile {
    margin-bottom: 10px;
    order: 999;
}
/* Submit button */
.wpcf7-form input[type="submit"],
.wpcf7-form .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 0 22px;
    text-transform: uppercase;
    border-radius: 10px;
    border: none;
    /*background: linear-gradient(180deg, var(--e-global-color-1461d5e), var(--e-global-color-e2427a4));*/
    /*color: var(--e-global-color-text);*/
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
    transition: background 160ms ease, transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
    box-shadow: 0 8px 28px rgba(248, 40, 14, 0.12);
    order: 1000;
}
/* Button hover */
.wpcf7-form input[type="submit"]:hover,
.wpcf7-form .wpcf7-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 36px rgba(248, 40, 14, 0.14);
}
/* Button active */
.wpcf7-form input[type="submit"]:active,
.wpcf7-form .wpcf7-submit:active {
    transform: translateY(0);
    opacity: 0.95;
}
/* Disabled submit */
.wpcf7-form input[type="submit"][disabled],
.wpcf7-form .wpcf7-submit[disabled] {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}
/* Small width utility */
.wpcf7-form .small {
    max-width: 140px;
}
/* Required asterisk style */
.wpcf7-form label .required {
    color: var(--e-global-color-primary);
    margin-left: 6px;
    font-weight: 700;
    font-size: 0.95rem;
}
/* Optional form-card style */
.wpcf7-form.form-card {
    background: var(--e-global-color-text);
    border: 1px solid var(--e-global-color-text);
    border-radius: 12px;
    padding: 28px;
    box-shadow: 0 8px 30px rgba(248, 40, 14, 0.04);
}
.wpcf7-form.init span.wpcf7-spinner {
    opacity: 0;
    transition: opacity 160ms ease-in;
}
.wpcf7-form:not(.init, .sent) span.wpcf7-spinner {
    opacity: 1;
    transition: opacity 160ms ease-out;
}
span.wpcf7-spinner {
    position: absolute;
    right: 0;
    bottom: 0;
    margin: 0 15px 0 0;
    z-index: 1;
}
.wpcf7-form .wpcf7-response-output {
    position: absolute;
    bottom: -10px;
    width: 100%;
    margin: 0 !important;
    color: #fff;
    border-radius: 6px;
}
.wpcf7-form.sent .wpcf7-response-output {
    background-color: #46b450;
    border-color: #15803d !important;
}
.wpcf7-form.invalid .wpcf7-response-output {
    background-color: #dc2626;
    border-color: #b91c1c !important;
}
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}