/* Estilos partilhados por todas as páginas (complementam o Tailwind) */

/* Foco visível e consistente para navegação por teclado */
:focus-visible {
    outline: 3px solid #003da5;
    outline-offset: 3px;
    border-radius: 0.75rem;
}

/* O atributo hidden ganha sempre a classes de display (.flex, .btn, ...) */
[hidden] { display: none !important; }

html, body { overflow-x: clip; }
body { -webkit-tap-highlight-color: transparent; }
h1, h2, h3 { overflow-wrap: break-word; }

/* Botões: altura mínima de 56px (acima dos 48px exigidos para toque) */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    min-height: 3.5rem;
    padding: 0 1.5rem;
    border-radius: 0.875rem;
    font-weight: 700;
    font-size: 1.0625rem;
    line-height: 1.2;
    text-align: center;
    transition: transform .15s ease, filter .15s ease, background-color .15s ease;
    cursor: pointer;
}
.btn:hover { filter: brightness(0.92); }
.btn:active { transform: scale(0.97); }
.btn:disabled { opacity: .45; cursor: not-allowed; filter: none; transform: none; }
.btn-accent { background: #e60e16; color: #fff; box-shadow: 0 10px 24px -12px rgba(230, 14, 22, .7); }
.btn-primary { background: #003da5; color: #fff; box-shadow: 0 10px 24px -12px rgba(0, 61, 165, .7); }
.btn-outline { background: #fff; color: #003da5; border: 2px solid #003da5; }
.btn-outline:hover { filter: none; background: rgba(0, 61, 165, .06); }
/* Verde WhatsApp com texto escuro: branco sobre #25D366 não tem contraste suficiente */
.btn-whatsapp { background: #25D366; color: #18181b; }
.btn-sm { min-height: 3rem; padding: 0 1rem; font-size: 1rem; }

/* Campos de formulário grandes e legíveis */
.field {
    width: 100%;
    min-height: 3.5rem;
    padding: 0 1rem;
    border: 2px solid #e4e4e7;
    border-radius: 0.75rem;
    background: #fff;
    font-size: 1.0625rem;
    color: #18181b;
}
textarea.field { padding: 0.875rem 1rem; line-height: 1.5; }
.field:focus { outline: none; border-color: #003da5; box-shadow: 0 0 0 3px rgba(0, 61, 165, .15); }
.field[aria-invalid="true"] { border-color: #e60e16; }

/* Cartões de escolha (rádios) e filtros (botões com aria-pressed) */
.choice input:checked + span,
.chip[aria-pressed="true"] {
    border-color: #003da5;
    background: #003da5;
    color: #fff;
}
.choice input:focus-visible + span { outline: 3px solid #003da5; outline-offset: 3px; }

/* Barra fixa inferior respeita a barra de gestos do iPhone */
.sticky-cta { padding-bottom: calc(0.75rem + env(safe-area-inset-bottom)); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
