:root {
    --ink: #0b1220;
    --muted: #6b7280;
    --accent: #0d6efd;

    /* DEFAULT (moderno) */
    --bg-main: #ffffff;
    --bg-soft: #f8fafc;
    --text-main: #0b1220;
    --text-muted: #6b7280;

    --accent-main: #0d6efd;
    --accent-soft: rgba(13, 110, 253, .12);

    --card-bg: #ffffff;
    --border-soft: rgba(0, 0, 0, .08);
}

/* =========================
   BASE
========================= */
body {
    background: var(--bg-main);
    color: var(--text-main);
}

/* Normalizar headings global */
h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--text-main);
    font-weight: 700;
    letter-spacing: .2px;
}

/* Ajuste especial para h5 (más elegante) */
h5 {
    font-weight: 600;
    opacity: .95;
}

/* Utilidades Bootstrap */
.bg-light {
    background: var(--bg-soft) !important;
}

.text-secondary {
    color: var(--text-muted) !important;
}

.card {
    background: var(--card-bg);
    border-color: var(--border-soft);
}

a {
    color: var(--accent-main);
}


/* =========================
   TOP BAR
========================= */
.topbar {
    background: linear-gradient(90deg, #0b1220 0%, #111827 100%);
}

.toplink {
    color: rgba(255, 255, 255, .85);
    text-decoration: none;
    font-size: .9rem;
}

.toplink:hover {
    color: #fff;
    text-decoration: underline;
}

/* =========================
   NAVBAR (DEFAULT)
========================= */
.navbar-brand {
    font-weight: 800;
    color: var(--text-main) !important;
}

body:not(.theme-legal-soft):not(.theme-legal-light) .navbar {
    background: #ffffff !important;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

/* nav links default */
body:not(.theme-legal-soft):not(.theme-legal-light) .nav-link {
    color: rgba(11, 18, 32, .72) !important;
}

body:not(.theme-legal-soft):not(.theme-legal-light) .nav-link:hover {
    color: rgba(11, 18, 32, .92) !important;
}

body:not(.theme-legal-soft):not(.theme-legal-light) #contacto h2 {
    color: #FFF !important;
}

/* =========================
   HERO (DEFAULT)
========================= */
.hero {
    background:
        radial-gradient(1200px 500px at 20% 10%, rgba(13, 110, 253, .10), transparent 60%),
        radial-gradient(900px 400px at 80% 20%, rgba(16, 185, 129, .10), transparent 55%),
        #fff;
}

/* =========================
   COMPONENTS DEFAULT
========================= */
.iconbadge {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: var(--accent-soft);
    color: var(--accent-main);
    font-size: 18px;
}

.stepnum {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: var(--accent-soft);
    color: var(--accent-main);
    font-weight: 700;
    margin-bottom: 10px;
}

.ctaCard {
    background: linear-gradient(135deg, rgba(16, 185, 129, .12), rgba(13, 110, 253, .10));
}

/* CTA button (usa dorado en temas legales; en default queda azul) */
.btn-dark {
    background: var(--accent-main);
    border-color: var(--accent-main);
    color: #fff;
    font-weight: 700;
}

.btn-dark:hover {
    filter: brightness(1.05);
}

/* WhatsApp float */
.fab-whats {
    position: fixed;
    right: 18px;
    bottom: 18px;
    width: 56px;
    height: 56px;
    border-radius: 18px;
    background: #25D366;
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 28px;
    text-decoration: none;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .18);
    z-index: 9999;
}

.fab-whats:hover {
    filter: brightness(1.05);
    color: #fff;
}

/* =========================================================
   THEME 2: LEGAL SOFT DARK (premium suave, NO cargado)
   class: theme-legal-soft
========================================================= */
body.theme-legal-soft {
    --bg-main: #0f1117;
    /* charcoal */
    --bg-soft: #141824;

    --text-main: #f3f4f6;
    --text-muted: #a7afbf;

    --accent-main: #cfae70;
    /* champagne gold */
    --accent-soft: rgba(207, 174, 112, .14);

    --card-bg: #151a26;
    --border-soft: rgba(255, 255, 255, .10);
}

