/* ==========================================================================
   Nineteen · lenguaje visual v2 (prefijo nx-)
   Base clara, momentos oscuros contados, una sola anatomía de tarjeta.
   Muestra viva: /muestra.php. Ver docs/ACUERDOS.md.
   ========================================================================== */

:root {
    /* Marca (muestreada del logo) */
    --nx-pink: #e0217e;
    --nx-purple: #60338b;
    --nx-blue: #2e4999;
    --nx-grad: linear-gradient(135deg, var(--nx-pink) 0%, var(--nx-purple) 55%, var(--nx-blue) 100%);

    /* Neutros */
    --nx-ink: #1d1a2c;
    --nx-ink-2: #3b3750;
    --nx-muted: #6a6680;
    --nx-line: #e6e3ef;
    --nx-line-2: #d6d2e3;
    --nx-bg: #ffffff;
    --nx-surface: #f6f5fa;
    --nx-tint: #f1edf8;
    --nx-night: #15132a;

    /* Estados */
    --nx-ok: #13804b;   --nx-ok-bg: #e7f6ee;
    --nx-info: #2e4999; --nx-info-bg: #e9eefa;
    --nx-warn: #9a5b00; --nx-warn-bg: #fdf3e1;
    --nx-err: #c02646;  --nx-err-bg: #fdebef;

    /* Forma */
    --nx-r-sm: 10px;
    --nx-r: 16px;
    --nx-r-lg: 22px;
    --nx-shadow: 0 1px 2px rgba(29, 26, 44, .04), 0 6px 20px rgba(29, 26, 44, .05);
    --nx-shadow-lift: 0 2px 4px rgba(29, 26, 44, .05), 0 16px 36px rgba(29, 26, 44, .09);
    --nx-ease: cubic-bezier(.2, .7, .2, 1);

    --nx-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --nx-display: "Poppins", var(--nx-font);

    --bs-body-font-family: var(--nx-font);
    --bs-body-color: var(--nx-ink);
    --bs-primary: var(--nx-purple);
    --bs-primary-rgb: 96, 51, 139;
    --bs-link-color: var(--nx-purple);
    --bs-link-color-rgb: 96, 51, 139;
    --bs-link-hover-color: var(--nx-pink);
    --bs-link-hover-color-rgb: 224, 33, 126;
    --bs-border-color: var(--nx-line);
}

body { background: var(--nx-bg); color: var(--nx-ink); -webkit-font-smoothing: antialiased; }
h1, h2, h3, .nx-display { font-family: var(--nx-display); font-weight: 700; letter-spacing: -.02em; line-height: 1.12; color: var(--nx-ink); }
h4, h5, h6 { font-weight: 700; letter-spacing: -.01em; }
.nx-num, .num { font-variant-numeric: tabular-nums; }
.nx-muted { color: var(--nx-muted); }
:focus-visible { outline: 3px solid rgba(96, 51, 139, .45); outline-offset: 2px; }

