/* Shared silver-glass surfaces for every first-party enquiry and lead form. */
:root {
    --form-metal-edge: #41616d;
    --form-metal-text: #e6f0f6;
    --form-metal-muted: #adbfce;
    --form-neon: #06fdd8;
    --form-surface: radial-gradient(ellipse at 12% 0, rgba(184,223,228,.16), transparent 56%),
        linear-gradient(135deg, rgba(36,57,69,.97) 0%, rgba(18,39,53,.97) 22%,
        rgba(12,27,41,.97) 55%, rgba(23,46,58,.97) 85%, rgba(32,62,72,.97) 100%);
}

.contact-form-wrapper,
.lead-form-card,
.form-card:has(#lpAuditForm),
#contactForm {
    position: relative;
    min-width: 0;
    color: var(--form-metal-text);
    background: var(--form-surface);
    border: 1px solid var(--form-metal-edge);
    border-radius: 16px;
    box-shadow: inset 0 1px 0 rgba(238,255,255,.23),
        inset 0 -1px 0 rgba(6,253,216,.14),
        0 22px 50px -28px rgba(0,0,0,.85), 0 0 32px -25px rgba(6,253,216,.5);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
}

.contact-form-wrapper::before,
.lead-form-card::before,
.form-card:has(#lpAuditForm)::before,
#contactForm::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 8%;
    right: 8%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(223,250,250,.65), rgba(6,253,216,.4), transparent);
    pointer-events: none;
}

#contactForm { padding: clamp(24px, 4vw, 42px); }

.contact-form-wrapper .form-label,
.lead-form-card .form-label,
#contactForm .form-label,
#lpAuditForm .field label {
    color: #cedde6;
    font-family: var(--font-body, 'Inter', system-ui, sans-serif);
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: 0;
}

.lead-form-card h3,
.form-card:has(#lpAuditForm) h3 { color: #f0f7fa; }
.lead-form-card .subtitle,
.lead-form-card .privacy-note,
#lpAuditForm .fine-print,
#lpAuditForm .field .opt { color: var(--form-metal-muted); }
.lead-form-card .privacy-note a,
#lpAuditForm .fine-print a {
    color: var(--form-neon);
    text-underline-offset: 3px;
}

