/*
 * tqs-contacto.css · estilos isolados para o [tqs_contacto_form].
 * Prefixo .tqs-contacto-* · usa as variáveis do tema com fallback, tal como tqs-search.css.
 */
.tqs-contacto {
    --tqs-orange: var(--orange, #ED8B00);
    --tqs-orange-dark: var(--orange-dark, #C66A00);
    --tqs-ink: var(--ink, #2D2926);
    --tqs-muted: var(--ink-60, #615B54);
    --tqs-line: var(--line, #E5E1DA);
    --tqs-surface: var(--surface, #F7F5F1);
    --tqs-white: #FFFFFF;
    --tqs-radius: 8px;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: var(--tqs-ink);
    max-width: 720px;
    margin: 0 auto;
}

.tqs-contacto-title { font-size: 26px; font-weight: 700; letter-spacing: -0.02em; margin: 0 0 20px; }

.tqs-contacto-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.tqs-contacto-form { display: flex; flex-direction: column; gap: 18px; }

.tqs-contacto-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 640px) { .tqs-contacto-row { grid-template-columns: 1fr; } }

.tqs-contacto-field { display: flex; flex-direction: column; gap: 7px; }
.tqs-contacto-field > span { font-family: inherit; font-weight: 600; font-size: 13.5px; }
.tqs-contacto-field em { color: var(--tqs-orange); font-style: normal; }

.tqs-contacto-field input,
.tqs-contacto-field select,
.tqs-contacto-field textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid var(--tqs-line);
    border-radius: var(--tqs-radius);
    font: inherit;
    font-size: 15px;
    color: var(--tqs-ink);
    background: var(--tqs-white);
    outline: none;
    transition: border-color 0.15s;
}
.tqs-contacto-field input:focus,
.tqs-contacto-field select:focus,
.tqs-contacto-field textarea:focus { border-color: var(--tqs-orange); }
.tqs-contacto-field textarea { resize: vertical; min-height: 120px; }
.tqs-contacto-field .has-error { border-color: #B00020; }

.tqs-contacto-err { color: #B00020; font-size: 12.5px; min-height: 1em; }

.tqs-contacto-check { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; color: var(--tqs-muted); line-height: 1.5; }
.tqs-contacto-check input { margin-top: 3px; flex: none; }
.tqs-contacto-check a { color: var(--tqs-orange-dark); }
.tqs-contacto-check em { color: var(--tqs-orange); font-style: normal; }

.tqs-contacto-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 4px; }
.tqs-contacto-submit {
    font-family: inherit; font-weight: 600; font-size: 15px;
    padding: 13px 28px; border: none; border-radius: var(--tqs-radius);
    background: var(--tqs-orange); color: #fff; cursor: pointer;
    transition: background 0.15s, transform 0.15s;
}
.tqs-contacto-submit:hover { background: var(--tqs-orange-dark); transform: translateY(-1px); }
.tqs-contacto-submit:disabled { opacity: 0.6; cursor: default; transform: none; }
.tqs-contacto-hint { font-size: 13px; color: var(--tqs-muted); }
.tqs-contacto-hint a { color: var(--tqs-orange-dark); font-weight: 600; }

.tqs-contacto-status { min-height: 22px; font-size: 14px; font-weight: 500; }
.tqs-contacto-status.is-loading { color: var(--tqs-muted); }
.tqs-contacto-status.is-success { color: #1f7a4d; font-weight: 600; }
.tqs-contacto-status.is-error { color: #B00020; font-weight: 600; }

/* ============ Sombra do botão · coerência com os botões Elementor ============ */
.tqs-contacto-submit {
    box-shadow: 0 10px 8px -5px rgba(0, 0, 0, 0.35);
    transition: background 0.15s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.tqs-contacto-submit:hover {
    box-shadow: 0 12px 8px -5px rgba(0, 0, 0, 0.5);
    transform: translateY(-3px);
}
.tqs-contacto-submit:focus-visible {
    outline: 2px solid var(--ink, #1A1A1A);
    outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
    .tqs-contacto-submit { transition: none; }
    .tqs-contacto-submit:hover { transform: none; }
}
