/**
 * Oniros SPA — tema claro con contraste accesible (WCAG AA)
 */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

body,
#root {
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
    background: linear-gradient(155deg, #eef6fc 0%, #e8f5f0 42%, #f6fafc 100%) !important;
    background-attachment: fixed;
    color: #143a5c !important;
}

/* ——— Fondos oscuros → claros ——— */
.bg-\[\#0a0a0c\],
.bg-\[\#070b14\],
.bg-\[\#0a0f1d\],
.bg-\[\#050507\],
.bg-\[\#111116\] {
    background-color: #ffffff !important;
    box-shadow: 0 8px 28px rgba(20, 58, 80, 0.09) !important;
}

.from-\[\#0a0a0c\],
.from-\[\#1a237e\] {
    --tw-gradient-from: #eef6fc !important;
}

.to-\[\#311b92\] {
    --tw-gradient-to: #e8f5f0 !important;
}

.bg-slate-900,
.bg-slate-950,
.bg-gray-900,
.bg-\[\#0f172a\] {
    background-color: #ffffff !important;
}

.bg-slate-900\/80,
.bg-slate-900\/50,
.bg-black\/80,
.bg-black\/90 {
    background-color: rgba(255, 255, 255, 0.96) !important;
    backdrop-filter: blur(8px);
}

.bg-white\/5,
.bg-white\/\[0\.02\] {
    background-color: #ffffff !important;
    box-shadow: 0 4px 20px rgba(20, 58, 80, 0.08) !important;
}

.bg-indigo-600\/5,
.bg-indigo-600\/10 {
    background-color: #e8f5f0 !important;
}

.bg-blue-500\/5,
.bg-purple-500\/5,
.bg-orange-500\/5 {
    background-color: #ffffff !important;
    box-shadow: 0 4px 18px rgba(20, 58, 80, 0.07) !important;
}

.bg-indigo-600\/10.rounded-2xl {
    background-color: #eef6fc !important;
}

/* ——— Bordes visibles en tarjetas y botones ——— */
.border-slate-800,
.border-slate-700 {
    border-color: rgba(43, 110, 168, 0.22) !important;
}

.border-white\/5,
.border-white\/10 {
    border-color: rgba(43, 110, 168, 0.28) !important;
    border-width: 1px !important;
}

.border-blue-500\/20,
.border-purple-500\/20,
.border-orange-500\/20 {
    border-color: rgba(43, 110, 168, 0.32) !important;
    border-width: 1px !important;
}

.border-\[\#0a0a0c\] {
    border-color: #ffffff !important;
}

.hover\:border-white\/30:hover,
.hover\:border-indigo-500\/30:hover {
    border-color: rgba(43, 110, 168, 0.5) !important;
}

.hover\:bg-indigo-500\/5:hover {
    background-color: #eef6fc !important;
}

/* ——— Texto: jerarquía con buen contraste ——— */
.text-white {
    color: #143a5c !important;
}

.text-slate-300 {
    color: #2a4a62 !important;
}

.text-slate-400,
.text-slate-500,
.text-gray-400 {
    color: #3d5a72 !important;
}

.text-indigo-200,
.text-indigo-300,
.text-violet-200 {
    color: #1f5a8f !important;
}

.text-indigo-400,
.text-indigo-500 {
    color: #2b6ea8 !important;
}

/* Título hero con gradiente — evitar texto invisible */
.bg-clip-text,
.text-transparent.bg-clip-text,
.bg-clip-text.text-transparent,
span.text-transparent {
    background-image: linear-gradient(120deg, #164a72 0%, #1d6554 50%, #1f5a8f 100%) !important;
    background-size: 100% auto !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    color: #164a72 !important;
}

.from-indigo-400 {
    --tw-gradient-from: #164a72 !important;
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}

.to-purple-400 {
    --tw-gradient-to: #247a66 !important;
}

/* Texto blanco SOLO en fondos de color */
.bg-indigo-600,
.bg-indigo-600.text-white,
.bg-indigo-600 .text-white,
.bg-violet-600,
.bg-violet-600 .text-white,
.bg-blue-600,
.bg-blue-600 .text-white,
button.bg-indigo-600,
a.bg-indigo-600,
a[class*="bg-indigo-600"],
button[class*="bg-indigo-600"],
.rounded-full.bg-indigo-600,
.rounded-full.bg-indigo-600 .text-white,
.w-10.h-10.bg-indigo-600,
.w-10.h-10.bg-indigo-600 .text-white {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Botones CTA y primarios */
.bg-indigo-600,
.bg-violet-600,
.bg-blue-600 {
    background-color: #2b6ea8 !important;
    border-color: #1f5a8f !important;
}

.hover\:bg-indigo-500:hover,
.hover\:bg-indigo-700:hover,
.hover\:bg-violet-700:hover {
    background-color: #1f5a8f !important;
}

[class*="bg-gradient-to-r"].bg-indigo-600,
button[class*="bg-indigo-600"],
a[class*="bg-indigo-600"] {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Botones outline del nav */
a.border-white\/10,
button.border-white\/10,
[class*="border-white/10"][class*="text-slate-400"],
[class*="border-white/10"].text-slate-400 {
    border-color: rgba(43, 110, 168, 0.38) !important;
    color: #164a72 !important;
    background-color: #ffffff !important;
    box-shadow: 0 2px 8px rgba(20, 58, 80, 0.06) !important;
}

a.border-white\/10:hover,
button.border-white\/10:hover,
.hover\:text-white:hover {
    color: #1f5a8f !important;
    border-color: rgba(43, 110, 168, 0.55) !important;
    background-color: #eef6fc !important;
}

/* Nav header */
header,
nav,
nav.fixed {
    background-color: rgba(255, 255, 255, 0.97) !important;
    border-color: rgba(43, 110, 168, 0.14) !important;
    box-shadow: 0 2px 16px rgba(20, 58, 80, 0.07) !important;
}

/* Tarjetas: servicios, testimonios, filosofía */
.group.p-8.rounded-3xl,
.relative.p-8.rounded-3xl,
.p-10.rounded-3xl.border,
.border-white\/10.rounded-3xl,
.backdrop-blur-xl {
    background: #ffffff !important;
    border: 1px solid rgba(43, 110, 168, 0.22) !important;
    box-shadow: 0 8px 28px rgba(20, 58, 80, 0.08) !important;
}

/* Subtítulos en secciones de color suave */
.bg-indigo-600\/5 .text-slate-400,
section .text-slate-400.font-light,
section .text-slate-400.italic {
    color: #2a4a62 !important;
}

/* Títulos serif en secciones */
h1.text-white,
h2.text-white,
h3.text-white,
.font-serif.text-white {
    color: #143a5c !important;
}

.group-hover\:text-indigo-400:hover,
.group:hover .group-hover\:text-indigo-400 {
    color: #2b6ea8 !important;
}

/* Botón primario del nav — Consultar Reporte (fondo sólido, texto blanco) */
nav a.bg-indigo-600,
header a.bg-indigo-600,
a.bg-indigo-600.border-indigo-500,
a.bg-indigo-600.rounded-full {
    background-color: #2b6ea8 !important;
    border-color: #1f5a8f !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(43, 110, 168, 0.28) !important;
}

nav a.bg-indigo-600:hover,
header a.bg-indigo-600:hover,
a.bg-indigo-600.border-indigo-500:hover {
    background-color: #1f5a8f !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Badge / pill del hero (solo etiquetas suaves, no botones sólidos) */
.border-indigo-500\/20.rounded-full,
.border-indigo-500\/30.rounded-full,
span.border-indigo-500\/20,
span.border-indigo-500\/30 {
    border-color: rgba(43, 110, 168, 0.35) !important;
    color: #1f5a8f !important;
    background-color: #eef6fc !important;
    -webkit-text-fill-color: #1f5a8f !important;
}

/* Mobile menu */
.fixed.inset-0.z-\[60\].bg-\[\#0a0a0c\] {
    background-color: #ffffff !important;
}

.lg\:hidden.text-white {
    color: #164a72 !important;
}

/* Orbes decorativos — atenuar */
.blur-\[120px\],
.blur-\[100px\],
.blur-3xl.opacity-30 {
    opacity: 0.1 !important;
}

/* Scroll indicator hero */
.border-white\/20.rounded-full {
    border-color: rgba(43, 110, 168, 0.35) !important;
}