/* Navbar soft dark */
body.theme-legal-soft .navbar {
    background: #0f1117 !important;
    border-bottom: 1px solid rgba(207, 174, 112, .22);
}

body.theme-legal-soft .navbar-brand {
    color: #ffffff !important;
    letter-spacing: .4px;
}

body.theme-legal-soft .nav-link {
    color: rgba(255, 255, 255, .82) !important;
}

body.theme-legal-soft .nav-link:hover {
    color: var(--accent-main) !important;
}

/* Hero soft dark (respirable) */
body.theme-legal-soft .hero {
    background:
        radial-gradient(900px 420px at 20% 15%, rgba(207, 174, 112, .16), transparent 56%),
        radial-gradient(900px 500px at 80% 20%, rgba(255, 255, 255, .04), transparent 62%),
        var(--bg-main);
}

/* Headings soft dark */
body.theme-legal-soft h1,
body.theme-legal-soft h2,
body.theme-legal-soft h3,
body.theme-legal-soft h4,
body.theme-legal-soft h5,
body.theme-legal-soft h6,
body.theme-legal-soft label {
    color: #f3f4f6;
}

/* h5 elegante legal */
body.theme-legal-soft h5 {
    font-weight: 500;
    color: rgba(255, 255, 255, .88);
    text-transform: uppercase;
    font-size: .95rem;
    letter-spacing: .08em;
}

/* Botón “oscuro” en legal: dorado con texto negro */
body.theme-legal-soft .btn-dark {
    color: #0b0b0f;
}

/* Botón outline visible en temas oscuros */
body.theme-legal-soft .btn-outline-dark,
body.theme-legal-soft .btn-outline-secondary {
    color: rgba(255, 255, 255, .92) !important;
    border-color: rgba(255, 255, 255, .22) !important;
    background: rgba(255, 255, 255, .06) !important;
}

body.theme-legal-soft .btn-outline-dark:hover,
body.theme-legal-soft .btn-outline-secondary:hover {
    background: rgba(255, 255, 255, .10) !important;
}

/* =========================================================
   THEME 3: LEGAL LIGHT (casi claro, navbar negro/dorado)
   class: theme-legal-light
========================================================= */
body.theme-legal-light {
    --bg-main: #fbfbfc;
    --bg-soft: #f3f4f6;

    --text-main: #0b0f19;
    --text-muted: #4b5563;

    --accent-main: #cfae70;
    --accent-soft: rgba(207, 174, 112, .12);

    --card-bg: #ffffff;
    --border-soft: rgba(0, 0, 0, .10);
}

/* Navbar en legal light: negro */
body.theme-legal-light .navbar {
    background: #0b0b0f !important;
    border-bottom: 1px solid rgba(207, 174, 112, .25);
}

body.theme-legal-light .navbar-brand {
    color: #ffffff !important;
    letter-spacing: .4px;
}

body.theme-legal-light .nav-link {
    color: rgba(255, 255, 255, .82) !important;
}

body.theme-legal-light .nav-link:hover {
    color: var(--accent-main) !important;
}

/* Hero legal light (no oscurece toda la página) */
body.theme-legal-light .hero {
    background:
        radial-gradient(1100px 480px at 20% 10%, rgba(207, 174, 112, .16), transparent 58%),
        radial-gradient(900px 450px at 80% 20%, rgba(0, 0, 0, .03), transparent 60%),
        var(--bg-main);
}

/* Headings legal light (sobrios) */
body.theme-legal-light h1,
body.theme-legal-light h2,
body.theme-legal-light h3,
body.theme-legal-light h4,
body.theme-legal-light h5,
body.theme-legal-light h6 {
    color: var(--text-main);
    font-weight: 700;
}

/* h5 legal light (no tan pesado) */
body.theme-legal-light h5 {
    font-weight: 600;
    text-transform: uppercase;
    font-size: .95rem;
    letter-spacing: .08em;
}

/* Botón en legal light: dorado con texto negro */
body.theme-legal-light .btn-dark {
    color: #0b0b0f;
}

body.theme-legal-light #contacto h2 {
    color: #FFF !important;
}