/* CABBITY_LIGHT_THEME_V1
 * Fuente única de los tokens que comparten Vue y el HTML estático.
 * La escena es la mesa de trabajo de una PYME dominicana: luz cálida, papel,
 * tinta legible y ámbar reservado para decisiones. No es una copia del runtime
 * de Nuxt; es un contrato CSS plano que también puede viajar a public/.
 */
@font-face { font-family: "Onest"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/cabbity-onest-400.woff2") format("woff2"); }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/cabbity-onest-500.woff2") format("woff2"); }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/cabbity-onest-600.woff2") format("woff2"); }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/cabbity-onest-700.woff2") format("woff2"); }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 800; font-display: swap; src: url("fonts/cabbity-onest-800.woff2") format("woff2"); }

:root {
  --cb-font-sans: "Onest", ui-sans-serif, system-ui, sans-serif;
  --cb-font-weight-regular: 400;
  --cb-font-weight-medium: 500;
  --cb-font-weight-semibold: 600;
  --cb-font-weight-bold: 700;
  --cb-font-weight-extrabold: 800;
  --cb-text-label: 0.8125rem;
  --cb-text-body: 1rem;
  --cb-text-lead: 1.1875rem;
  --cb-text-heading: clamp(1.875rem, 4.4vw, 2.625rem);
  --cb-text-display: clamp(2.125rem, 6vw, 3.625rem);
  --cb-token-cream: #FBF8F3;
  --cb-token-ink: #1B1815;
  --cb-token-brand: #F2A81B;
  --cb-token-brand-ink: #C2760A;
  --cb-token-line: #EFE7DA;
  --cb-token-line-strong: #E3DACB;
  --color-cream: var(--cb-token-cream);
  --color-ink: var(--cb-token-ink);
  --color-brand: var(--cb-token-brand);
  --color-brand-ink: var(--cb-token-brand-ink);
  --color-line: var(--cb-token-line);
  --color-line-strong: var(--cb-token-line-strong);
  --cb-theme-bg: var(--cb-token-cream);
  --cb-theme-surface-1: #F6F0E6;
  --cb-theme-surface-2: #FFFDF9;
  --cb-theme-surface-3: #FFFFFF;
  --cb-theme-chrome: rgba(255, 253, 249, .94);
  --cb-theme-text: var(--cb-token-ink);
  --cb-theme-text-2: #3F3933;
  --cb-theme-text-3: #5B534A;
  --cb-theme-text-muted: #6E655B;
  --cb-theme-accent: var(--cb-token-brand-ink);
  --cb-theme-accent-hi: var(--cb-token-brand-ink);
  --cb-theme-amber-fill: var(--cb-token-brand);
  --cb-theme-on-accent: var(--cb-token-ink);
  --cb-theme-positive: #26704B;
  --cb-theme-line: var(--cb-token-line);
  --cb-theme-line-strong: var(--cb-token-line-strong);
  --cb-theme-line-accent: rgba(194, 118, 10, .42);
  --cb-theme-edge: #EFE7DA;
  --cb-theme-shadow-chrome: inset 0 1px 0 #FFFFFF, 0 8px 24px -16px rgba(74, 55, 31, .24);
  --cb-theme-shadow-pop: inset 0 1px 0 #FFFFFF, 0 18px 44px -16px rgba(74, 55, 31, .20), 0 4px 12px -6px rgba(74, 55, 31, .14);
  --cb-theme-shadow-accent: 0 8px 20px -12px rgba(194, 118, 10, .42);
  --cb-theme-radius-sm: 9px;
  --cb-theme-radius-md: 12px;
  --cb-theme-radius-lg: 18px;
  --cb-theme-radius-xl: 24px;
  --cb-theme-ease: cubic-bezier(.23, 1, .32, 1);
  --cb-marquee-gap: 14px;
}

