.weyel-contact-form-wrap {
    --weyel-cf-color-primary: var(--weyel-color-blue, #0768b1);
    --weyel-cf-color-primary-dark: var(--weyel-color-blue-dark, #003577);
    --weyel-cf-color-accent: var(--weyel-color-green, #52ae32);
    --weyel-cf-color-text: var(--weyel-color-text, #494043);
    --weyel-cf-color-text-muted: var(--weyel-color-text-muted, #555555);
    --weyel-cf-color-border: var(--weyel-border-color-soft, #e0e0e0);
    --weyel-cf-color-required: var(--weyel-color-red, #e62243);
    --weyel-cf-color-surface: var(--weyel-color-white, #ffffff);
    --weyel-cf-color-surface-soft: var(--weyel-color-surface-muted, #fbfbfb);
    --weyel-cf-color-surface-blue-soft: #f3f8fd;
    --weyel-cf-font-family: var(--weyel-font-family-base, "Exo", sans-serif);
    --weyel-cf-radius: var(--weyel-radius-md, 12px);
    --weyel-cf-shadow: var(--weyel-shadow-soft, 0 10px 30px rgba(0, 0, 0, 0.06));
    --weyel-cf-shadow-strong: 0 15px 36px rgba(0, 53, 119, 0.14);
    --weyel-cf-transition: var(--weyel-transition-base, 0.3s ease);
    max-width: 100%;
    color: var(--weyel-cf-color-text);
    font-family: var(--weyel-cf-font-family);
}

.weyel-cf-title {
    margin: 0 0 1rem;
    color: var(--weyel-cf-color-text);
    font-weight: 600;
    line-height: 1.3;
}

.weyel-contact-form-wrap form {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--weyel-cf-color-border);
    border-radius: var(--weyel-cf-radius);
    background: linear-gradient(180deg, var(--weyel-cf-color-surface) 0%, var(--weyel-cf-color-surface-soft) 100%);
    box-shadow: var(--weyel-cf-shadow);
    padding: clamp(16px, 3vw, 30px);
}

.weyel-contact-form-wrap.weyel-cf-bootstrap form {
    border-color: rgba(7, 104, 177, 0.18);
    background: linear-gradient(140deg, var(--weyel-cf-color-surface) 0%, var(--weyel-cf-color-surface-blue-soft) 55%, var(--weyel-cf-color-surface) 100%);
    box-shadow: var(--weyel-cf-shadow-strong);
}

.weyel-contact-form-wrap.weyel-cf-bootstrap form::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--weyel-cf-color-primary) 0%, var(--weyel-cf-color-accent) 100%);
}

.weyel-cf-message {
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border-radius: calc(var(--weyel-cf-radius) - 4px);
    border: 1px solid transparent;
    font-size: 0.95rem;
}

.weyel-cf-message-success {
    color: #0f5132;
    background: #d1e7dd;
    border-color: #badbcc;
}

.weyel-cf-message-error {
    color: #842029;
    background: #f8d7da;
    border-color: #f5c2c7;
}

.weyel-cf-message-error ul {
    margin: 0;
    padding-left: 1.125rem;
}

.weyel-cf-message-error li + li {
    margin-top: 0.25rem;
}

.weyel-cf-minimal .weyel-cf-field {
    margin-bottom: 1rem;
}

.weyel-cf-label {
    display: block;
    margin-bottom: 0.45rem;
    color: var(--weyel-cf-color-primary-dark);
    font-weight: 600;
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.weyel-cf-field-checkbox .weyel-cf-label,
.weyel-contact-form-wrap.weyel-cf-bootstrap .form-check-label {
    margin-bottom: 0;
    color: var(--weyel-cf-color-text-muted);
    font-size: 0.95rem;
    letter-spacing: 0;
    text-transform: none;
    line-height: 1.5;
    font-weight: 500;
}

.weyel-contact-form-wrap .weyel-cf-label a,
.weyel-contact-form-wrap .form-check-label a,
.weyel-contact-form-wrap .weyel-cf-privacy-link {
    color: var(--weyel-cf-color-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1.5px;
    font-weight: 600;
}

.weyel-contact-form-wrap .weyel-cf-label a:hover,
.weyel-contact-form-wrap .weyel-cf-label a:focus,
.weyel-contact-form-wrap .form-check-label a:hover,
.weyel-contact-form-wrap .form-check-label a:focus,
.weyel-contact-form-wrap .weyel-cf-privacy-link:hover,
.weyel-contact-form-wrap .weyel-cf-privacy-link:focus {
    color: var(--weyel-cf-color-accent);
}

.weyel-cf-control {
    display: block;
    width: 100%;
    border: 1px solid var(--weyel-cf-color-border);
    border-radius: calc(var(--weyel-cf-radius) - 4px);
    padding: 0.675rem 0.8rem;
    line-height: 1.45;
    color: var(--weyel-cf-color-text);
    background: var(--weyel-cf-color-surface);
    transition: border-color var(--weyel-cf-transition), box-shadow var(--weyel-cf-transition);
}

.weyel-cf-control:focus {
    outline: none;
    border-color: var(--weyel-cf-color-primary);
    box-shadow: 0 0 0 3px rgba(7, 104, 177, 0.16);
}

.weyel-cf-field-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.weyel-cf-checkbox {
    margin-top: 0.2rem;
    accent-color: var(--weyel-cf-color-primary);
}

.weyel-cf-required {
    color: var(--weyel-cf-color-required);
    margin-left: 0.25rem;
}

.weyel-cf-actions {
    margin-top: 1rem;
}

.weyel-cf-trap {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.weyel-contact-form-wrap form button[type="submit"],
.weyel-contact-form-wrap.weyel-cf-bootstrap .btn-primary {
    display: inline-block;
    border: 1px solid transparent;
    border-radius: var(--weyel-cf-radius);
    background: linear-gradient(135deg, var(--weyel-cf-color-primary) 0%, var(--weyel-cf-color-primary-dark) 100%);
    color: #fff;
    font-family: var(--weyel-cf-font-family);
    font-weight: 600;
    line-height: 1.2;
    padding: 0.75rem 1.35rem;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(7, 104, 177, 0.25);
    transition: background var(--weyel-cf-transition), transform var(--weyel-cf-transition), box-shadow var(--weyel-cf-transition);
}

.weyel-contact-form-wrap form button[type="submit"]:hover,
.weyel-contact-form-wrap form button[type="submit"]:focus,
.weyel-contact-form-wrap.weyel-cf-bootstrap .btn-primary:hover,
.weyel-contact-form-wrap.weyel-cf-bootstrap .btn-primary:focus {
    background: linear-gradient(135deg, var(--weyel-cf-color-primary-dark) 0%, #001f47 100%);
    box-shadow: 0 14px 28px rgba(7, 104, 177, 0.3);
    transform: translateY(-1px);
    color: #fff;
}

.weyel-contact-form-wrap.weyel-cf-bootstrap .form-label {
    color: var(--weyel-cf-color-primary-dark);
    font-weight: 600;
}

.weyel-contact-form-wrap.weyel-cf-bootstrap .form-label {
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.weyel-contact-form-wrap.weyel-cf-bootstrap .form-check-input {
    border-color: var(--weyel-cf-color-border);
}

.weyel-contact-form-wrap.weyel-cf-bootstrap .form-check-input:checked {
    background-color: var(--weyel-cf-color-primary);
    border-color: var(--weyel-cf-color-primary);
}

.weyel-contact-form-wrap.weyel-cf-bootstrap .mb-3 {
    margin-bottom: 1rem !important;
}

.weyel-contact-form-wrap .form-control,
.weyel-contact-form-wrap .form-select {
    border-color: var(--weyel-cf-color-border);
    border-radius: calc(var(--weyel-cf-radius) - 4px);
    border-width: 1px;
    color: var(--weyel-cf-color-text);
    font-family: var(--weyel-cf-font-family);
    padding: 0.68rem 0.84rem;
    transition: border-color var(--weyel-cf-transition), box-shadow var(--weyel-cf-transition), background-color var(--weyel-cf-transition);
}

.weyel-contact-form-wrap .form-control::placeholder {
    color: var(--weyel-cf-color-text-muted);
    opacity: 0.8;
}

.weyel-contact-form-wrap.weyel-cf-bootstrap .form-control,
.weyel-contact-form-wrap.weyel-cf-bootstrap .form-select {
    border-color: #cad9e8;
    background-color: #fff;
}

.weyel-contact-form-wrap.weyel-cf-bootstrap .form-control:hover,
.weyel-contact-form-wrap.weyel-cf-bootstrap .form-select:hover {
    border-color: #9bb9d8;
}

.weyel-contact-form-wrap .form-control:focus,
.weyel-contact-form-wrap .form-select:focus {
    border-color: var(--weyel-cf-color-primary);
    box-shadow: 0 0 0 3px rgba(7, 104, 177, 0.16);
}

@media (max-width: 576px) {
    .weyel-contact-form-wrap form button[type="submit"],
    .weyel-contact-form-wrap.weyel-cf-bootstrap .btn-primary {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .weyel-contact-form-wrap * {
        transition: none !important;
    }
}
