body {
    font-family: 'Lato', sans-serif;
    background: var(--color-bg, #F4F6F8);
}

.contact-card {
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #DCE3E8);
    border-radius: var(--radius-lg, 16px);
    box-shadow: var(--shadow-2, 0 4px 12px rgba(27,39,51,.08));
    padding: var(--sp-6, 32px);
    margin-top: var(--sp-5, 32px);
    margin-bottom: var(--sp-6, 48px);
}

h1, h2 {
    color: var(--color-ink, #1B2733);
    margin-bottom: var(--sp-4, 16px);
}

.contact-intro {
    color: var(--color-ink-2, #5A6B7B);
    margin-bottom: var(--sp-5, 32px);
    font-size: var(--fs-base, 1rem);
    line-height: 1.6;
}

label {
    color: var(--color-ink, #1B2733);
    font-weight: 600;
    margin-bottom: 6px;
}

.form-control {
    border-radius: var(--radius-md, 10px);
    border: 1px solid var(--color-border, #DCE3E8);
    padding: 12px 14px;
    box-shadow: none;
    transition: border-color var(--dur-fast, 150ms), box-shadow var(--dur-fast, 150ms);
}

.form-control:focus {
    border-color: var(--color-primary, #1E8A96);
    box-shadow: var(--focus-ring, 0 0 0 3px rgba(30,138,150,.35));
    outline: none;
}

.has-error .form-control {
    border-color: var(--color-danger, #D64545);
}

.has-success .form-control {
    border-color: var(--color-success, #1FA971);
}

.help-block.with-errors {
    color: var(--color-danger, #D64545);
    font-size: 13px;
    margin-top: 4px;
    min-height: 1em;
}

.btn-send {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: var(--color-primary, #1E8A96);
    border: none;
    color: #fff;
    padding: 12px 28px;
    border-radius: var(--radius-md, 10px);
    box-shadow: var(--shadow-1, 0 1px 3px rgba(27,39,51,.08));
    transition: transform var(--dur-base, 250ms), background var(--dur-base, 250ms), box-shadow var(--dur-base, 250ms);
}

.btn-send:hover {
    background: var(--color-primary-hover, #15727C);
    transform: translateY(-2px);
    box-shadow: var(--shadow-2, 0 4px 12px rgba(27,39,51,.08));
}

.btn-send:disabled {
    opacity: 0.6;
    cursor: default;
    transform: none;
}

.captcha-row {
    display: flex;
    align-items: stretch;
    gap: 8px;
}

.captcha-row .captcha-question {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 90px;
    padding: 0 14px;
    background: var(--color-bg, #F4F6F8);
    border: 1px solid var(--color-border, #DCE3E8);
    border-radius: var(--radius-md, 10px);
    color: var(--color-ink, #1B2733);
    font-weight: 600;
    white-space: nowrap;
}

.captcha-row #form_captcha {
    flex: 1 1 auto;
    max-width: 160px;
}

.captcha-row .captcha-reload {
    flex: 0 0 auto;
    padding: 0 14px;
    font-size: 20px;
    line-height: 1;
    color: var(--color-primary, #1E8A96);
    background: transparent;
    border: 1px solid var(--color-border, #DCE3E8);
    border-radius: var(--radius-md, 10px);
}

.captcha-row .captcha-reload:hover {
    background: var(--color-bg, #F4F6F8);
    border-color: var(--color-primary, #1E8A96);
}

.messages .alert {
    margin-top: 4px;
}