@keyframes cbRise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes cbFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes cbMarquee { from { transform: translateX(0); } to { transform: translateX(calc(-100% - var(--cb-marquee-gap, 14px))); } }
@keyframes cbPulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.82); } }
@keyframes cbBlob { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(28px, -22px) scale(1.08); } }
@keyframes cbSweep { from { transform: translateX(-120%); } to { transform: translateX(320%); } }

/* Contrato visual para las entradas estáticas. Se carga después de sus estilos
 * heredados para poder sustituirlos sin duplicar cada página. */
html,
body {
  background: var(--cb-theme-bg) !important;
  color: var(--cb-theme-text) !important;
}

body {
  overflow-x: clip !important;
  font-family: var(--cb-font-sans) !important;
}

body,
main,
section,
article,
header { color: var(--cb-theme-text); }

body:not(.landing-app) footer {
  color: rgba(251, 248, 243, .88) !important;
}

a { color: inherit; }

body:not(.landing-app) nav.top {
  background: var(--cb-theme-chrome) !important;
  border-bottom: 1px solid var(--cb-theme-line) !important;
  box-shadow: var(--cb-theme-shadow-chrome) !important;
  backdrop-filter: blur(14px) !important;
}

/* CABBITY_SHARED_CHROME_V1: el manifest y estos selectores son la única piel
 * del chrome común que comparten Vue y los 16 documentos estáticos. */
.cb-shared-navigation,
.cb-shared-navigation * { box-sizing: border-box; }