.contact-form-wrapper .form-input,
.contact-form-wrapper .form-textarea,
.lead-form-card .form-input,
#contactForm .form-input,
#contactForm .form-textarea,
#lpAuditForm .field input,
#lpAuditForm .field textarea,
.chatbot-input-area input,
.voice-input {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
    color: #e8f3f8;
    color-scheme: dark;
    background: linear-gradient(165deg, rgba(9,22,33,.96), rgba(18,37,50,.98));
    border: 1px solid #3c5665;
    border-radius: 9px;
    box-shadow: inset 0 2px 6px rgba(0,0,0,.22), inset 0 -1px 0 rgba(224,245,248,.04);
    font-family: var(--font-body, 'Inter', system-ui, sans-serif);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    caret-color: var(--form-neon);
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.contact-form-wrapper .form-input,
.contact-form-wrapper .form-textarea,
.lead-form-card .form-input,
#contactForm .form-input,
#contactForm .form-textarea,
#lpAuditForm .field input,
#lpAuditForm .field textarea { width: 100%; padding: 13px 15px; }

.contact-form-wrapper :is(input, textarea)::placeholder,
.lead-form-card input::placeholder,
.lead-form-card textarea::placeholder,
#contactForm :is(input, textarea)::placeholder,
#lpAuditForm :is(input, textarea)::placeholder,
.chatbot-input-area input::placeholder,
.voice-input::placeholder { color: #8fa7ba; opacity: 1; }

.contact-form-wrapper :is(.form-input, .form-textarea):hover:not(:disabled),
.lead-form-card .form-input:hover:not(:disabled),
#contactForm :is(.form-input, .form-textarea):hover:not(:disabled),
#lpAuditForm .field :is(input, textarea):hover:not(:disabled),
.chatbot-input-area input:hover:not(:disabled),
.voice-input:hover:not(:disabled) { border-color: #66818e; }

.contact-form-wrapper :is(.form-input, .form-textarea):focus,
.lead-form-card .form-input:focus,
#contactForm :is(.form-input, .form-textarea):focus,
#lpAuditForm .field :is(input, textarea):focus,
.chatbot-input-area input:focus,
.voice-input:focus {
    outline: 2px solid transparent;
    border-color: var(--form-neon);
    background: linear-gradient(165deg, #0c202d, #17313e);
    box-shadow: inset 0 1px 4px rgba(0,0,0,.18),
        0 0 0 3px rgba(6,253,216,.11), 0 0 20px -9px rgba(6,253,216,.5);
}

.contact-form-wrapper select.form-input option { background: #102332; color: #e8f3f8; }

.contact-form-wrapper :is(input, textarea):is([aria-invalid='true'], .is-invalid, :user-invalid),
.lead-form-card :is(input, textarea):is([aria-invalid='true'], .is-invalid, :user-invalid),
#contactForm :is(input, textarea):is([aria-invalid='true'], .is-invalid, :user-invalid),
#lpAuditForm .field :is(input, textarea)[aria-invalid='true'],
.voice-input[aria-invalid='true'] {
    border-color: #ff9b96;
    box-shadow: 0 0 0 3px rgba(255,155,150,.12);
}

.contact-form-wrapper :is(input, textarea, select):disabled,
.lead-form-card :is(input, textarea):disabled,
#contactForm :is(input, textarea):disabled,
#lpAuditForm .field :is(input, textarea):disabled,
.chatbot-input-area input:disabled,
.voice-input:disabled { opacity: .6; cursor: not-allowed; }

.contact-form-wrapper input:-webkit-autofill,
.lead-form-card input:-webkit-autofill,
#contactForm input:-webkit-autofill,
#lpAuditForm input:-webkit-autofill,
.voice-input:-webkit-autofill {
    -webkit-text-fill-color: #e8f3f8;
    -webkit-box-shadow: 0 0 0 1000px #122735 inset;
    caret-color: var(--form-neon);
}

.contact-form-wrapper .btn-primary,
.lead-form-card .btn-primary,
#contactForm .btn-submit,
#lpAuditForm .btn,
.voice-cta,
.chatbot-input-area button {
    background: linear-gradient(175deg, #91ffec 0%, #35f5d8 24%, #06e6c5 68%, #00c8ad 100%);
    color: #03282c;
    border: 1px solid #6effe8;
    box-shadow: inset 0 1px 0 rgba(244,255,253,.85),
        inset 0 -2px 0 rgba(0,89,81,.18), 0 6px 18px -10px rgba(6,253,216,.5);
    font-family: var(--font-body, 'Inter', system-ui, sans-serif);
    font-weight: 600;
    text-shadow: none;
    transition: filter .2s ease, box-shadow .2s ease;
}

.contact-form-wrapper .btn-primary:hover:not(:disabled),
.lead-form-card .btn-primary:hover:not(:disabled),
#contactForm .btn-submit:hover:not(:disabled),
#lpAuditForm .btn:hover:not(:disabled),
.voice-cta:hover:not(:disabled),
.chatbot-input-area button:hover:not(:disabled) {
    background: linear-gradient(175deg, #bbfff2 0%, #66ffe6 24%, #22efd0 68%, #06d5ba 100%);
    box-shadow: inset 0 1px 0 #f3fffc, 0 5px 22px -8px rgba(6,253,216,.5);
    transform: none;
    filter: none;
}

.contact-form-wrapper .btn-primary:focus-visible,
.lead-form-card .btn-primary:focus-visible,
#contactForm .btn-submit:focus-visible,
#lpAuditForm .btn:focus-visible,
.voice-cta:focus-visible,
.chatbot-input-area button:focus-visible {
    outline: 2px solid #b5fff0;
    outline-offset: 4px;
}

.contact-form-wrapper .btn-primary:disabled,
.lead-form-card .btn-primary:disabled,
#contactForm .btn-submit:disabled,
#lpAuditForm .btn:disabled,
.voice-cta:disabled,
.chatbot-input-area button:disabled { opacity: .65; cursor: progress; transform: none; }

#lpAuditForm .form-status.is-error,
.voice-error { color: #ffb0aa; }
#lpAuditForm .form-status.is-ok { color: #79f4d8; }
#lpAuditForm .ds-verify-dot { background: #03282c; }
.chatbot-input-area { background: linear-gradient(160deg, #152d3a, #0c1b29); border-top-color: #34505e; }

@media (max-width: 600px) {
    .contact-form-wrapper,
    .lead-form-card,
    .form-card:has(#lpAuditForm),
    #contactForm { border-radius: 13px; }
    #contactForm { padding: 24px 20px; }
    .contact-form-wrapper :is(.form-input, .form-textarea),
    .lead-form-card .form-input,
    #contactForm :is(.form-input, .form-textarea),
    #lpAuditForm .field :is(input, textarea),
    .chatbot-input-area input,
    .voice-input { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .contact-form-wrapper :is(input, textarea, select, button),
    .lead-form-card :is(input, textarea, button),
    #contactForm :is(input, textarea, button),
    #lpAuditForm :is(input, textarea, button),
    .chatbot-input-area :is(input, button),
    .voice-input,
    .voice-cta { transition: none; }
}
