/* ==========================================================================
   Public shell · public-shell.css
   Header (nav), footer, botón de tema y reset base compartidos por la landing
   y las páginas públicas (pricing, legales, auth, transaccionales).
   Consume tokens de design-system.css. Clases `lp-` (mismas que la landing).
   ========================================================================== */

/* Reset base de especificidad 0 (solo páginas con body.nx-page) */
:where(.nx-page) *, :where(.nx-page) *::before, :where(.nx-page) *::after { box-sizing: border-box; margin: 0; padding: 0; }
:where(.nx-page) a { color: inherit; text-decoration: none; }
body.nx-page {
    font-family: var(--nx-font-sans);
    background: var(--nx-bg);
    color: var(--nx-text);
    line-height: var(--nx-lh-body);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}
.nx-page [hidden], .lp [hidden] { display: none !important; }

/* El wordmark del logo es claro: en tema claro se invierte conservando el tono */
:root[data-theme="light"] .lp-logo-img { filter: invert(1) hue-rotate(180deg) saturate(1.3); }

/* ── NAV ────────────────────────────────────────────────────────────────── */
.lp-nav {
    position: sticky; top: 0; z-index: 100;
    background: var(--nx-nav-bg);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--nx-border);
}
.lp-nav__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 64px; }
.lp-nav__logo { display: inline-flex; align-items: center; flex-shrink: 0; transition: transform var(--nx-dur) var(--nx-ease); }
.lp-nav__logo:hover { transform: scale(1.03); }
.lp-nav__links { display: none; align-items: center; gap: 1.35rem; white-space: nowrap; font-size: var(--nx-fs-sm); font-weight: 500; color: var(--nx-text-2); }
.lp-nav__links a { display: inline-flex; align-items: center; gap: 0.4rem; transition: color var(--nx-dur); }
.lp-nav__links a:hover { color: var(--nx-cyan-text); }
.lp-nav__links a.is-daily { color: var(--nx-yellow-text); }
.lp-nav__actions { display: flex; align-items: center; gap: 0.5rem; }
.lp-nav__login { display: none; text-transform: uppercase; letter-spacing: 0.06em; font-size: var(--nx-fs-xs); }
.lp-theme-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; border-radius: var(--nx-r-md);
    background: transparent; border: 1px solid var(--nx-border);
    color: var(--nx-muted); cursor: pointer; font-size: 0.85rem;
    transition: color var(--nx-dur), border-color var(--nx-dur);
}
.lp-theme-btn:hover { color: var(--nx-text-strong); border-color: var(--nx-border-strong); }
.lp-theme-btn .fa-moon { display: none; }
:root[data-theme="light"] .lp-theme-btn .fa-sun  { display: none; }
:root[data-theme="light"] .lp-theme-btn .fa-moon { display: inline-block; }
@media (min-width: 480px) { .lp-nav__login { display: inline-flex; } }
@media (min-width: 1180px) { .lp-nav__links { display: flex; } }
@media (max-width: 380px) { .lp-nav__actions .nx-btn--primary { padding-inline: 0.75rem; } }


/* ── FOOTER ─────────────────────────────────────────────────────────────── */
.lp-footer { background: var(--nx-bg-deep); border-top: 1px solid var(--nx-border); padding: 3.5rem 0 1.5rem; font-size: var(--nx-fs-xs); color: var(--nx-muted); }
.lp-footer__grid { display: grid; gap: 2.5rem; padding-bottom: 3rem; border-bottom: 1px solid var(--nx-border); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .lp-footer__grid { grid-template-columns: 2fr 1fr 1fr; } }
.lp-footer__tagline { max-width: 24rem; margin-top: 0.75rem; line-height: var(--nx-lh-body); }
.lp-footer__social { display: flex; gap: 0.75rem; margin-top: 1.25rem; }
.lp-footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: var(--nx-r-md); border: 1px solid var(--nx-border); color: var(--nx-muted); transition: color var(--nx-dur), border-color var(--nx-dur); }
.lp-footer__social a:hover { color: var(--nx-text-strong); border-color: var(--nx-border-strong); }
.lp-footer__col h5 { margin-bottom: 0.75rem; font-size: var(--nx-fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--nx-text-strong); }
.lp-footer__col ul { display: flex; flex-direction: column; gap: 0.5rem; }
.lp-footer__col a { transition: color var(--nx-dur); }
.lp-footer__col a:hover { color: var(--nx-text-strong); }
.lp-footer__bottom { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 0.75rem; padding-top: 1.5rem; font-size: var(--nx-fs-2xs); color: var(--nx-faint); text-align: center; }
@media (min-width: 640px) { .lp-footer__bottom { flex-direction: row; text-align: left; } }


.lp-nav__links ul, ul.lp-nav__links { list-style: none; }
.lp-footer ul { list-style: none; }

/* Botón de tema flotante (páginas sin header) */
.nx-theme-float { position: fixed; top: 16px; right: 16px; z-index: 200; background: var(--nx-glass); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
