/*
 * Autor: Sergio Martinez de Unlockers Cloud | URL: https://1lockers.net
 * Marca v2 (oct 2026) — capa de estilo para las páginas públicas existentes (planes, software,
 * landings). Solo apariencia: no cambia marcado, formularios, carrito ni pagos.
 * Paleta: navy #0B1F3A · esmeralda #0B5A43 / #4CC79A · azul rey #1E40AF / #8EA8FF · oliva #5C6A2C · papel #F5F7F4.
 * Sin degradados, sin brillos; esquinas 4/8 px; Archivo semi-expandida + IBM Plex.
 */
:root {
    --green-dark: #0B5A43; --green-dark-hover: #0E6E52; --green-dark-light: #0B5A43;
    --blue-royal: #0B1F3A; --blue-royal-dark: #0B1F3A; --blue-royal-light: #1E40AF;
    --gray-light: #F5F7F4; --gray-medium: #D5DCD6; --text-dark: #0B1F3A;
    --visual-accent-green: #0B5A43; --visual-accent-green-light: #4CC79A;
    --visual-accent-blue: #0B1F3A; --visual-accent-blue-dark: #0A1524;
    --visual-overlay-dark: #0B1F3A; --visual-overlay-blue: #0B1F3A;
}
body { font-family: 'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif !important; color: #0B1F3A; -webkit-font-smoothing: antialiased; }
body.bg-gray-50, body.bg-white { background-color: #F5F7F4 !important; }

/* Titulares en Archivo semi-expandida (fuera de encabezado y pie) */
body :is(h1, h2, h3):not(.uc-header *):not(.uc-footer *) {
    font-family: 'Archivo', Arial, sans-serif !important; font-stretch: 112%; letter-spacing: -0.005em;
}
body h1:not(.uc-header *) { font-weight: 700 !important; }
body :is(h4, h5, h6, p, li, label, input, select, textarea, button, a, span, td, th):not(.uc-header *):not(.uc-footer *):not(.fa):not(.fas):not(.far):not(.fab):not([class*="fa-"]) {
    font-family: inherit;
}
.font-poppins, .font-montserrat, [style*="Poppins"], [style*="Montserrat"] { font-family: 'IBM Plex Sans', system-ui, sans-serif !important; }

/* Hero visual: fondo navy con retícula de puntos (en lugar de foto + degradado) */
.visual-hero { background-color: #0B1F3A !important; background-image: radial-gradient(#1C3150 1px, transparent 1px) !important; background-size: 24px 24px !important; }
.visual-hero__media, .visual-hero picture { display: none !important; }
.visual-hero__overlay { display: none !important; }
.visual-hero .hero-badge, .visual-hero [class*="rounded-full"][class*="border"] { border-radius: 2px !important; }
.visual-hero h1 { color: #F5F7F4 !important; }
.visual-hero :is(p, li) { color: #C9D2CE; }

/* Banners con foto (parallax): bloque de marca esmeralda */
.visual-banner, .visual-banner__bg { background-image: none !important; background-color: #0B5A43 !important; }
.visual-banner__overlay { display: none !important; }
.visual-banner__panel { background: transparent !important; border: 0 !important; box-shadow: none !important; backdrop-filter: none !important; }
.visual-banner__eyebrow { background: transparent !important; border-radius: 2px !important; }

/* Imágenes de apoyo: esquinas de la marca, sin brillos */
.visual-split__image-wrap { border-radius: 8px !important; box-shadow: none !important; }
.visual-split__image-wrap::before { display: none !important; }

/* Degradados → colores planos de la paleta */
:is(a, button)[class*="bg-gradient-to-"],
:is(a, button)[style*="linear-gradient"] {
    background-image: none !important; background-color: #1E40AF !important; color: #FFFFFF !important;
    border-color: #1E40AF !important; box-shadow: none !important; border-radius: 4px !important;
}
:is(a, button)[class*="bg-gradient-to-"]:hover,
:is(a, button)[style*="linear-gradient"]:hover { background-color: #17338C !important; transform: none !important; }
.visual-hero :is(a, button)[class*="bg-gradient-to-"] { background-color: #8EA8FF !important; color: #0A1524 !important; border-color: #8EA8FF !important; }
.visual-hero :is(a, button)[class*="bg-gradient-to-"]:hover { background-color: #B4C5FF !important; }
:not(a):not(button)[class*="bg-gradient-to-"][class*="-50"],
:not(a):not(button)[class*="bg-gradient-to-"][class*="-100"] { background-image: none !important; background-color: #F5F7F4 !important; }
:not(a):not(button)[class*="bg-gradient-to-"]:not([class*="-50"]):not([class*="-100"]):not([class*="from-black"]),
:not(a):not(button)[style*="linear-gradient"]:not(.uc-header *):not(.uc-footer *) {
    background-image: none !important; background-color: #0B1F3A !important;
}
[class*="bg-clip-text"], [class*="text-transparent"] {
    background: none !important; -webkit-text-fill-color: currentColor !important; color: #0B5A43 !important;
}
.hero-gradient { background: #0B1F3A !important; }

/* Acentos de color fuera de paleta → paleta */
:is(.text-purple-500, .text-purple-600, .text-purple-700, .text-pink-500, .text-pink-600, .text-fuchsia-600, .text-violet-600):not(.uc-header *) { color: #0B5A43 !important; }
:is(.text-indigo-500, .text-indigo-600, .text-indigo-700, .text-blue-500, .text-blue-600, .text-blue-700):not(.uc-header *):not(.uc-footer *):not(.visual-hero *):not(.text-white) { color: #1E40AF !important; }
:is(.text-green-500, .text-green-600, .text-emerald-500, .text-emerald-600, .text-teal-500, .text-teal-600):not(.uc-header *):not(.uc-footer *) { color: #0B5A43 !important; }
:is(.text-yellow-300, .text-yellow-400, .text-amber-300, .text-amber-400):not(.uc-header *) { color: #B5C26A !important; }
:is(.bg-purple-100, .bg-indigo-100, .bg-indigo-50, .bg-blue-100, .bg-blue-50, .bg-pink-100, .bg-orange-100):not(.uc-header *) { background-color: #E4EAFA !important; }
:is(.bg-green-100, .bg-emerald-100, .bg-teal-100, .bg-green-50, .bg-emerald-50):not(.uc-header *) { background-color: #E3F0EA !important; }
:is(.bg-green-500, .bg-green-600, .bg-emerald-500, .bg-emerald-600, .bg-teal-500, .bg-teal-600):not(.uc-header *):not(.uc-footer *) { background-color: #0B5A43 !important; }
:is(.bg-indigo-500, .bg-indigo-600, .bg-indigo-700, .bg-purple-600, .bg-blue-600):not(.uc-header *):not(.uc-footer *) { background-color: #1E40AF !important; }
:is(.border-indigo-500, .border-purple-500, .border-blue-500, .ring-indigo-500):not(.uc-header *) { border-color: #0B5A43 !important; --tw-ring-color: #0B5A43 !important; }
.bg-gray-50:not(.uc-header *) { background-color: #F5F7F4 !important; }
:is(.text-gray-900, .text-slate-900, .text-gray-800):not(.uc-header *):not(.uc-footer *):not(.uc-hero *) { color: #0B1F3A !important; }
:is(.text-gray-600, .text-gray-700, .text-slate-600):not(.uc-header *):not(.uc-footer *):not(.visual-hero *):not(.visual-banner *):not(.uc-hero *) { color: #4A5853 !important; }
:is(.border-gray-200, .border-gray-100, .border-slate-100, .border-slate-200):not(.uc-header *) { border-color: #D5DCD6 !important; }

/* Forma: esquinas casi rectas, jerarquía con filetes y no con sombras */
:is(.rounded-2xl, .rounded-3xl, .rounded-xl):not(.uc-header *):not(.uc-footer *) { border-radius: 8px !important; }
:is(a, button):is(.rounded-lg, .rounded-xl, .rounded-full, .rounded-md):not(.uc-header *):not(.uc-footer *):not([class*="w-1"]):not([class*="h-1"]) { border-radius: 4px !important; }
:is(.shadow-lg, .shadow-xl, .shadow-2xl, .shadow-md):not(.uc-header *):not(.uc-footer *):not([class*="fixed"]) { box-shadow: none !important; }
:is(.hover\:shadow-xl, .hover\:shadow-2xl, .hover\:shadow-lg):hover { box-shadow: none !important; }
.plan-card:hover, .enhanced-card:hover { transform: none !important; box-shadow: none !important; }
[class*="hover:-translate-y"]:hover, [class*="hover:scale-"]:hover { transform: none !important; }

/* Precios y cifras en IBM Plex Mono */
:is(.text-3xl, .text-4xl, .text-5xl):is(.font-bold, .font-extrabold, .font-black):not(h1):not(h2):not(h3):not(.uc-header *):not(.uc-footer *) {
    font-family: 'IBM Plex Mono', ui-monospace, monospace !important; font-weight: 500 !important; font-variant-numeric: tabular-nums; letter-spacing: -0.01em;
}

/* Controles de formulario */
:is(input:not([type="checkbox"]):not([type="radio"]), select, textarea):not(.uc-header *) { border-radius: 4px !important; }
:is(input, select, textarea):focus-visible { outline: 2px solid #1E40AF !important; outline-offset: 2px; box-shadow: none !important; }

/* Barras promocionales verdes del plan */
[class*="plan-promo"], .bg-green-600.text-white { background-color: #0B5A43 !important; background-image: none !important; }

@media (prefers-reduced-motion: reduce) {
    .fade-in, [data-scroll-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Tarjetas de precio (x-pricing-card-focus) */
.pricing-card-focus { --pricing-card-gradient-1: #0B5A43; --pricing-card-gradient-2: #0B5A43; --pricing-card-gradient-3: #0B5A43; --pricing-card-gradient-4: #0B5A43; }
.pricing-card-border-gradient { display: none !important; }
.pricing-card-glass { background: #FFFFFF !important; border: 1px solid #D5DCD6 !important; border-radius: 8px !important; box-shadow: none !important; backdrop-filter: none !important; }
.pricing-card-featured .pricing-card-glass { background: #FFFFFF !important; border: 2px solid #0B5A43 !important; box-shadow: inset 0 3px 0 #0B5A43 !important; }
.pricing-card-badge { background: #E3F0EA !important; color: #0B5A43 !important; border-radius: 2px !important; box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; }
.pricing-card-title { color: #0B1F3A !important; }
.pricing-card-value, .pricing-card-currency { font-family: 'IBM Plex Mono', ui-monospace, monospace !important; font-weight: 500 !important; color: #0B1F3A !important; font-variant-numeric: tabular-nums; }
.pricing-card-installments, .pricing-card-additional-header, .pricing-card-additional-item, .pricing-card-additional-icon { color: #1E40AF !important; }
.pricing-card-feature-icon, .pricing-card-trust-item i { color: #0B5A43 !important; }
.pricing-card-button { background: #FFFFFF !important; color: #1E40AF !important; border: 1px solid #7A8781 !important; border-radius: 4px !important; box-shadow: none !important; transform: none !important; }
.pricing-card-button::before { display: none !important; }
.pricing-card-button:hover { background: #E4EAFA !important; transform: none !important; box-shadow: none !important; }
.pricing-card-featured .pricing-card-button { background: #1E40AF !important; color: #FFFFFF !important; border-color: #1E40AF !important; }
.pricing-card-featured .pricing-card-button:hover { background: #17338C !important; }
.pricing-card-focus.is-focused .pricing-card-glass { transform: none !important; box-shadow: none !important; }
.pricing-card-focus:hover, .pricing-card-focus.is-focused { transform: none !important; }

/* Botones secundarios y textos azules dentro del hero navy */
.visual-hero :is(.text-blue-500, .text-blue-600, .text-blue-700, .text-indigo-600) { color: #8EA8FF !important; }
.visual-hero a[class*="border-white"], .visual-hero a[class*="border-2"]:not([class*="bg-"]) { border-width: 1px !important; border-color: #5E7391 !important; color: #E8EEEA !important; border-radius: 4px !important; }
.visual-hero a[class*="border-white"]:hover { background: #112036 !important; color: #FFFFFF !important; }
.visual-hero [class*="bg-white/"], .visual-hero .backdrop-blur-sm { background: #112036 !important; border-color: #24364F !important; backdrop-filter: none !important; }

/* Cabeceras planas con el azul antiguo (#003366 / #001F3F) → navy de la marca */
.bg-\[\#003366\], .bg-\[\#001F3F\], .bg-\[\#001f3f\] { background-color: #0B1F3A !important; background-image: radial-gradient(#1C3150 1px, transparent 1px) !important; background-size: 24px 24px !important; }
.text-\[\#003366\]:not(.uc-header *) { color: #0B1F3A !important; }

/* Avisos flotantes amarillos (oferta) → bloque de marca */
:is(.bg-yellow-400, .bg-yellow-500, .bg-amber-400, .bg-amber-500):not(.uc-header *) { background-color: #0B5A43 !important; background-image: none !important; color: #FFFFFF !important; }
:is(.bg-yellow-400, .bg-yellow-500, .bg-amber-400, .bg-amber-500):not(.uc-header *) * { color: #FFFFFF !important; }