/* ---------- Secciones ---------- */
.nx-section { padding: 4.25rem 0; }
.nx-section.is-surface { background: var(--nx-surface); }
.nx-section.is-night { background: var(--nx-night); color: #fff; }
@media (max-width: 767.98px) {
    .nx-section { padding: 3rem 0; }
    .container { --bs-gutter-x: 2rem; }
}

/* Encabezado: etiqueta numerada + título + bajada; acción a la derecha */
.nx-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2.5rem; }
.nx-head-text { max-width: 640px; }
.nx-head h2 { font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.5rem); margin: .85rem 0 .6rem; }
.nx-head p { color: var(--nx-muted); font-size: 1.05rem; margin: 0; }
.nx-head.is-center { flex-direction: column; align-items: center; text-align: center; }
.nx-head.is-center .nx-head-text { margin-inline: auto; }
@media (max-width: 767.98px) {
    .nx-head { flex-direction: column; align-items: flex-start; margin-bottom: 1.75rem; }
}
.is-night .nx-head h2 { color: #fff; }
.is-night .nx-head p { color: rgba(255, 255, 255, .72); }

.nx-eyebrow { display: inline-flex; align-items: center; gap: .5rem; padding: .3rem .75rem; border-radius: 999px; background: var(--nx-tint); color: var(--nx-purple); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.nx-eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--nx-grad); }
.nx-eyebrow b { font-weight: 800; color: #b3135f; }
.nx-eyebrow b::after { content: "·"; margin-left: .5rem; color: var(--nx-muted); font-weight: 700; }
.nx-eyebrow:has(> i)::before { display: none; }
.nx-eyebrow > i { font-size: .85rem; }
.is-night .nx-eyebrow, .nx-cta .nx-eyebrow { background: rgba(255, 255, 255, .08); color: rgba(255, 255, 255, .85); }

.nx-accent { background: var(--nx-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------- Botones (3 variantes, iguales al sitio actual) ---------- */
.btn { --bs-btn-border-radius: 999px; --bs-btn-padding-x: 1.35rem; --bs-btn-padding-y: .7rem; --bs-btn-font-weight: 600; --bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(96, 51, 139, .25); transition: transform .2s var(--nx-ease), box-shadow .2s var(--nx-ease), background-color .2s, color .2s, border-color .2s; }
.btn-sm { --bs-btn-padding-x: 1rem; --bs-btn-padding-y: .45rem; --bs-btn-font-size: .85rem; }
.btn-lg { --bs-btn-padding-x: 1.75rem; --bs-btn-padding-y: .9rem; }
.btn-gradient { background: var(--nx-grad); color: #fff; border: 0; box-shadow: 0 6px 18px rgba(96, 51, 139, .25); }
.btn-gradient:hover, .btn-gradient:focus-visible { color: #fff; transform: translateY(-1px); box-shadow: 0 10px 24px rgba(96, 51, 139, .32); }
.btn-gradient:active { transform: none; color: #fff; }
.btn-outline-brand { --bs-btn-color: var(--nx-purple); --bs-btn-border-color: var(--nx-line-2); --bs-btn-hover-color: var(--nx-purple); --bs-btn-hover-bg: var(--nx-tint); --bs-btn-hover-border-color: var(--nx-purple); --bs-btn-active-color: var(--nx-purple); --bs-btn-active-bg: var(--nx-tint); --bs-btn-active-border-color: var(--nx-purple); background: #fff; }
.btn-outline-light-brand { --bs-btn-color: #fff; --bs-btn-border-color: rgba(255, 255, 255, .35); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: rgba(255, 255, 255, .1); --bs-btn-hover-border-color: #fff; --bs-btn-active-color: #fff; --bs-btn-active-bg: rgba(255, 255, 255, .14); }

/* Enlace de acción (no es botón): "Ver todo →", micro-CTA */
.nx-link { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; color: var(--nx-purple); text-decoration: none; }
.nx-link i { transition: transform .2s var(--nx-ease); }
.nx-link:hover { color: var(--nx-pink); }
.nx-link:hover .bi-arrow-right { transform: translateX(3px); }
.nx-link.is-wa { color: #0b6b37; }
.nx-link.is-wa:hover { color: #0b6b37; }

/* ---------- Tarjeta (una sola anatomía) ---------- */
.nx-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--nx-line); border-radius: var(--nx-r); box-shadow: var(--nx-shadow); padding: 1.5rem; height: 100%; }
.nx-card-icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--nx-tint); color: var(--nx-purple); font-size: 1.2rem; margin-bottom: 1rem; }
.nx-card h3 { font-size: 1.1rem; margin-bottom: .4rem; }
.nx-card p { color: var(--nx-muted); margin-bottom: 0; }
.nx-card-foot { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--nx-line); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.nx-card-body + .nx-card-foot { margin-top: auto; }
.nx-card-body { margin-bottom: 1.25rem; }
a.nx-card, .nx-card.is-link { text-decoration: none; color: inherit; transition: transform .2s var(--nx-ease), box-shadow .2s var(--nx-ease), border-color .2s; }
a.nx-card:hover, .nx-card.is-link:hover { transform: translateY(-2px); box-shadow: var(--nx-shadow-lift); border-color: var(--nx-line-2); }
.is-night .nx-card { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .1); box-shadow: none; color: #fff; }
.is-night .nx-card p { color: rgba(255, 255, 255, .7); }

/* ---------- Chips de estado ---------- */
.nx-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .6rem; border-radius: 999px; font-size: .78rem; font-weight: 600; line-height: 1.5; background: var(--nx-surface); color: var(--nx-ink-2); white-space: nowrap; }
.nx-chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.nx-chip.is-ok { background: var(--nx-ok-bg); color: var(--nx-ok); }
.nx-chip.is-info { background: var(--nx-info-bg); color: var(--nx-info); }
.nx-chip.is-warn { background: var(--nx-warn-bg); color: var(--nx-warn); }
.nx-chip.is-err { background: var(--nx-err-bg); color: var(--nx-err); }
.nx-chip.is-plain::before { display: none; }

/* ---------- Tabla que pasa a tarjetas en mobile ---------- */
.nx-table-wrap { background: #fff; border: 1px solid var(--nx-line); border-radius: var(--nx-r); box-shadow: var(--nx-shadow); overflow: hidden; }
.nx-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.nx-table th { text-align: left; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--nx-muted); background: var(--nx-surface); padding: .85rem 1.25rem; }
.nx-table td { padding: 1rem 1.25rem; border-top: 1px solid var(--nx-line); vertical-align: middle; }
.nx-table .is-end { text-align: right; }
.nx-table tbody tr { transition: background-color .15s; }
.nx-table tbody tr:hover { background: #fbfaff; }
.nx-who { display: flex; align-items: center; gap: .75rem; }
.nx-who strong { display: block; font-weight: 600; }
.nx-who small { color: var(--nx-muted); }
@media (max-width: 767.98px) {
    .nx-table-wrap { background: transparent; border: 0; box-shadow: none; overflow: visible; }
    .nx-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .nx-table, .nx-table tbody, .nx-table tr, .nx-table td { display: block; }
    .nx-table tr { background: #fff; border: 1px solid var(--nx-line); border-radius: var(--nx-r); box-shadow: var(--nx-shadow); padding: .5rem 1rem; margin-bottom: .75rem; }
    .nx-table td { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .55rem 0; border-top: 1px dashed var(--nx-line); text-align: right; }
    .nx-table td:first-child { border-top: 0; text-align: left; padding-bottom: .75rem; }
    .nx-table td:first-child::before { display: none; }
    .nx-table td::before { content: attr(data-label); font-size: .78rem; font-weight: 600; color: var(--nx-muted); text-align: left; }
    .nx-table .is-end { text-align: right; }
}

/* ---------- Avatar de iniciales ---------- */
.nx-avatar { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: .85rem; color: #fff; background: var(--nx-purple); }
.nx-avatar.is-pink { background: #b3135f; }
.nx-avatar.is-blue { background: var(--nx-blue); }
.nx-avatar.is-ink { background: var(--nx-ink-2); }

/* ---------- Segmentado (tabs/estados) ---------- */
.nx-seg { display: inline-flex; gap: .25rem; padding: .3rem; border-radius: 999px; background: var(--nx-surface); border: 1px solid var(--nx-line); max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.nx-seg::-webkit-scrollbar { display: none; }
.nx-seg button { border: 0; background: transparent; border-radius: 999px; padding: .45rem 1rem; font-size: .88rem; font-weight: 600; color: var(--nx-muted); white-space: nowrap; transition: background-color .2s var(--nx-ease), color .2s; }
.nx-seg button:hover { color: var(--nx-ink); }
.nx-seg button[aria-selected="true"] { background: #fff; color: var(--nx-ink); box-shadow: 0 1px 3px rgba(29, 26, 44, .12); }

/* ---------- Estados de interfaz ---------- */
.nx-state-box { background: #fff; border: 1px solid var(--nx-line); border-radius: var(--nx-r); box-shadow: var(--nx-shadow); padding: 1.25rem; min-height: 250px; }
.nx-skel { border-radius: 8px; background: linear-gradient(90deg, #f1eff6 0%, #f8f7fb 40%, #f1eff6 80%); background-size: 200% 100%; animation: nx-shimmer 1.3s linear infinite; }
@keyframes nx-shimmer { to { background-position: -200% 0; } }
.nx-skel-row { display: flex; align-items: center; gap: .9rem; padding: .7rem 0; }
.nx-skel-row + .nx-skel-row { border-top: 1px solid var(--nx-line); }
.nx-empty { text-align: center; padding: 2rem 1rem; }
.nx-empty-icon { width: 56px; height: 56px; margin: 0 auto 1rem; border-radius: 50%; display: grid; place-items: center; font-size: 1.4rem; background: var(--nx-surface); color: var(--nx-muted); }
.nx-empty.is-err .nx-empty-icon { background: var(--nx-err-bg); color: var(--nx-err); }
.nx-empty.is-ok .nx-empty-icon { background: var(--nx-ok-bg); color: var(--nx-ok); }
.nx-empty h4 { font-size: 1.05rem; margin-bottom: .35rem; }
.nx-empty p { color: var(--nx-muted); max-width: 340px; margin: 0 auto 1rem; font-size: .95rem; }
.nx-state-note { font-size: .88rem; color: var(--nx-muted); margin-top: .9rem; }
.nx-state-note strong { color: var(--nx-ink); }

/* ---------- Pieza exhibida: pieza + explicación + gancho ---------- */
.nx-piece { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 2.5rem; align-items: start; scroll-margin-top: 2rem; }
@media (max-width: 991.98px) { .nx-piece { grid-template-columns: 1fr; gap: 1.75rem; } }
.nx-piece-stage { --pz: var(--nx-purple); --pz-soft: color-mix(in srgb, var(--pz) 10%, #fff); background: #fff; border: 1px solid var(--nx-line); border-radius: var(--nx-r-lg); box-shadow: var(--nx-shadow-lift); overflow: hidden; }
.nx-piece-bar { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .8rem 1.25rem; border-bottom: 1px solid var(--nx-line); background: var(--nx-surface); font-size: .85rem; }
.nx-piece-store { display: flex; align-items: center; gap: .55rem; font-weight: 700; color: var(--nx-ink); min-width: 0; }
.nx-piece-store span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nx-piece-logo { width: 26px; height: 26px; border-radius: 8px; background: var(--pz); color: #fff; display: grid; place-items: center; font-size: .8rem; transition: background-color .3s; flex: 0 0 auto; }
.nx-demo-tag { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--nx-muted); white-space: nowrap; }
.nx-piece-body { padding: 1.5rem; }
@media (max-width: 575.98px) { .nx-piece-body { padding: 1.1rem; } }

.nx-piece-aside h3 { font-size: 1.45rem; margin-bottom: .6rem; }
.nx-piece-aside > p { color: var(--nx-muted); }
.nx-tips { list-style: none; padding: 0; margin: 1.25rem 0; display: grid; gap: .75rem; }
.nx-tip { display: grid; grid-template-columns: 36px 1fr; gap: .85rem; padding: 1rem; border: 1px solid var(--nx-line); border-radius: var(--nx-r); background: #fff; }
.nx-tip-icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; font-size: 1rem; }
.nx-tip.is-known .nx-tip-icon { background: var(--nx-info-bg); color: var(--nx-info); }
.nx-tip.is-rare .nx-tip-icon { background: var(--nx-tint); color: var(--nx-purple); }
.nx-tip.is-mistake .nx-tip-icon { background: var(--nx-err-bg); color: var(--nx-err); }
.nx-tip small { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--nx-muted); margin-bottom: .15rem; }
.nx-tip p { margin: 0; font-size: .95rem; color: var(--nx-ink-2); }
.nx-hook { border-radius: var(--nx-r); padding: 1.1rem 1.25rem; background: var(--nx-surface); border: 1px solid var(--nx-line); }
.nx-hook p { margin: 0 0 .5rem; font-weight: 600; }
.nx-piece-tools { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-top: 1rem; font-size: .88rem; }
.nx-piece-tools button { border: 0; background: none; padding: 0; color: var(--nx-muted); font-weight: 600; display: inline-flex; align-items: center; gap: .35rem; }
.nx-piece-tools button:hover { color: var(--nx-purple); }

/* Probalo con tu marca */
.nx-brandit { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; padding: .9rem 1.25rem; border-top: 1px solid var(--nx-line); background: #fff; font-size: .88rem; }
.nx-brandit label { font-weight: 600; color: var(--nx-ink-2); }
.nx-brandit input[type="text"] { border: 1px solid var(--nx-line-2); border-radius: var(--nx-r-sm); padding: .4rem .7rem; font-size: .9rem; width: 12rem; max-width: 100%; }
.nx-swatches { display: flex; gap: .4rem; }
.nx-swatches button { width: 24px; height: 24px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--nx-line-2); background: var(--sw); }
.nx-swatches button[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--nx-ink); }

/* ---------- Stepper de checkout (pieza de muestra) ---------- */
.ck-steps { list-style: none; display: flex; gap: .5rem; padding: 0; margin: 0 0 1.5rem; counter-reset: ck; }
.ck-steps li { flex: 1; display: flex; flex-direction: column; gap: .45rem; font-size: .8rem; font-weight: 600; color: var(--nx-muted); }
.ck-steps li::before { content: ""; height: 4px; border-radius: 4px; background: var(--nx-line); transition: background-color .3s var(--nx-ease); }
.ck-steps li.is-done::before, .ck-steps li.is-current::before { background: var(--pz); }
.ck-steps li.is-current { color: var(--nx-ink); }
.ck-steps li.is-done { color: var(--nx-ink-2); }
.ck-steps li.is-done span::after { content: " ✓"; color: var(--pz); }
.ck-layout { display: grid; grid-template-columns: minmax(0, 1fr) 200px; gap: 1.25rem; }
@media (max-width: 575.98px) { .ck-layout { grid-template-columns: 1fr; } }
.ck-pane { min-width: 0; }
.ck-pane legend { font-family: var(--nx-display); font-size: 1.05rem; font-weight: 700; margin-bottom: 1rem; }
.ck-field { margin-bottom: .9rem; }
.ck-field label { display: block; font-size: .82rem; font-weight: 600; margin-bottom: .3rem; color: var(--nx-ink-2); }
.ck-field input { width: 100%; border: 1px solid var(--nx-line-2); border-radius: var(--nx-r-sm); padding: .6rem .8rem; font-size: .95rem; transition: border-color .15s, box-shadow .15s; }
.ck-field input:focus { outline: 0; border-color: var(--pz); box-shadow: 0 0 0 3px var(--pz-soft); }
.ck-field input[aria-invalid="true"] { border-color: var(--nx-err); background: #fffafb; }
.ck-field input[aria-invalid="false"] { border-color: var(--nx-ok); }
.ck-error { display: flex; align-items: center; gap: .3rem; font-size: .8rem; color: var(--nx-err); margin-top: .3rem; }
.ck-error[hidden] { display: none; }
.ck-opts { display: grid; gap: .5rem; }
.ck-opt { display: flex; align-items: center; gap: .75rem; padding: .75rem .9rem; border: 1px solid var(--nx-line-2); border-radius: var(--nx-r-sm); cursor: pointer; font-size: .92rem; transition: border-color .15s, background-color .15s; }
.ck-opt input { accent-color: var(--pz); }
.ck-opt:has(input:checked) { border-color: var(--pz); background: var(--pz-soft); }
.ck-opt span { flex: 1; }
.ck-opt small { display: block; color: var(--nx-muted); font-size: .8rem; }
.ck-opt em { font-style: normal; font-weight: 600; font-variant-numeric: tabular-nums; }
.ck-nav { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.25rem; }
.ck-nav .btn-pz { background: var(--pz); color: #fff; border: 0; }
.ck-nav .btn-pz:hover { color: #fff; filter: brightness(1.08); }
.ck-sum { border: 1px solid var(--nx-line); border-radius: var(--nx-r); padding: 1rem; background: var(--nx-surface); font-size: .88rem; align-self: start; }
.ck-sum h5 { font-size: .85rem; margin-bottom: .75rem; }
.ck-sum dl { margin: 0; }
.ck-sum dl div { display: flex; justify-content: space-between; gap: .5rem; padding: .3rem 0; }
.ck-sum dt { font-weight: 400; color: var(--nx-muted); }
.ck-sum dd { margin: 0; font-variant-numeric: tabular-nums; }
.ck-sum .is-total { border-top: 1px solid var(--nx-line-2); margin-top: .35rem; padding-top: .6rem; font-weight: 700; }
.ck-sum .is-total dt { color: var(--nx-ink); font-weight: 700; }
.ck-done { text-align: center; padding: 1.5rem .5rem; }
.ck-done-icon { width: 60px; height: 60px; margin: 0 auto 1rem; border-radius: 50%; display: grid; place-items: center; font-size: 1.6rem; background: var(--pz-soft); color: var(--pz); }
.ck-done p { color: var(--nx-muted); }

/* ---------- Testimonio ---------- */
.nx-quote { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--nx-line); border-radius: var(--nx-r); box-shadow: var(--nx-shadow); padding: 1.5rem; height: 100%; }
.nx-quote-top { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.nx-quote blockquote { margin: 0 0 1rem; font-size: 1.02rem; line-height: 1.6; color: var(--nx-ink); }
.nx-quote-change { font-size: .88rem; color: var(--nx-ink-2); background: var(--nx-surface); border-radius: var(--nx-r-sm); padding: .6rem .8rem; margin-bottom: 1.25rem; }
.nx-quote-change b { color: var(--nx-ok); }
.nx-quote figcaption { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--nx-line); }
.nx-quote-meta { font-size: .78rem; color: var(--nx-muted); display: flex; align-items: center; gap: .35rem; }

/* ---------- CTA final (momento oscuro) ---------- */
.nx-cta { position: relative; border-radius: var(--nx-r-lg); background: var(--nx-night); color: #fff; padding: clamp(2rem, 5vw, 3.5rem); overflow: clip; isolation: isolate; }
.nx-cta::before { content: ""; position: absolute; inset: auto -10% -60% auto; width: 60%; aspect-ratio: 1; border-radius: 50%; background: var(--nx-grad); opacity: .35; filter: blur(80px); z-index: -1; }
.nx-cta h2 { color: #fff; font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.3rem); }
.nx-cta p { color: rgba(255, 255, 255, .72); }

/* ---------- Fundamentos (solo muestra) ---------- */
.mx-swatch { border-radius: var(--nx-r); border: 1px solid var(--nx-line); overflow: hidden; background: #fff; font-size: .82rem; }
.mx-swatch div { height: 64px; }
.mx-swatch p { margin: 0; padding: .6rem .75rem; }
.mx-swatch code { color: var(--nx-muted); font-size: .76rem; }
.mx-type > * { margin-bottom: .6rem; }
.mx-rule { font-size: .88rem; color: var(--nx-muted); border-left: 3px solid var(--nx-line-2); padding-left: .85rem; margin-top: .75rem; }
.mx-toolbar { position: sticky; top: 0; z-index: 20; background: rgba(255, 255, 255, .88); backdrop-filter: blur(10px); border-bottom: 1px solid var(--nx-line); }
.mx-toolbar nav { display: flex; gap: 1.1rem; overflow-x: auto; scrollbar-width: none; font-size: .85rem; font-weight: 600; white-space: nowrap; }
.mx-toolbar nav::-webkit-scrollbar { display: none; }
.mx-toolbar nav a { color: var(--nx-muted); text-decoration: none; padding: .9rem 0; }
.mx-toolbar nav a:hover { color: var(--nx-purple); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ==========================================================================
   Ícono decorativo: círculo outline (§4). El relleno queda para estados.
   ========================================================================== */
.nx-ico { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; display: inline-grid; place-items: center; background: #fff; border: 1px solid var(--nx-line-2); color: var(--nx-purple); font-size: 1.05rem; transition: background-color .2s var(--nx-ease), color .2s, border-color .2s; }
.nx-ico.is-sm { width: 34px; height: 34px; font-size: .95rem; }
.nx-ico.is-lg { width: 48px; height: 48px; font-size: 1.2rem; }
a:hover > .nx-ico, .nx-ico.is-on { background: var(--nx-purple); border-color: var(--nx-purple); color: #fff; }
.is-night .nx-ico, .nx-footer .nx-ico { background: transparent; border-color: rgba(255, 255, 255, .22); color: #fff; }

/* ==========================================================================
   Acción menor (.nx-act): misma forma que .btn-outline-brand .btn-sm (§3: todo lo clicable es botón)
   ========================================================================== */
.nx-act { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 40px; padding: .45rem 1.1rem; border: 1px solid var(--nx-line-2); border-radius: 999px; background: #fff; font-weight: 600; font-size: .9rem; line-height: 1.2; text-decoration: none; color: var(--nx-purple); transition: background-color .2s, border-color .2s, color .2s, transform .2s var(--nx-ease); }
.nx-act:hover { background: var(--nx-tint); border-color: var(--nx-purple); color: var(--nx-purple); }
.nx-act .bi-arrow-right, .nx-act .bi-arrow-up-right { transition: transform .2s var(--nx-ease); }
.nx-act:hover .bi-arrow-right { transform: translateX(3px); }
.nx-act:hover .bi-arrow-up-right { transform: translate(2px, -2px); }
.nx-act.is-wa { color: #0b6b37; }
.nx-act.is-wa:hover { background: #e9f8ef; border-color: #128c4a; color: #0b6b37; }

/* ==========================================================================
   Header v2: franja de datos + barra principal + mega menú
   Altura: 38 (franja) + 68 (barra) = 106px; con scroll: 60px.
   ========================================================================== */
:root { --nx-top-h: 38px; --nx-bar-h: 68px; }
html { scroll-padding-top: 84px; }
.nx-skip { position: absolute; left: 1rem; top: -3rem; z-index: 1100; background: #fff; padding: .5rem 1rem; border-radius: var(--nx-r-sm); box-shadow: var(--nx-shadow-lift); }
.nx-skip:focus { top: .75rem; }
body:has(.nx-header) { padding-top: calc(var(--nx-top-h) + var(--nx-bar-h)); }
body:has(.nx-header.is-overlay) { padding-top: 0; }
.nx-header { position: fixed; inset: 0 0 auto; z-index: 1030; transition: transform .3s var(--nx-ease), box-shadow .25s; }
/* El fondo va en ::before: backdrop-filter en el header encerraría al offcanvas (position:fixed) */
.nx-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(255, 255, 255, .94); backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px); border-bottom: 1px solid var(--nx-line); transition: background-color .25s, border-color .25s; }
.nx-header.is-scrolled { box-shadow: 0 6px 24px rgba(29, 26, 44, .07); }
.nx-header.is-hidden { transform: translateY(-100%); }

/* Franja superior */
.nx-topbar { height: var(--nx-top-h); overflow: hidden; background: var(--nx-night); color: rgba(255, 255, 255, .75); font-size: .8rem; transition: height .25s var(--nx-ease), opacity .2s; }
.nx-topbar .container { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.nx-topbar-info { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; min-width: 0; }
.nx-topbar-info li { display: flex; align-items: center; gap: .4rem; white-space: nowrap; padding: 0 .9rem; }
.nx-topbar-info li:first-child { padding-left: 0; }
.nx-topbar-info li:last-child { padding-right: 0; }
.nx-topbar-info li + li { border-left: 1px solid rgba(255, 255, 255, .16); }
.nx-topbar a { color: rgba(255, 255, 255, .85); text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; }
.nx-topbar a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.nx-topbar-social { gap: .2rem !important; }
.nx-topbar-social a { width: 28px; height: 28px; justify-content: center; border-radius: 50%; }
.nx-topbar-social a:hover { background: rgba(255, 255, 255, .12); text-decoration: none; }
.nx-header.is-scrolled .nx-topbar { height: 0; opacity: 0; }
@media (max-width: 575.98px) { .nx-topbar-info li { padding: 0 .6rem; } .nx-topbar { font-size: .76rem; } }

/* Barra principal */
.nx-header .navbar { min-height: var(--nx-bar-h); padding: 0; transition: min-height .25s var(--nx-ease); }
.nx-header.is-scrolled .navbar { min-height: 60px; }
.nx-brand { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--nx-display); font-weight: 700; font-size: 1.15rem; color: var(--nx-ink); text-decoration: none; transition: color .25s; }
.nx-brand:hover { color: var(--nx-ink); }
.nx-header-end { display: flex; align-items: center; gap: .5rem; }
.nx-header-end .btn { min-height: 40px; }
.nx-burger { border: 1px solid var(--nx-line-2); background: #fff; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-size: 1.3rem; color: var(--nx-ink); transition: border-color .2s, color .2s, background-color .2s; }
.nx-burger:hover { border-color: var(--nx-purple); color: var(--nx-purple); }
.nx-header .navbar-nav { gap: .1rem; }
.nx-header .nav-link { display: flex; align-items: center; gap: .6rem; font-weight: 600; font-size: .95rem; color: var(--nx-ink-2); padding: .5rem .85rem !important; border-radius: 999px; border: 0; background: none; position: relative; transition: color .2s, background-color .2s; }
.nx-header .nav-link:hover { color: var(--nx-purple); background: var(--nx-tint); }
.nx-header .nav-link.active { color: var(--nx-purple); }
.nx-header .nav-link:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(96, 51, 139, .35); }
@media (min-width: 992px) {
    .nx-header .nav-link.active::after { content: ""; position: absolute; left: .85rem; right: .85rem; bottom: .1rem; height: 2px; border-radius: 2px; background: var(--nx-grad); }
    .nx-header .nav-link.dropdown-toggle.active::after { right: 1.75rem; border: 0; margin: 0; }
}
.nx-header .dropdown-toggle:not(.active)::after { margin-left: .1em; border-top-width: .3em; border-right-width: .3em; border-left-width: .3em; transition: transform .2s var(--nx-ease); }
.nx-header .dropdown-toggle.show:not(.active)::after { transform: rotate(180deg); }
.nx-nav-cta { margin-left: .5rem; }

/* Modo integrado al hero oscuro (antes de hacer scroll) */
.nx-header.is-overlay:not(.is-scrolled)::before { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; border-color: rgba(255, 255, 255, .1); }
.nx-header.is-overlay:not(.is-scrolled) .nx-topbar { background: transparent; border-bottom: 1px solid rgba(255, 255, 255, .08); }
@media (min-width: 992px) {
    .nx-header.is-overlay:not(.is-scrolled) .nx-brand { color: #fff; }
    .nx-header.is-overlay:not(.is-scrolled) .nav-link { color: rgba(255, 255, 255, .82); }
    .nx-header.is-overlay:not(.is-scrolled) .nav-link:hover, .nx-header.is-overlay:not(.is-scrolled) .nav-link.show { color: #fff; background: rgba(255, 255, 255, .1); }
    .nx-header.is-overlay:not(.is-scrolled) .nav-link.active { color: #fff; }
}
@media (max-width: 991.98px) {
    .nx-header.is-overlay:not(.is-scrolled) .navbar > .container > .nx-brand { color: #fff; }
    .nx-header.is-overlay:not(.is-scrolled) .nx-header-end .nx-burger { background: transparent; border-color: rgba(255, 255, 255, .3); color: #fff; }
}
.nx-hero.is-under-header { padding-top: calc(var(--nx-top-h) + var(--nx-bar-h) + 4.5rem); }
@media (max-width: 575.98px) { .nx-hero.is-under-header { padding-top: calc(var(--nx-top-h) + var(--nx-bar-h) + 2.5rem); } }

/* Mega menú (escritorio): servicios 2×2 + columna destacada */
@media (min-width: 992px) {
    .nx-header .navbar > .container { position: relative; }
    .nx-header .nav-item.dropdown { position: static; }
    .nx-mega { left: auto !important; right: .75rem !important; top: calc(100% - .35rem) !important; width: min(760px, calc(100vw - 2rem)); }
}
.nx-mega { border: 1px solid var(--nx-line); border-radius: 18px; box-shadow: 0 24px 60px rgba(29, 26, 44, .16); padding: .75rem; margin-top: 0 !important; }
.nx-mega.show { animation: nx-mega-in .22s var(--nx-ease) both; }
@keyframes nx-mega-in { from { opacity: 0; transform: translateY(-6px); } }
.nx-mega-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: .75rem; }
.nx-mega-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; align-content: start; }
.nx-mega-list a { display: flex; align-items: flex-start; gap: .75rem; height: 100%; padding: .8rem; border-radius: 14px; text-decoration: none; color: var(--nx-ink); border: 1px solid transparent; transition: background-color .2s, border-color .2s; }
.nx-mega-list a:hover, .nx-mega-list a[aria-current] { background: var(--nx-surface); border-color: var(--nx-line); }
.nx-mega-list strong { display: block; font-size: .93rem; line-height: 1.25; }
.nx-mega-list small { display: block; color: var(--nx-muted); font-size: .8rem; margin-top: .15rem; }
.nx-mega-side { display: grid; gap: .5rem; padding: .5rem; border-radius: 14px; background: var(--nx-surface); }
.nx-mega-help { display: flex; gap: .7rem; align-items: center; padding: .7rem; border-radius: 12px; background: #fff; border: 1px solid var(--nx-line); text-decoration: none; color: var(--nx-ink); transition: border-color .2s; }
.nx-mega-help:hover { border-color: var(--nx-purple); color: var(--nx-ink); }
.nx-mega-help strong { display: block; font-size: .9rem; }
.nx-mega-help small { color: var(--nx-muted); font-size: .78rem; line-height: 1.35; display: block; }
.nx-mega-case { display: block; border-radius: 12px; overflow: hidden; background: #fff; border: 1px solid var(--nx-line); text-decoration: none; color: var(--nx-ink); transition: border-color .2s; }
.nx-mega-case:hover { border-color: var(--nx-purple); color: var(--nx-ink); }
.nx-mega-case img { display: block; width: 100%; aspect-ratio: 16 / 8; object-fit: cover; object-position: top; transition: transform .35s var(--nx-ease); }
.nx-mega-case:hover img { transform: scale(1.03); }
.nx-mega-case > span { display: block; padding: .55rem .7rem; }
.nx-mega-case small { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .04em; color: var(--nx-pink); }
.nx-mega-case strong { font-size: .88rem; }
.nx-mega-all { display: flex; justify-content: space-between; align-items: center; margin-top: .6rem; padding: .7rem .8rem .2rem; border-top: 1px solid var(--nx-line); font-size: .88rem; font-weight: 600; text-decoration: none; color: var(--nx-purple); }
.nx-mega-all i { transition: transform .2s var(--nx-ease); }
.nx-mega-all:hover i { transform: translateX(3px); }

/* Menú mobile (offcanvas) */
@media (max-width: 991.98px) {
    .nx-menu { --bs-offcanvas-width: min(90vw, 380px); }
    .nx-menu .offcanvas-header { border-bottom: 1px solid var(--nx-line); }
    .nx-menu .offcanvas-header .nx-burger { margin-left: auto; }
    .nx-menu .offcanvas-body { display: flex; flex-direction: column; gap: 1.25rem; }
    .nx-menu-label { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--nx-muted); margin-bottom: .6rem; }
    .nx-menu-svc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
    .nx-menu-svc-grid a { display: flex; flex-direction: column; gap: .35rem; padding: .8rem; border-radius: 14px; border: 1px solid var(--nx-line); text-decoration: none; color: var(--nx-ink); transition: border-color .2s, background-color .2s; }
    .nx-menu-svc-grid a:hover, .nx-menu-svc-grid a.is-current { border-color: var(--nx-purple); background: var(--nx-tint); }
    .nx-menu-svc-grid strong { font-size: .88rem; line-height: 1.25; }
    .nx-menu-svc-grid small { font-size: .75rem; color: var(--nx-muted); line-height: 1.3; }
    .nx-menu .navbar-nav { gap: .15rem; padding-top: 1rem; border-top: 1px solid var(--nx-line); }
    .nx-header .nav-link { padding: .75rem .9rem !important; font-size: 1rem; width: 100%; text-align: left; border-radius: 12px; border-left: 3px solid transparent; }
    .nx-header .nav-link > i { width: 20px; color: var(--nx-muted); }
    .nx-header .nav-link.active { background: var(--nx-tint); border-left-color: var(--nx-purple); }
    .nx-header .nav-link.active > i { color: var(--nx-purple); }
    .nx-menu-foot { margin-top: auto; display: grid; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--nx-line); }
    .nx-menu-wa { display: flex; align-items: center; gap: .8rem; padding: .85rem 1rem; border-radius: 14px; background: #e9f8ef; color: #0b6b37; text-decoration: none; }
    .nx-menu-wa:hover { color: #0b6b37; background: #def4e7; }
    .nx-wa-dot { width: 40px; height: 40px; flex: 0 0 auto; border-radius: 50%; display: grid; place-items: center; background: #0f7a3f; color: #fff; font-size: 1.15rem; }
    .nx-menu-wa strong { display: block; }
    .nx-menu-wa small { color: #2f6b4b; }
    .nx-menu-wa > i:last-child { margin-left: auto; }
    .nx-menu-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; font-size: .9rem; }
    .nx-menu-contact a, .nx-menu-contact span { display: inline-flex; align-items: center; gap: .55rem; color: var(--nx-ink-2); text-decoration: none; }
    .nx-menu .nx-social a { border-color: var(--nx-line-2); color: var(--nx-ink-2); }
    .nx-menu .nx-social a:hover { background: var(--nx-purple); border-color: var(--nx-purple); color: #fff; }
}

/* ==========================================================================
   Footer v2 (oscuro) + flotantes
   ========================================================================== */
.nx-footer { background: var(--nx-night); color: rgba(255, 255, 255, .72); padding: 4.5rem 0 2rem; font-size: .94rem; }
.nx-footer .nx-brand { color: #fff; }
.nx-footer-about { max-width: 330px; margin-bottom: 1.25rem; }
.nx-footer-title { position: relative; font-family: var(--nx-font); font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; padding-bottom: .7rem; margin-bottom: 1.1rem; }
.nx-footer-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 26px; height: 3px; border-radius: 3px; background: var(--nx-grad); }
/* Lista con sangría, guía vertical y viñeta que se estira al hover (§6, §7) */
.nx-linklist { list-style: none; margin: 0; padding: 0 0 0 .9rem; border-left: 1px solid rgba(255, 255, 255, .12); display: grid; gap: .1rem; }
.nx-linklist a { position: relative; display: inline-flex; align-items: center; min-height: 36px; padding-left: 1.1rem; color: rgba(255, 255, 255, .78); text-decoration: none; transition: color .2s; }
.nx-linklist a::before { content: ""; position: absolute; left: 0; top: 50%; width: 5px; height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .35); transform: translateY(-50%); transition: width .25s var(--nx-ease), background-color .2s; }
.nx-linklist a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(255, 255, 255, .4); }
.nx-linklist a:hover::before { width: 12px; background: var(--nx-pink); }
.nx-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.nx-contact li > a, .nx-contact li > span { display: inline-flex; align-items: center; gap: .7rem; color: rgba(255, 255, 255, .85); text-decoration: none; overflow-wrap: anywhere; }
.nx-contact a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.nx-contact .nx-ico { width: 36px; height: 36px; color: #ff7ab8; }
.nx-contact a:hover .nx-ico { background: var(--nx-pink); border-color: var(--nx-pink); color: #fff; }
.nx-social { display: flex; gap: .5rem; }
.nx-social a { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .22); color: #fff; transition: background-color .2s, border-color .2s; }
.nx-social a:hover { background: var(--nx-pink); border-color: var(--nx-pink); color: #fff; }
.nx-pay { margin-top: 2.75rem; padding-top: 1.75rem; border-top: 1px solid rgba(255, 255, 255, .1); display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; }
.nx-pay > span { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .55); }
.nx-pay ul { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; }
.nx-pay li { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .8rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .16); font-size: .84rem; color: rgba(255, 255, 255, .85); }
.nx-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .1); color: rgba(255, 255, 255, .55); font-size: .84rem; }
.nx-legal { color: rgba(255, 255, 255, .55); }
.nx-legal mark { background: rgba(255, 196, 0, .14); color: #ffd36b; padding: 0 .3rem; border-radius: 4px; }
@media (max-width: 575.98px) { .nx-footer { padding-bottom: 6rem; } }

/* Flotantes (§19): WhatsApp a la derecha, volver arriba a la izquierda */
.nx-float { position: fixed; bottom: 1.25rem; z-index: 1020; transition: opacity .25s var(--nx-ease), transform .25s var(--nx-ease), visibility .25s; }
.nx-float.is-off { opacity: 0; visibility: hidden; transform: translateY(12px); pointer-events: none; }
.nx-wa-float { right: 1.25rem; display: flex; align-items: flex-end; gap: .6rem; }
.nx-wa-btn { width: 56px; height: 56px; flex: 0 0 auto; border-radius: 50%; display: grid; place-items: center; background: #25d366; color: #fff; font-size: 1.6rem; box-shadow: 0 10px 24px rgba(18, 140, 74, .35); text-decoration: none; transition: transform .2s var(--nx-ease); }
.nx-wa-btn:hover { color: #fff; transform: translateY(-2px); }
.nx-wa-tip { position: relative; max-width: 240px; background: #fff; border: 1px solid var(--nx-line); border-radius: 14px 14px 4px 14px; padding: .7rem 2.1rem .7rem .9rem; box-shadow: var(--nx-shadow-lift); font-size: .86rem; transition: opacity .3s var(--nx-ease), transform .3s var(--nx-ease); }
.nx-wa-tip[hidden] { display: block; opacity: 0; transform: translateY(6px) scale(.97); pointer-events: none; visibility: hidden; }
.nx-wa-tip a { color: var(--nx-ink); text-decoration: none; font-weight: 600; }
.nx-wa-tip a:hover { color: #0b6b37; }
.nx-wa-tip button { position: absolute; top: .35rem; right: .35rem; width: 26px; height: 26px; border: 0; border-radius: 50%; background: var(--nx-surface); color: var(--nx-muted); display: grid; place-items: center; font-size: .75rem; }
.nx-top { left: 1.25rem; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--nx-line-2); background: #fff; color: var(--nx-ink); display: grid; place-items: center; box-shadow: var(--nx-shadow); }
.nx-top:hover { border-color: var(--nx-purple); color: var(--nx-purple); }
@media (max-width: 575.98px) { .nx-wa-float { right: 1rem; bottom: 1rem; } .nx-top { left: 1rem; bottom: 1rem; } .nx-wa-btn { width: 52px; height: 52px; } .nx-wa-tip { max-width: 200px; } }

/* ==========================================================================
   Home v2
   ========================================================================== */
/* Hero (momento oscuro 1) */
.nx-hero { position: relative; background: var(--nx-night); color: #fff; padding: 4.5rem 0 2.5rem; overflow: clip; isolation: isolate; }
.nx-hero::before { content: ""; position: absolute; width: 640px; aspect-ratio: 1; right: -160px; top: -220px; border-radius: 50%; background: var(--nx-grad); opacity: .28; filter: blur(110px); z-index: -1; }
.nx-hero .nx-eyebrow { background: rgba(255, 255, 255, .08); color: rgba(255, 255, 255, .85); }
.nx-hero-title { color: #fff; font-size: clamp(2.2rem, 1.4rem + 2.6vw, 3.25rem); margin: 1.1rem 0 1rem; }
.nx-hero-lead { color: rgba(255, 255, 255, .75); font-size: 1.15rem; max-width: 540px; margin-bottom: 2rem; }
@media (max-width: 575.98px) { .nx-hero { padding: 2.75rem 0 2rem; } .nx-hero-ctas .btn { width: 100%; } }
.nx-hero-ctas .btn { --bs-btn-padding-x: 1.4rem; --bs-btn-padding-y: .75rem; }

.nx-feed { background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--nx-r-lg); padding: 1rem; }
.nx-feed-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .1rem .4rem .8rem; font-size: .85rem; font-weight: 600; color: rgba(255, 255, 255, .85); }
.nx-feed-head > span:first-child { display: inline-flex; align-items: center; gap: .5rem; }
.nx-feed-head > div { display: flex; align-items: center; gap: .6rem; }
.nx-feed-foot { display: flex; align-items: center; justify-content: center; gap: .4rem; margin: .85rem 0 0; font-size: .78rem; color: rgba(255, 255, 255, .6); }
.nx-feed-pause { width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .25); background: transparent; color: #fff; display: grid; place-items: center; font-size: .8rem; }
.nx-feed-pause:hover { background: rgba(255, 255, 255, .1); }
.nx-live { width: 8px; height: 8px; border-radius: 50%; background: #3ddc84; box-shadow: 0 0 0 4px rgba(61, 220, 132, .18); }
.nx-feed.is-paused .nx-live { background: #9aa0a6; box-shadow: none; }
.nx-feed-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.nx-feed-item { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: .85rem; background: #fff; color: var(--nx-ink); border-radius: var(--nx-r); padding: .85rem 1rem; box-shadow: 0 8px 24px rgba(0, 0, 0, .18); }
.nx-feed-item.is-in { animation: nx-feed-in .45s var(--nx-ease) both; }
@keyframes nx-feed-in { from { opacity: 0; transform: translateY(-10px) scale(.98); } }
.nx-feed-icon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-size: 1.1rem; }
.nx-feed-item.is-ok .nx-feed-icon { background: var(--nx-ok-bg); color: var(--nx-ok); }
.nx-feed-item.is-info .nx-feed-icon { background: var(--nx-info-bg); color: var(--nx-info); }
.nx-feed-item.is-warn .nx-feed-icon { background: var(--nx-warn-bg); color: var(--nx-warn); }
.nx-feed-item.is-wa .nx-feed-icon { background: #e7f8ee; color: #128c4a; }
.nx-feed-text { min-width: 0; }
.nx-feed-text strong { display: block; font-size: .95rem; }
.nx-feed-text small { display: block; color: var(--nx-muted); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nx-feed-tag { font-size: .72rem; font-weight: 600; color: var(--nx-muted); background: var(--nx-surface); border-radius: 999px; padding: .15rem .55rem; }
@media (max-width: 575.98px) { .nx-feed-tag { display: none; } .nx-feed-item { grid-template-columns: 40px minmax(0, 1fr); } .nx-feed-text small { white-space: normal; } }
.nx-trust { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; margin: 3rem 0 0; padding: 1.5rem 0 0; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .9rem; color: rgba(255, 255, 255, .8); }
.nx-trust li { display: inline-flex; align-items: center; gap: .6rem; padding: .35rem 2rem; }
.nx-trust li + li { border-left: 1px solid rgba(255, 255, 255, .18); }
@media (max-width: 991.98px) { .nx-trust { flex-direction: column; align-items: stretch; } .nx-trust li { padding: .7rem 0; } .nx-trust li + li { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .1); } }
.nx-trust .nx-ico { width: 34px; height: 34px; font-size: .9rem; border-color: rgba(255, 255, 255, .22); background: transparent; color: #fff; }

/* Router de servicios */
.nx-router-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; padding: .4rem; background: var(--nx-surface); border: 1px solid var(--nx-line); border-radius: var(--nx-r-lg); margin-bottom: 1.25rem; }
.nx-router-tabs button { display: flex; align-items: center; gap: .75rem; text-align: left; border: 0; background: transparent; border-radius: 14px; padding: .75rem .9rem; color: var(--nx-ink-2); min-width: 0; transition: background-color .2s var(--nx-ease), box-shadow .2s; }
.nx-router-tabs button > span:last-child { min-width: 0; }
.nx-router-tabs strong { display: block; font-size: .95rem; line-height: 1.25; }
.nx-router-tabs small { display: block; font-size: .78rem; color: var(--nx-muted); margin-top: .1rem; }
.nx-router-tabs button:hover { background: rgba(255, 255, 255, .7); }
.nx-router-tabs button[aria-selected="true"] { background: #fff; box-shadow: 0 1px 3px rgba(29, 26, 44, .1), inset 0 -3px 0 var(--nx-purple); color: var(--nx-ink); }
.nx-router-tabs button[aria-selected="true"] .nx-ico { background: var(--nx-purple); border-color: var(--nx-purple); color: #fff; }
.nx-router-tabs button:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(96, 51, 139, .35); }
@media (max-width: 991.98px) { .nx-router-tabs { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) {
    .nx-router-tabs button { padding: .65rem; gap: .55rem; }
    .nx-router-tabs .nx-ico { width: 34px; height: 34px; font-size: .9rem; }
    .nx-router-tabs strong { font-size: .86rem; }
    .nx-router-tabs small { display: none; }
}
.nx-router-panel { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; align-items: stretch; background: #fff; border: 1px solid var(--nx-line); border-radius: 20px; box-shadow: var(--nx-shadow-lift); padding: 2.25rem; overflow: hidden; }
.nx-router-panel::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--nx-grad); }
.nx-router-panel.is-in { animation: nx-fade .35s var(--nx-ease) both; }
@keyframes nx-fade { from { opacity: 0; transform: translateY(6px); } }
@media (max-width: 991.98px) { .nx-router-panel { grid-template-columns: 1fr; gap: 1.75rem; padding: 1.5rem 1.25rem; } }
.nx-router-text { display: flex; flex-direction: column; }
.nx-rp-head { display: flex; align-items: center; gap: .85rem; margin-bottom: 1.1rem; }
.nx-rp-head .nx-ico { width: 52px; height: 52px; font-size: 1.35rem; background: var(--nx-tint); border-color: #dcd2ee; }
.nx-rp-kicker { display: block; font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--nx-pink); }
.nx-rp-sub { display: block; font-size: .88rem; color: var(--nx-muted); }
.nx-router-text h3 { font-size: clamp(1.4rem, 1.15rem + .9vw, 1.8rem); line-height: 1.18; margin: 0 0 .6rem; }
.nx-for { color: var(--nx-muted); font-size: 1rem; margin: 0; }
.nx-rp-block { margin-top: 1.4rem; padding-top: 1.4rem; border-top: 1px solid var(--nx-line); }
.nx-rp-label { display: block; font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--nx-muted); margin-bottom: .75rem; }
.nx-checks { list-style: none; padding: 0; margin: 0; display: grid; gap: .65rem; }
.nx-checks li { display: flex; align-items: center; gap: .7rem; color: var(--nx-ink); font-size: .97rem; }
.nx-checks li > span { flex: 0 0 auto; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--nx-ok-bg); color: var(--nx-ok); font-size: .85rem; }
.nx-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .6rem; }
.nx-fact { display: flex; align-items: center; gap: .6rem; border: 1px solid var(--nx-line); border-radius: 12px; padding: .7rem .8rem; background: var(--nx-surface); }
.nx-fact > i { color: var(--nx-purple); font-size: 1.05rem; }
.nx-fact small { display: block; font-size: .76rem; color: var(--nx-muted); }
.nx-fact strong { font-size: .98rem; }
.nx-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: auto; padding-top: 1.5rem; }
.nx-router-panel .nx-mini { align-self: center; }
@media (max-width: 575.98px) {
    .nx-facts { grid-template-columns: 1fr 1fr; }
    .nx-fact { flex-direction: column; align-items: flex-start; gap: .35rem; }
    .nx-actions > * { flex: 1 1 100%; }
}

/* Mini-piezas */
.nx-mini { border: 1px solid var(--nx-line); border-radius: var(--nx-r); background: var(--nx-surface); overflow: hidden; }
.nx-mini-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem .75rem; padding: .7rem 1rem; background: #fff; border-bottom: 1px solid var(--nx-line); font-size: .85rem; font-weight: 700; }
.nx-mini-body { padding: 1rem; min-height: 240px; }
.nx-mini-note { font-size: .86rem; color: var(--nx-muted); margin: .9rem 0 0; }
.nx-mini-note strong { color: var(--nx-ink); }
.nx-seg-sm { padding: .2rem; }
.nx-seg-sm button { padding: .45rem .85rem; font-size: .82rem; min-height: 36px; }
.nx-seg button[aria-pressed="true"] { background: #fff; color: var(--nx-ink); box-shadow: 0 1px 3px rgba(29, 26, 44, .12); }
/* web */
.mw-page { max-width: 260px; margin: 0 auto; background: #fff; border: 1px solid var(--nx-line); border-radius: 14px; padding: .75rem; display: grid; gap: .5rem; box-shadow: var(--nx-shadow); }
.mw-blk { display: flex; align-items: center; gap: .4rem; border-radius: 8px; background: var(--nx-surface); padding: .55rem .65rem; font-size: .74rem; }
.mw-blk.is-hero { flex-direction: column; align-items: flex-start; background: var(--nx-tint); }
.mw-blk.is-hero i { width: 60%; height: 6px; border-radius: 4px; background: var(--nx-line-2); }
.mw-blk.is-row i { flex: 1; height: 30px; border-radius: 6px; background: #fff; border: 1px solid var(--nx-line); }
.mw-blk.is-quote b { font-weight: 500; font-style: italic; color: var(--nx-muted); }
.mw-blk.is-cta { justify-content: center; background: #0f7a3f; color: #fff; font-weight: 700; }
.mw-tree { display: grid; justify-items: center; gap: 1.25rem; padding: .5rem 0; }
.mw-node { display: inline-flex; align-items: center; gap: .35rem; background: #fff; border: 1px solid var(--nx-line-2); border-radius: 10px; padding: .45rem .75rem; font-size: .8rem; font-weight: 600; position: relative; }
.mw-node.is-root { background: var(--nx-ink); color: #fff; border-color: var(--nx-ink); }
.mw-node.is-root::after { content: ""; position: absolute; left: 50%; top: 100%; width: 1px; height: .65rem; background: var(--nx-line-2); }
.mw-kids { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; padding-top: .6rem; border-top: 1px solid var(--nx-line-2); }
.mw-landing, .mw-multi { animation: nx-fade .3s var(--nx-ease) both; }
/* eco */
.me-cart { display: inline-flex; align-items: center; gap: .3rem; font-weight: 700; }
.me-count { min-width: 20px; height: 20px; border-radius: 999px; background: var(--nx-ink); color: #fff; font-size: .72rem; display: grid; place-items: center; padding: 0 .3rem; transition: transform .2s var(--nx-ease); }
.me-count.is-bump { transform: scale(1.25); background: var(--nx-pink); }
.me-row { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: .8rem; background: #fff; border: 1px solid var(--nx-line); border-radius: 12px; padding: .65rem; margin-bottom: .55rem; }
.me-art { width: 48px; height: 48px; border-radius: 10px; background: var(--c); display: grid; place-items: center; color: var(--nx-purple); font-size: 1.2rem; }
.me-info { min-width: 0; }
.me-info strong { display: block; font-size: .9rem; line-height: 1.3; }
.me-info small { color: var(--nx-muted); }
.me-row .btn.is-added { --bs-btn-color: var(--nx-ok); --bs-btn-border-color: var(--nx-ok); --bs-btn-hover-color: var(--nx-ok); --bs-btn-hover-border-color: var(--nx-ok); --bs-btn-hover-bg: var(--nx-ok-bg); }
.me-sum { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem; font-size: .88rem; font-weight: 600; padding-top: .35rem; }
@media (max-width: 400px) { .me-row { grid-template-columns: 40px minmax(0, 1fr); } .me-art { width: 40px; height: 40px; } .me-row .btn { grid-column: 1 / -1; } }
/* cap */
.mc-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.mc-col { background: #fff; border: 1px dashed var(--nx-line-2); border-radius: 12px; padding: .55rem; min-height: 130px; min-width: 0; }
.mc-col-head { display: flex; justify-content: space-between; font-size: .74rem; font-weight: 700; color: var(--nx-muted); margin-bottom: .5rem; }
.mc-card { background: #fff; border: 1px solid var(--nx-line); border-left: 3px solid var(--nx-purple); border-radius: 10px; padding: .55rem .6rem; box-shadow: var(--nx-shadow); animation: nx-fade .35s var(--nx-ease) both; }
.mc-card strong { display: block; font-size: .85rem; }
.mc-card small { color: var(--nx-muted); font-size: .76rem; line-height: 1.3; display: block; }
.mc-card.is-won { border-left-color: var(--nx-ok); }
.mc-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-top: .9rem; }
@media (max-width: 575.98px) {
    .mc-board { grid-template-columns: 1fr; }
    .mc-col { min-height: 0; display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center; gap: .5rem; padding: .5rem .6rem; }
    .mc-col-head { margin: 0; }
    .mc-col:not(:has(.mc-card))::after { content: "—"; color: var(--nx-line-2); }
}
/* sw */
.ms-list { list-style: none; margin: 0; padding: 0; background: #fff; }
.ms-list li { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .85rem 1rem; border-bottom: 1px solid var(--nx-line); }
.ms-list li:last-child { border-bottom: 0; }
.ms-who { min-width: 0; }
.ms-who strong { display: block; font-size: .9rem; }
.ms-who small { color: var(--nx-muted); font-size: .8rem; }
.ms-btn { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--nx-line-2); background: #fff; min-height: 36px; padding: .25rem .35rem .25rem .7rem; border-radius: 999px; font-size: .78rem; font-weight: 600; color: var(--nx-purple); white-space: nowrap; }
.ms-btn:not([disabled]):hover { border-color: var(--nx-purple); background: var(--nx-tint); }
.ms-btn[disabled] { border-color: transparent; padding-left: .35rem; }

/* Proceso: una card por paso (ref. glm "Cómo funciona") */
.nx-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.nx-step { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--nx-line); border-radius: 20px; box-shadow: 0 1px 2px rgba(29, 26, 44, .04), 0 10px 30px rgba(29, 26, 44, .06); padding: 1.6rem 1.5rem 1.5rem; transition: transform .25s var(--nx-ease), box-shadow .25s var(--nx-ease), border-color .25s; }
.nx-step::before { content: ""; position: absolute; left: 1.5rem; right: 1.5rem; top: -1px; height: 3px; border-radius: 0 0 3px 3px; background: var(--nx-grad); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--nx-ease); }
.nx-step:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(29, 26, 44, .05), 0 20px 40px rgba(29, 26, 44, .1); border-color: #dcd2ee; }
.nx-step:hover::before { transform: scaleX(1); }
.nx-step:hover .nx-step-ico { background: var(--nx-purple); border-color: var(--nx-purple); color: #fff; }
.nx-step:not(:last-child)::after { content: ""; position: absolute; top: 3.1rem; right: calc(-1.5rem - 1px); width: 1.5rem; border-top: 2px dashed var(--nx-line-2); }
.nx-step-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.25rem; }
.nx-step-num { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; font-family: var(--nx-display); font-weight: 700; font-size: 1.1rem; color: var(--nx-purple); background: var(--nx-tint); box-shadow: inset 0 0 0 1px #e1d8f0, 0 0 0 4px #fff, 0 0 0 5px var(--nx-line); }
.nx-step-ico { width: 52px; height: 52px; font-size: 1.35rem; border-color: #d8cdea; }
.nx-step h3 { font-size: 1.3rem; margin: 0 0 .55rem; }
.nx-step .nx-chip { align-self: flex-start; background: var(--nx-info-bg); color: var(--nx-info); }
.nx-step .nx-chip::before { display: none; }
.nx-step-rows { margin-top: 1.15rem; padding-top: 1.15rem; border-top: 1px dashed var(--nx-line-2); display: grid; gap: .9rem; }
.nx-step-row small { display: flex; align-items: center; gap: .35rem; font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--nx-muted); margin-bottom: .2rem; }
.nx-step-row p { margin: 0; font-size: .9rem; line-height: 1.5; color: var(--nx-muted); }
.nx-step-row.is-get { background: var(--nx-ok-bg); border-radius: 12px; padding: .7rem .8rem; }
.nx-step-row.is-get small { color: var(--nx-ok); }
.nx-step-row.is-get p { color: var(--nx-ink); font-weight: 600; }
@media (max-width: 1199.98px) { .nx-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } .nx-step::after { display: none; } }
@media (max-width: 767.98px) {
    .nx-steps { grid-template-columns: 1fr; gap: 1rem; }
    .nx-step { padding: 1.3rem 1.25rem; }
    .nx-step:hover { transform: none; }
}
.nx-guarantees { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.nx-guarantees li { display: flex; gap: .9rem; align-items: center; padding: 1.1rem 1.2rem; border-radius: 16px; background: #fff; border: 1px solid var(--nx-line); }
.nx-guarantees .nx-ico { width: 46px; height: 46px; font-size: 1.15rem; }
.nx-guarantees strong { display: block; font-size: .97rem; }
.nx-guarantees span { font-size: .88rem; color: var(--nx-muted); }
@media (max-width: 767.98px) { .nx-guarantees { grid-template-columns: 1fr; } }

/* Carruseles Swiper (casos y testimonios) */
.nx-carousel .swiper { overflow: hidden; padding: .25rem; margin: -.25rem; }
.nx-carousel .swiper-slide { height: auto; }
.nx-swiper-ctrl { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1.5rem; }
.nx-swiper-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--nx-line-2); background: #fff; color: var(--nx-ink); display: grid; place-items: center; font-size: 1.05rem; box-shadow: var(--nx-shadow); transition: border-color .2s, color .2s, opacity .2s, background-color .2s; }
.nx-swiper-btn:hover:not(:disabled) { border-color: var(--nx-purple); color: #fff; background: var(--nx-purple); }
.nx-swiper-btn:disabled { opacity: .35; cursor: default; }
.nx-swiper-dots { display: flex; align-items: center; gap: .5rem; width: auto !important; }
.nx-swiper-dots .swiper-pagination-bullet { width: 10px; height: 10px; margin: 0 !important; opacity: 1; background: var(--nx-line-2); transition: width .25s var(--nx-ease), background-color .25s; }
.nx-swiper-dots .swiper-pagination-bullet-active { width: 28px; border-radius: 999px; background: var(--nx-purple); }
.nx-carousel.is-static .nx-swiper-ctrl { display: none; }

/* Casos: galería compacta */
.nx-case { position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--nx-line); border-radius: 18px; box-shadow: 0 1px 2px rgba(29, 26, 44, .04), 0 10px 28px rgba(29, 26, 44, .06); overflow: hidden; transition: transform .25s var(--nx-ease), box-shadow .25s var(--nx-ease), border-color .25s; }
.nx-case:not(.is-invite):hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(29, 26, 44, .05), 0 20px 40px rgba(29, 26, 44, .1); border-color: #dcd2ee; }
.nx-case-tag { position: absolute; top: .75rem; left: .75rem; z-index: 1; font-size: .72rem; font-weight: 700; padding: .25rem .6rem; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--nx-ink); box-shadow: 0 2px 6px rgba(0, 0, 0, .12); }
.nx-case-media { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--nx-surface); border-bottom: 1px solid var(--nx-line); overflow: hidden; }
.nx-case-media img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .4s var(--nx-ease); }
.nx-case:hover .nx-case-media img { transform: scale(1.03); }
.nx-case-body { display: flex; flex-direction: column; gap: .4rem; padding: 1.15rem 1.25rem; flex: 1; }
.nx-case-meta { font-size: .78rem; font-weight: 600; color: var(--nx-muted); }
.nx-case-body h3 { font-size: 1.05rem; margin: 0; }
.nx-case-body p { color: var(--nx-muted); margin: 0; font-size: .9rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nx-case-foot { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: auto; padding: .8rem 1.25rem; border-top: 1px solid var(--nx-line); }
.nx-case.is-invite { align-items: flex-start; justify-content: center; gap: .5rem; padding: 1.5rem; background: var(--nx-surface); border-style: dashed; box-shadow: none; }
.nx-case.is-invite h3 { font-size: 1.1rem; margin: .5rem 0 0; }
.nx-case.is-invite p { color: var(--nx-muted); font-size: .9rem; margin: 0 0 .25rem; }
/* mock honesto de tienda con pedido por WhatsApp (sin marca) */
.cm-shop { position: absolute; inset: 0; display: grid; grid-template-rows: auto 1fr auto; gap: .55rem; padding: .9rem; background: linear-gradient(180deg, #fbfaff, #f1edf8); }
.cm-shop-bar { height: 10px; width: 45%; border-radius: 5px; background: var(--nx-line-2); }
.cm-shop-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.cm-shop-grid span { border-radius: 10px; background: #fff; border: 1px solid var(--nx-line); display: grid; grid-template-rows: 1fr auto; padding: .4rem; gap: .3rem; }
.cm-shop-grid span::before { content: ""; border-radius: 7px; background: var(--c, #ece7f6); }
.cm-shop-grid span::after { content: ""; height: 6px; width: 70%; border-radius: 3px; background: var(--nx-line); }
.cm-shop-wa { display: flex; align-items: center; justify-content: center; gap: .4rem; border-radius: 10px; background: #0f7a3f; color: #fff; font-size: .78rem; font-weight: 700; padding: .5rem; }

/* Testimonios */
.nx-quote { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--nx-line); border-radius: var(--nx-r); box-shadow: var(--nx-shadow); padding: 1.5rem; height: 100%; }
.nx-quote-top { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.nx-quote-mark { font-size: 1.6rem; color: var(--nx-line-2); }

/* FAQ (ref. glm: ícono por pregunta, abierta resaltada) */
.nx-faq-side { position: sticky; top: 100px; display: grid; gap: 1rem; }
.nx-faq-card { display: flex; gap: 1rem; padding: 1.25rem; border-radius: 16px; background: #fff; border: 1px solid var(--nx-line); }
.nx-faq-card p { color: var(--nx-muted); margin: .2rem 0 .75rem; font-size: .93rem; }
.nx-faq-card .nx-ico { color: #0b6b37; }
.nx-faq { display: grid; gap: .65rem; }
.nx-faq .accordion-item { border: 1px solid var(--nx-line) !important; border-radius: 16px !important; overflow: hidden; background: #fff; transition: border-color .2s, box-shadow .2s; }
.nx-faq .accordion-item:has(.accordion-button:not(.collapsed)) { border-color: #cdbfe6 !important; box-shadow: 0 10px 28px rgba(96, 51, 139, .08); }
.nx-faq .accordion-button { gap: .85rem; font-weight: 600; font-size: 1rem; line-height: 1.35; color: var(--nx-ink); background: #fff; padding: 1rem 1.15rem; box-shadow: none; }
.nx-faq .accordion-button:not(.collapsed) { background: #faf8fe; }
.nx-faq .accordion-button::after { display: none; }
.nx-faq .accordion-button:focus-visible { box-shadow: inset 0 0 0 3px rgba(96, 51, 139, .3); }
.nx-faq .nx-faq-q-ico { flex: 0 0 auto; width: 34px; height: 34px; font-size: .95rem; }
.nx-faq .nx-faq-icon { margin-left: auto; flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--nx-line-2); color: var(--nx-purple); transition: transform .25s var(--nx-ease), background-color .2s, color .2s; }
.nx-faq .accordion-button:not(.collapsed) .nx-faq-icon { transform: rotate(45deg); background: var(--nx-purple); border-color: var(--nx-purple); color: #fff; }
.nx-faq .accordion-body { padding: .9rem 1.15rem 1.15rem calc(1.15rem + 34px + .85rem); color: var(--nx-ink-2); border-top: 1px dashed var(--nx-line-2); background: #faf8fe; }
@media (max-width: 575.98px) { .nx-faq .accordion-body { padding-left: 1.15rem; } }
@media (max-width: 991.98px) { .nx-faq-side { position: static; } }
/* Ayudante "¿qué servicio necesito?" */
.nx-helper { border-radius: 16px; background: #fff; border: 1px solid var(--nx-line); box-shadow: var(--nx-shadow); overflow: hidden; }
.nx-helper-head { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.15rem; border-bottom: 1px solid var(--nx-line); }
.nx-helper-head strong { display: block; }
.nx-helper-head small { color: var(--nx-muted); }
.nx-helper-opts { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: 1rem 1.15rem; }
.nx-helper-opts button { display: flex; align-items: center; gap: .5rem; text-align: left; min-height: 44px; padding: .55rem .7rem; border: 1px solid var(--nx-line-2); border-radius: 12px; background: #fff; font-size: .86rem; font-weight: 600; color: var(--nx-ink-2); transition: border-color .2s, background-color .2s, color .2s; }
.nx-helper-opts button i { color: var(--nx-purple); }
.nx-helper-opts button:hover { border-color: var(--nx-purple); }
.nx-helper-opts button[aria-pressed="true"] { background: var(--nx-tint); border-color: var(--nx-purple); color: var(--nx-ink); }
.nx-helper-out { margin: 0 1.15rem 1.15rem; padding: 1rem; border-radius: 12px; background: var(--nx-surface); border: 1px dashed var(--nx-line-2); }
.nx-helper-out.is-in { animation: nx-fade .3s var(--nx-ease) both; }
.nx-helper-out p { margin: .35rem 0 .85rem; font-size: .9rem; color: var(--nx-muted); }
.nx-helper-out .nx-helper-svc { display: flex; align-items: center; gap: .6rem; font-weight: 700; }
.nx-helper-out .nx-helper-price { margin-left: auto; font-size: .82rem; font-weight: 700; color: var(--nx-purple); }
@media (max-width: 400px) { .nx-helper-opts { grid-template-columns: 1fr; } }

/* CTA final con dos caminos */
#cta { padding-bottom: 4.5rem; }
.nx-paths { display: grid; gap: .75rem; }
.nx-path { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 1rem; padding: 1rem 1.25rem; border-radius: var(--nx-r); background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); color: #fff; text-decoration: none; transition: background-color .2s, border-color .2s; }
.nx-path:hover { color: #fff; background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .25); }
.nx-path > i:first-child { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-size: 1.2rem; border: 1px solid rgba(255, 255, 255, .22); }
.nx-path.is-main > i:first-child { background: #0f7a3f; border-color: #0f7a3f; }
.nx-path strong { display: block; }
.nx-path small { color: rgba(255, 255, 255, .7); }
.nx-path > i:last-child { transition: transform .2s var(--nx-ease); }
.nx-path:hover > i:last-child { transform: translateX(3px); }

/* "Cómo trabajamos" en mobile: carrusel (Swiper se inicia solo <768px) */
.nx-steps-swiper:not(.swiper-initialized) { overflow: visible; }
.nx-steps-swiper:not(.swiper-initialized) .nx-steps { display: grid; transform: none !important; }
.nx-steps-swiper.swiper-initialized .nx-steps { display: flex; gap: 0; }
.nx-steps-swiper.swiper-initialized .nx-step { height: auto; }
.nx-steps-swiper.swiper-initialized .nx-step::after { display: none !important; }
.nx-steps-wrap .nx-swiper-ctrl { display: none; }
@media (max-width: 767.98px) { .nx-steps-wrap .nx-swiper-ctrl { display: flex; } }

/* Íconos centrados ópticamente dentro de sus círculos (Bootstrap Icons trae vertical-align: -.125em) */
.nx-ico > i, .nx-social i, .nx-burger i, .nx-swiper-btn i, .nx-wa-btn i, .nx-top i, .nx-faq-icon i, .nx-feed-icon i, .nx-wa-dot i, .nx-feed-pause i, .nx-topbar-social i { display: block; line-height: 1; }
.nx-ico > i::before, .nx-social i::before, .nx-burger i::before, .nx-swiper-btn i::before, .nx-wa-btn i::before, .nx-top i::before, .nx-faq-icon i::before, .nx-feed-icon i::before, .nx-wa-dot i::before, .nx-path > i:first-child::before, .nx-feed-pause i::before, .nx-topbar-social i::before { vertical-align: top; }
.nx-contact li > a, .nx-contact li > span { line-height: 1.3; }

/* Footer en mobile: cada columna centrada */
@media (max-width: 575.98px) {
    .nx-footer .row > div { text-align: center; }
    .nx-footer .nx-brand { justify-content: center; }
    .nx-footer-about { margin-inline: auto; }
    .nx-footer .nx-social { justify-content: center; }
    .nx-footer-title::after { left: 50%; transform: translateX(-50%); }
    .nx-linklist { padding-left: 0; border-left: 0; justify-items: center; }
    .nx-linklist a { padding-left: 0; }
    .nx-linklist a::before { display: none; }
    .nx-contact { justify-items: center; }
    .nx-pay { flex-direction: column; justify-content: center; }
    .nx-pay ul { justify-content: center; }
    .nx-footer-bottom { flex-direction: column; align-items: center; text-align: center; }
}

/* Garantías en mobile: una sola tarjeta con separadores (menos scroll) */
@media (max-width: 767.98px) {
    .nx-guarantees { gap: 0; background: #fff; border: 1px solid var(--nx-line); border-radius: 16px; overflow: hidden; margin-top: 1.5rem; }
    .nx-guarantees li { border: 0; border-radius: 0; padding: .9rem 1rem; }
    .nx-guarantees li + li { border-top: 1px solid var(--nx-line); }
    .nx-guarantees .nx-ico { width: 40px; height: 40px; font-size: 1rem; }
}
.nx-brand img { height: 26px; width: auto; flex: 0 0 auto; }
.nx-menu .offcanvas-header .nx-brand img { height: 24px; }