.cb-login-cta {
  background: transparent !important;
  border: 2px solid #C2760A !important;
  color: #1B1815 !important;
  min-height: 44px;
  box-shadow: none !important;
}
.cb-login-cta:hover { background: rgba(242, 168, 27, .14) !important; border: 2px solid #C2760A !important; }
.cb-login-cta:active,
.cb-login-cta:focus { background: transparent !important; border: 2px solid #C2760A !important; }
.cb-login-cta:focus-visible {
  background: transparent !important;
  border: 2px solid #C2760A !important;
  outline: 3px solid #F2A81B !important;
  outline-offset: 3px !important;
}
.cb-create-cta {
  background: #1B1815 !important;
  border: 2px solid transparent !important;
  color: #FBF8F3 !important;
  min-height: 44px;
}
.cb-create-cta:hover { background: #2C2722 !important; }

body:not(.landing-app) .cb-static-nav {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100%;
  background: var(--cb-theme-chrome);
  border-bottom: 1px solid var(--cb-theme-line);
  box-shadow: var(--cb-theme-shadow-chrome);
  backdrop-filter: blur(14px);
}
.cb-static-nav__inner { width: min(100% - 2.5rem, 1240px); min-height: 76px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cb-static-nav__logo { display: inline-flex; min-height: 44px; align-items: center; gap: 10px; color: var(--cb-token-ink) !important; font-size: 21px; font-weight: 800; letter-spacing: -.025em; line-height: 1; white-space: nowrap; }
.cb-static-nav__logo img { width: auto; height: 32px; object-fit: contain; }
.cb-static-nav__wordmark { display: flex; flex-direction: column; }
.cb-static-nav__wordmark small { margin-top: 4px; color: var(--cb-token-brand-ink); font-family: var(--cb-font-sans); font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.cb-static-nav__desktop > ul { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.cb-static-nav__desktop li { list-style: none; }
.cb-static-nav__top-link,
.cb-static-nav__desktop summary { display: inline-flex; min-height: 44px; align-items: center; gap: 6px; padding: 12px 16px; border-radius: 999px; color: var(--cb-theme-text-2) !important; font-size: 15px; font-weight: 600; cursor: pointer; }
.cb-static-nav__top-link:hover,
.cb-static-nav__desktop summary:hover,
.cb-static-nav__top-link[aria-current="page"] { background: #FFFFFF; color: var(--cb-token-brand-ink) !important; }
.cb-static-nav__desktop details { position: relative; }
.cb-static-nav__desktop summary { list-style: none; }
.cb-static-nav__desktop summary::-webkit-details-marker,
.cb-static-mobile summary::-webkit-details-marker { display: none; }
.cb-static-nav__desktop summary::marker,
.cb-static-mobile summary::marker { content: ''; }
.cb-static-nav__chevron { display: inline-block; font-size: 16px; line-height: 1; transition: transform 160ms ease; }
.cb-static-nav__desktop details[open] .cb-static-nav__chevron,
.cb-static-mobile details[open] .cb-static-nav__chevron { transform: rotate(180deg); }
.cb-static-nav__panel { position: absolute; top: calc(100% + 8px); left: 0; width: 290px; padding: 8px; border: 1px solid var(--cb-theme-line); border-radius: 16px; background: #FFFFFF; box-shadow: var(--cb-theme-shadow-pop); }
.cb-static-nav__panel ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.cb-static-nav__link { display: flex; min-height: 44px; flex-direction: column; justify-content: center; padding: 10px 12px; border-radius: 12px; color: var(--cb-theme-text) !important; font-size: 14px; font-weight: 800; }
.cb-static-nav__link:hover,
.cb-static-nav__link[aria-current="page"] { background: var(--cb-theme-bg); color: var(--cb-token-brand-ink) !important; }
.cb-static-nav__description { margin-top: 2px; color: var(--cb-theme-text-3); font-size: 12px; font-weight: 400; line-height: 1.35; }
.cb-static-nav__actions { display: flex; align-items: center; gap: 8px; }
.cb-static-nav__login,
.cb-static-nav__signup { display: inline-flex; align-items: center; border-radius: 999px; padding: 12px 16px; font-size: 15px; font-weight: 700; white-space: nowrap; }
.cb-static-mobile { display: none; }
.cb-static-mobile__toggle { list-style: none; }
.cb-static-mobile__icon { display: inline; font-size: 20px; line-height: 1; }
.cb-static-mobile__close { display: none; font-size: 24px; line-height: .8; }
.cb-static-mobile[open] .cb-static-mobile__icon { display: none; }
.cb-static-mobile[open] .cb-static-mobile__close { display: inline; }
.cb-static-mobile__panel { position: absolute; top: 100%; right: 0; left: 0; border-top: 1px solid var(--cb-theme-line); background: #FFFFFF; box-shadow: var(--cb-theme-shadow-chrome); }
.cb-static-mobile__panel nav { width: min(100% - 2.5rem, 1240px); margin-inline: auto; padding: 16px 0; }
.cb-static-mobile__group { border-bottom: 1px solid var(--cb-theme-line); }
.cb-static-mobile__group summary { display: flex; min-height: 44px; align-items: center; justify-content: space-between; color: var(--cb-theme-text); font-size: 14px; font-weight: 800; list-style: none; }
.cb-static-mobile__group ul { display: grid; gap: 4px; margin: 0 0 8px; padding: 0; list-style: none; }
.cb-static-mobile__group .cb-static-nav__link { padding-inline: 12px; }
.cb-static-mobile__link { display: flex; min-height: 44px; align-items: center; padding: 12px; color: var(--cb-theme-text) !important; font-size: 14px; font-weight: 800; }
.cb-static-mobile__auth { display: flex; align-items: center; justify-content: center; margin-top: 8px; border-radius: 999px; padding: 12px 16px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

/*
 * Las páginas estáticas traen una receta editorial antigua que declara `details`
 * y `summary` globales. Esa cascada puede ganar al comportamiento de disclosure
 * nativo: el panel cerrado conserva layout, las respuestas FAQ inflan el
 * documento y el menú móvil acaba mostrando grupos fuera de su chrome. El
 * contrato compartido se aísla aquí, además de fijar el fallback nativo para que
 * el HTML siga siendo correcto aunque el cliente JS tarde o no cargue.
 */
body:not(.landing-app) details:not([open]) > :not(summary) { display: none !important; }
body:not(.landing-app) .cb-static-nav__desktop details,
body:not(.landing-app) .cb-static-mobile,
body:not(.landing-app) .cb-static-mobile__group {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  transition: none !important;
}
body:not(.landing-app) .cb-static-mobile__group { border-bottom: 1px solid var(--cb-theme-line) !important; }
body:not(.landing-app) .cb-static-nav__desktop details:not([open]) > .cb-static-nav__panel,
body:not(.landing-app) .cb-static-mobile:not([open]) > .cb-static-mobile__panel,
body:not(.landing-app) .cb-static-mobile__group:not([open]) > ul { display: none !important; }
body:not(.landing-app) .cb-static-nav__desktop summary,
body:not(.landing-app) .cb-static-mobile__group > summary {
  margin: 0;
  border: 0;
  background: transparent;
  box-sizing: border-box;
  min-height: 44px !important;
}
body:not(.landing-app) .cb-static-mobile__group > summary { padding: 12px; }
body:not(.landing-app) .cb-static-mobile__toggle {
  margin: 0;
  padding: 0;
  border: 1px solid var(--cb-theme-line-strong);
  background: #FFFFFF;
  box-sizing: border-box;
  min-height: 44px !important;
  height: 44px !important;
}

body:not(.landing-app) .cb-static-footer { background: var(--cb-token-ink) !important; color: rgba(251, 248, 243, .88) !important; }
.cb-static-footer__grid { width: min(100% - 2.5rem, 1240px); margin-inline: auto; padding: 64px 0 32px; display: grid; grid-template-columns: 1.3fr repeat(3, 1fr); gap: 40px; }
.cb-static-footer__logo { display: inline-flex; min-height: 44px; align-items: center; }
.cb-static-footer__logo img { width: auto; height: 32px; object-fit: contain; }
.cb-static-footer__grid p { max-width: 260px; margin: 14px 0 0; color: rgba(251, 248, 243, .7) !important; font-size: 14.5px; line-height: 1.6; }
.cb-static-footer__heading { color: var(--cb-token-brand) !important; font-family: var(--cb-font-sans); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.cb-static-footer__links { display: grid; gap: 4px; margin-top: 16px; }
.cb-static-footer__link { display: inline-flex; min-height: 44px; align-items: center; padding: 12px 0; color: #FBF8F3 !important; font-size: 14.5px; }
.cb-static-footer__link:hover,
.cb-static-footer__link[aria-current="page"] { color: #FBF8F3 !important; text-decoration: underline; text-underline-offset: 3px; }
.cb-static-footer__contact { width: min(100% - 2.5rem, 1240px); margin-inline: auto; padding: 24px 0; border-top: 1px solid rgba(251, 248, 243, .1); color: rgba(251, 248, 243, .72) !important; font-size: 13.5px; text-align: center; }
.cb-static-footer__contact p { margin: 0; }
.cb-static-footer__contact a { display: inline-flex; min-height: 44px; align-items: center; color: #FBF8F3 !important; }
.cb-static-footer__instagram { gap: 8px; }
.cb-static-footer__instagram-icon { width: 16px; height: 16px; flex: 0 0 auto; }
.cb-static-footer__copyright { width: min(100% - 2.5rem, 1240px); margin-inline: auto; padding: 20px 0 40px; border-top: 1px solid rgba(251, 248, 243, .1); color: rgba(251, 248, 243, .55) !important; font-size: 13.5px; }

@media (min-width: 640px) {
  .cb-static-nav__inner,
  .cb-static-footer__grid,
  .cb-static-footer__contact,
  .cb-static-footer__copyright { width: min(100% - 5rem, 1240px); }
  .cb-static-mobile__panel nav { width: min(100% - 5rem, 1240px); }
}
@media (max-width: 1023px) {
  .cb-static-nav__desktop,
  .cb-static-nav__login,
  .cb-static-nav__signup { display: none; }
  .cb-static-mobile { display: block; position: static; }
  .cb-static-nav__actions { margin-left: auto; }
  .cb-static-mobile__toggle { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--cb-theme-line-strong); border-radius: 999px; background: #FFFFFF; color: var(--cb-token-ink); cursor: pointer; }
  .cb-static-mobile__toggle:hover { border-color: var(--cb-token-ink); }
  .cb-static-mobile__panel { right: 0; left: 0; }
  .cb-static-footer__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
  .cb-static-nav__inner,
  .cb-static-footer__grid,
  .cb-static-footer__contact,
  .cb-static-footer__copyright { width: calc(100% - 2.5rem); }
  .cb-static-footer__grid { grid-template-columns: 1fr; }
}

body:not(.landing-app) .logo-text,
body:not(.landing-app) h1,
body:not(.landing-app) h2,
body:not(.landing-app) h3,
body:not(.landing-app) .feature-card h3,
body:not(.landing-app) .step h3,
body:not(.landing-app) summary,
body:not(.landing-app) .plazo-dgii__title,
body:not(.landing-app) .plazo-dgii__copy time { color: var(--cb-theme-text) !important; font-family: var(--cb-font-sans) !important; }

body:not(.landing-app) .hero,
body:not(.landing-app) .article,
body:not(.landing-app) .head-blog,
body:not(.landing-app) .section-bg,
body:not(.landing-app) .cierre-block,
body:not(.landing-app) .cta-section { background: var(--cb-theme-bg) !important; }

body:not(.landing-app) .section-bg,
body:not(.landing-app) .cierre-block { border-color: var(--cb-theme-line) !important; }

body:not(.landing-app) .feature-card,
body:not(.landing-app) .check-step,
body:not(.landing-app) .status-card,
body:not(.landing-app) .related-card,
body:not(.landing-app) .post-card,
body:not(.landing-app) details,
body:not(.landing-app) .section-bg details,
body:not(.landing-app) .plazo {
  background: var(--cb-theme-surface-2) !important;
  border-color: var(--cb-theme-line) !important;
  box-shadow: 0 8px 24px -18px rgba(74, 55, 31, .28) !important;
}

body:not(.landing-app) [style*="color:#F4F4F2"],
body:not(.landing-app) [style*="color: #F4F4F2"],
body:not(.landing-app) [style*="color:rgba(255,255,255"],
body:not(.landing-app) [style*="color: rgba(255,255,255"] { color: var(--cb-theme-text-2) !important; }

body:not(.landing-app) [style*="color:#F5A623"],
body:not(.landing-app) [style*="color: #F5A623"] { color: var(--cb-theme-accent-hi) !important; }

body:not(.landing-app) .eyebrow,
body:not(.landing-app) .section-label,
body:not(.landing-app) .amber,
body:not(.landing-app) .plazo-dgii__label,
body:not(.landing-app) .plazo-dgii__days,
body:not(.landing-app) .plazo-txt time,
body:not(.landing-app) footer a,
body:not(.landing-app) .cat-note a,
body:not(.landing-app) .check-step a { color: var(--cb-theme-accent-hi) !important; }

body:not(.landing-app) .eyebrow::before,
body:not(.landing-app) .section-label::before,
body:not(.landing-app) .amber-line { background: var(--cb-theme-amber-fill) !important; }

body:not(.landing-app) .btn-primary,
body:not(.landing-app) .nav-cta,
body:not(.landing-app) .cta-section,
body:not(.landing-app) .btn-dark {
  background: var(--cb-theme-amber-fill) !important;
  color: var(--cb-theme-on-accent) !important;
  border-color: var(--cb-theme-amber-fill) !important;
  box-shadow: var(--cb-theme-shadow-accent) !important;
}

body:not(.landing-app) .btn-primary:hover,
body:not(.landing-app) .nav-cta:hover { background: #FFC34D !important; }

body:not(.landing-app) .btn-secondary { color: var(--cb-theme-text) !important; border-color: var(--cb-theme-line-strong) !important; }
body:not(.landing-app) .btn-secondary:hover,
body:not(.landing-app) .btn-secondary:focus-visible { border-color: var(--cb-theme-accent) !important; }

body:not(.landing-app) .hero p,
body:not(.landing-app) .hero-lead,
body:not(.landing-app) .section-sub,
body:not(.landing-app) .body-txt,
body:not(.landing-app) .feature-card p,
body:not(.landing-app) .step p,
body:not(.landing-app) .faq-body,
body:not(.landing-app) .cat-card p,
body:not(.landing-app) .check-step p,
body:not(.landing-app) .trust-note,
body:not(.landing-app) .contacto-texto,
body:not(.landing-app) .plazo-dgii__hook,
body:not(.landing-app) .plazo-dgii__time,
body:not(.landing-app) .plazo-dgii__copy,
body:not(.landing-app) .plazo-dgii__count { color: var(--cb-theme-text-3) !important; }

/* landing-consistencia-texto-y-logo-footer: jerarquía de texto heredada del
   tema oscuro que las 16 estáticas seguían arrastrando (blog, ecf-2026,
   contadores, checklists de las páginas de servicio). Tres niveles: cuerpo de
   artículo (más legible), tarjetas/nav secundarios, y metadatos/etiquetas. */
body:not(.landing-app) .prose p,
body:not(.landing-app) .prose ul,
body:not(.landing-app) .prose ol,
body:not(.landing-app) .lead,
body:not(.landing-app) .callout p,
body:not(.landing-app) .comparison td,
body:not(.landing-app) .hecho,
body:not(.landing-app) .check-list li { color: var(--cb-theme-text-2) !important; }

body:not(.landing-app) .related-card p,
body:not(.landing-app) .post-card p,
body:not(.landing-app) .head-blog p.sub,
body:not(.landing-app) .pillar-box p,
body:not(.landing-app) .cat-note,
body:not(.landing-app) .cost-block p,
body:not(.landing-app) .status-card p,
body:not(.landing-app) .nav-links a,
body:not(.landing-app) .crumb a { color: var(--cb-theme-text-3) !important; }

body:not(.landing-app) .post-meta,
body:not(.landing-app) .article-meta,
body:not(.landing-app) .crumb,
body:not(.landing-app) .who-tag,
body:not(.landing-app) .cabbity-tag,
body:not(.landing-app) .cross,
body:not(.landing-app) .comparison th { color: var(--cb-theme-text-muted) !important; }

/* Excepciones: la celda de encabezado destacada y los estados hover que la
   regla anterior, al llevar !important, dejaría congelados. */
body:not(.landing-app) .comparison th.col-cf { color: var(--cb-theme-accent-hi) !important; }
body:not(.landing-app) .nav-links a:hover { color: var(--cb-theme-text) !important; }
body:not(.landing-app) .crumb a:hover { color: var(--cb-theme-accent-hi) !important; }

/* El skip-link quedaba crema sobre ámbar (contraste pobre) tras el barrido de
   #F5A623 → #F2A81B; el resto de los CTA ámbar ya usan tinta oscura encima. */
body:not(.landing-app) .skip-link { color: var(--cb-theme-on-accent) !important; }

.feature-icon,
.check-icon,
.step-num,
.badge {
  background: rgba(242, 168, 27, .12) !important;
  border-color: rgba(194, 118, 10, .42) !important;
  color: var(--cb-theme-accent-hi) !important;
}

/* Barrido de las recetas inline heredadas. `!important` es deliberado: las
   páginas públicas son HTML antiguo y sus paneles llevaban estilos inline. */
body:not(.landing-app) * { font-family: var(--cb-font-sans) !important; }
body:not(.landing-app) .cta-section,
body:not(.landing-app) .btn-dark,
body:not(.landing-app) .nav-cta,
body:not(.landing-app) .btn-primary { background: var(--cb-token-brand) !important; }
body:not(.landing-app) .cta-section h2,
body:not(.landing-app) .cta-section p,
body:not(.landing-app) .btn-dark { color: var(--cb-token-ink) !important; }
body:not(.landing-app) .hero-orb { background: transparent !important; }
/* La escoba original (`[style*="color"]`) aplastaba CUALQUIER color inline,
   incluidos estados fiscales legítimos (#22c55e/#ef4444 en el widget de P&L),
   ámbar de marca (#F2A81B) y tinta (#1B1815). Se restringe a los residuos
   concretos que sí quedaban ilegibles: el CTA secundario crema sobre fondo
   ámbar (#FBF8F3) y los grises heredados del tema oscuro. */
body:not(.landing-app) [style*="color:#FBF8F3"] { color: var(--cb-theme-text-2) !important; }
body:not(.landing-app) [style*="color:#B4B4AE"] { color: var(--cb-theme-text-3) !important; }
body:not(.landing-app) [style*="color:#9A9A94"] { color: var(--cb-theme-text-muted) !important; }
body:not(.landing-app) [style*="color:#F2A81B"] { color: var(--cb-theme-accent-hi) !important; }
body:not(.landing-app) .cta-section h2,
body:not(.landing-app) .btn-primary,
body:not(.landing-app) .btn-dark { color: var(--cb-token-ink) !important; }
body:not(.landing-app) [style*="color:#22c55e"],
body:not(.landing-app) [style*="color: #22c55e"] { color: var(--cb-theme-positive) !important; }
body:not(.landing-app) [style*="font-family"] { font-family: var(--cb-font-sans) !important; }
body:not(.landing-app) footer { background: var(--cb-token-ink) !important; border-color: rgba(251,248,243,.12) !important; }

summary { min-height: 56px !important; }
details[open] { border-color: var(--cb-theme-line-accent) !important; }

  a:not(.cb-login-cta):focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
.btn-primary:focus-visible,
.btn-secondary:focus-visible,
.nav-cta:focus-visible {
  outline: 3px solid var(--cb-theme-accent) !important;
  outline-offset: 3px !important;
}

.footer-nav a,
.footer-nav a[aria-current="page"] { color: rgba(251, 248, 243, .72) !important; }
.footer-nav a:hover,
.footer-nav a[aria-current="page"] { color: var(--cb-token-brand) !important; }

body:not(.landing-app) footer p { color: rgba(251, 248, 243, .72) !important; }
body:not(.landing-app) footer a,
body:not(.landing-app) footer a[style*="color"] { color: var(--cb-token-brand) !important; }

@media (max-width: 639px) {
  .wrap { padding-inline: 1rem !important; }
  .hero { padding-top: 96px !important; }
  .hero h1 { letter-spacing: -.04em !important; }
  .plazo-dgii__card { padding: 20px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

/* Última capa deliberada: las recetas antiguas tienen selectores globales con
 * !important. Estos selectores acotados mantienen el contrato del chrome común
 * después de cargar esos estilos, incluido el color exacto del anillo de foco. */
body:not(.landing-app) .cb-login-cta,
.landing-app .cb-login-cta {
  background: transparent !important;
  border: 2px solid #C2760A !important;
  color: #1B1815 !important;
}
body:not(.landing-app) .cb-login-cta:hover,
body:not(.landing-app) .cb-login-cta:active,
.landing-app .cb-login-cta:hover,
.landing-app .cb-login-cta:active {
  background: rgba(242, 168, 27, .14) !important;
  border: 2px solid #C2760A !important;
}
body:not(.landing-app) .cb-login-cta:focus,
.landing-app .cb-login-cta:focus {
  border: 2px solid #C2760A !important;
}
body:not(.landing-app) .cb-login-cta:focus-visible,
.landing-app .cb-login-cta:focus-visible {
  background: transparent !important;
  border: 2px solid #C2760A !important;
  outline: 3px solid #F2A81B !important;
  outline-offset: 3px !important;
}
body:not(.landing-app) .cb-create-cta,
.landing-app .cb-create-cta {
  background: #1B1815 !important;
  border: 2px solid transparent !important;
  color: #FBF8F3 !important;
}
body:not(.landing-app) .cb-static-footer__links a { color: #FBF8F3 !important; }
body:not(.landing-app) .cb-static-footer__links a:hover,
body:not(.landing-app) .cb-static-footer__links a[aria-current="page"] { color: #FBF8F3 !important; }
body:not(.landing-app) .cb-static-footer__contact .cb-static-footer__contact-link,
body:not(.landing-app) .cb-static-footer__contact .cb-static-footer__contact-link:hover,
body:not(.landing-app) .cb-static-footer__contact .cb-static-footer__contact-link[aria-current="page"] { color: #FBF8F3 !important; }

/* Autoridad final para los controles compartidos: elimina la deriva entre Vue
 * y los documentos estáticos sin cambiar sus destinos ni su contenido. */
.landing-app .cb-navlink,
body:not(.landing-app) .cb-static-nav__top-link,
body:not(.landing-app) .cb-static-nav__desktop summary { color: var(--cb-theme-text-2) !important; }
.landing-app .cb-navlink:hover,
.landing-app .cb-navlink[aria-current="page"],
body:not(.landing-app) .cb-static-nav__top-link:hover,
body:not(.landing-app) .cb-static-nav__top-link[aria-current="page"],
body:not(.landing-app) .cb-static-nav__desktop summary:hover { background: #FFFFFF !important; color: var(--cb-token-brand-ink) !important; }
.landing-app .cb-navlink:focus-visible,
body:not(.landing-app) .cb-static-nav__top-link:focus-visible,
body:not(.landing-app) .cb-static-nav__desktop summary:focus-visible { outline: 3px solid var(--cb-token-brand-ink) !important; outline-offset: 3px !important; }

.cb-shared-footer__link,
.cb-shared-footer__link:hover,
.cb-shared-footer__link[aria-current="page"],
.cb-shared-footer__contact-link,
.cb-shared-footer__contact-link:hover { color: #FBF8F3 !important; }
.cb-shared-footer__link:hover,
.cb-shared-footer__link[aria-current="page"],
.cb-shared-footer__contact-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.cb-shared-footer a:focus-visible { outline: 3px solid var(--cb-token-brand) !important; outline-offset: 3px !important; }

body:not(.landing-app) .cta-section { background: var(--cb-token-brand) !important; }
body:not(.landing-app) .cta-section h2,
body:not(.landing-app) .cta-section p { color: var(--cb-token-ink) !important; }
body:not(.landing-app) .btn-primary,
body:not(.landing-app) .btn-dark { min-height: 44px; background: var(--cb-token-ink) !important; border: 2px solid var(--cb-token-ink) !important; color: #FBF8F3 !important; }
body:not(.landing-app) .btn-secondary,
body:not(.landing-app) .cta-section a:not(.btn-primary):not(.btn-dark) { min-height: 44px; background: rgba(255, 255, 255, .72) !important; border: 2px solid var(--cb-token-ink) !important; color: var(--cb-token-ink) !important; }
body:not(.landing-app) .btn-primary:hover,
body:not(.landing-app) .btn-dark:hover { background: #2C2722 !important; border-color: #2C2722 !important; }
body:not(.landing-app) .btn-secondary:hover,
body:not(.landing-app) .cta-section a:not(.btn-primary):not(.btn-dark):hover { background: #FFFFFF !important; border-color: var(--cb-token-ink) !important; }
body:not(.landing-app) .btn-primary:focus-visible,
body:not(.landing-app) .btn-dark:focus-visible,
body:not(.landing-app) .btn-secondary:focus-visible,
body:not(.landing-app) .cta-section a:not(.btn-primary):not(.btn-dark):focus-visible { outline: 3px solid var(--cb-token-ink) !important; outline-offset: 3px !important; }
