/* ==========================================================================
   Dreamlum NEO — piel de las herramientas.
   Se carga DESPUÉS de los estilos propios de cada herramienta para llevar sus
   componentes antiguos (asistente, tarjetas, pasos, FAQ) al lenguaje visual NEO.
   No cambia la estructura ni la lógica: solo la apariencia.
   ========================================================================== */

/* ---------- Contenedores ---------- */
/* Mismo borde izquierdo que .wrap (portada, header). Los contenedores anidados no suman otro relleno. */
body .container, body .ti-wrap, body .cv-info-wrap, body .karin-info-wrap { width: 100% !important; max-width: 1240px !important; margin-inline: auto !important; padding-inline: clamp(16px, 4vw, 40px) !important; }
body :is(.container, .ti-wrap, .cv-info-wrap, .karin-info-wrap) :is(.container, .ti-wrap) { max-width: none !important; padding-inline: 0 !important; }
body :is(.cv-info-wrap, .karin-info-wrap) { background: none !important; border: 0 !important; }
body main.service-content { padding-top: 0 !important; background: none !important; }
body .ti-section, body .karin-section, body .cv-section { background: none !important; padding-block: clamp(56px, 8vw, 100px) !important; border: 0 !important; }

/* ---------- Portada NEO de herramienta ---------- */
.tool-hero-slot .dl-ind-banner { justify-content: flex-start; margin: 1.8rem 0 0; max-width: none; }
.tool-hero-slot .dl-ind-banner small { text-align: left; }
.p-hero .tool-meta { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.4rem; }
.p-hero .tool-meta span { font: 500 .68rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; padding: .5rem .8rem; border-radius: 999px; border: 1px solid var(--line-2); color: var(--muted); }

/* ---------- Asistente por pasos ---------- */
body .wizard-wrapper {
  background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .015)) !important;
  border: 1px solid var(--line) !important; border-radius: 28px !important;
  box-shadow: 0 50px 90px -50px rgba(0, 0, 0, .95), inset 0 1px 0 rgba(255, 255, 255, .04) !important;
  padding: clamp(22px, 4vw, 48px) !important; max-width: 980px !important;
}
body .wizard-header { text-align: left !important; margin-bottom: 2rem !important; }
body .wizard-header p, body .wizard-header span:not(.dl-ind-tag), body .step-indicator, body .step-counter {
  font: 500 .7rem/1.4 var(--mono) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--violet) !important;
}
body .progress-container:has(> .progress-bar-fill:only-child) {
  width: 100% !important; height: 4px !important; margin: 0 0 1rem !important; background: var(--line-2) !important; border-radius: 4px !important; overflow: hidden;
}
body .progress-bar-fill { background: var(--neon) !important; box-shadow: 0 0 12px rgba(176, 38, 255, .55); }
body .wizard-step h3, body .step-title {
  text-align: left !important; font: 700 clamp(1.4rem, 2.6vw, 1.9rem)/1.15 var(--display) !important;
  letter-spacing: -.025em !important; color: var(--ink) !important; font-style: normal !important;
}
body .wizard-step h3 i, body .step-title i { color: var(--lime) !important; margin-right: .4rem; }
body .wizard-step > p, body .step-desc { text-align: left !important; color: var(--muted) !important; }
/* Bloques de encabezado centrados en el HTML: se alinean a la izquierda junto con su título */
body .wizard-step :is(div[style*="text-align:center"], div[style*="text-align: center"]):has(> h3),
body .wizard-header :is(p[style*="text-align:center"], p[style*="text-align: center"]) { text-align: left !important; }
/* Zonas para arrastrar archivos: todo centrado, título incluido */
body :is(.upload-area-pro, .upload-area, .drop-zone, .dropzone), body :is(.upload-area-pro, .upload-area, .drop-zone, .dropzone) :is(h3, p) { text-align: center !important; }
body .wizard-actions { gap: .6rem !important; padding-top: 1.4rem !important; border-top: 1px solid var(--line) !important; margin-top: 1.8rem !important; }

/* ---------- Campos ---------- */
body main .form-group label, body main .field-group > label, body main .field-label, body main .input-group > label {
  font: 500 .7rem/1.35 var(--mono) !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: var(--dim) !important;
}
body main :is(input[type=number], input[type=text], input[type=date], input[type=month], input[type=email], input[type=tel], select, textarea):not(.dl-hp) {
  background-color: rgba(0, 0, 0, .42) !important; border: 1px solid var(--line-2) !important; border-radius: 14px !important;
  color: var(--ink) !important; font-family: var(--sans) !important; font-size: 16px !important; box-shadow: none !important;
  transition: border-color .25s, box-shadow .25s !important;
}
body main :is(input, select, textarea):focus { border-color: var(--violet) !important; box-shadow: 0 0 0 4px rgba(176, 38, 255, .18) !important; outline: none !important; }
body main select {
  appearance: none !important; -webkit-appearance: none !important; padding-right: 2.6rem !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c6f432' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 1rem center !important; background-size: 16px !important;
}
body main select option { background: #111; color: #fff; }
body main input[type=checkbox], body main input[type=radio] { accent-color: var(--lime); }
body main small { color: var(--dim); }

/* Selector de perfil (Soy trabajador / Soy empleador) y opciones tipo tarjeta */
body .type-label, body .type-card, body .check-item {
  border-radius: 999px !important; border: 1px solid var(--line-2) !important; background: rgba(255, 255, 255, .03) !important; color: var(--muted) !important;
}
body .type-card, body .check-item { border-radius: 16px !important; }
body .type-label.selected, body .type-card.selected, body .type-card.active, body .check-item.active {
  background: var(--lime) !important; border-color: var(--lime) !important; color: #050505 !important; box-shadow: var(--glow-lime) !important;
}
body .type-label.selected i { color: #050505 !important; }

/* ---------- Botones ---------- */
body .wizard-btn, body .action-btn, body .cta-button-main, body .ti-pledge-cta {
  border-radius: 999px !important; padding: .9rem 1.5rem !important; font: 600 .95rem/1 var(--sans) !important; letter-spacing: 0 !important; text-transform: none !important;
  transition: transform .4s var(--ease), box-shadow .3s, background .3s, border-color .3s !important;
}
body .btn-next, body .wizard-btn.btn-next, body .cta-button-main, body .ti-pledge-cta, body .action-btn.primary, body .action-btn.btn-primary {
  background: var(--lime) !important; color: #050505 !important; border: 1px solid var(--lime) !important; box-shadow: none !important;
}
body .btn-next:hover, body .cta-button-main:hover, body .ti-pledge-cta:hover { box-shadow: var(--glow-lime) !important; transform: translateY(-2px); }
body .btn-prev, body .action-btn:not(.primary, .btn-primary) {
  background: rgba(255, 255, 255, .04) !important; border: 1px solid var(--line-2) !important; color: var(--ink) !important;
}
body .btn-prev:hover, body .action-btn:not(.primary):hover { border-color: var(--violet) !important; }

/* ---------- Resultados ---------- */
body .result-box {
  background: linear-gradient(135deg, rgba(198, 244, 50, .1), rgba(47, 107, 255, .06) 60%, transparent) !important;
  border: 1px solid rgba(198, 244, 50, .35) !important; border-radius: 24px !important; box-shadow: none !important;
}
body .result-box :is(h2, .result-amount, .result-value, .amount, [id^="res"]:not(ul):not(div)) { color: var(--lime) !important; text-shadow: 0 0 30px rgba(198, 244, 50, .35) !important; font-family: var(--display) !important; letter-spacing: -.03em; }
body .result-title, body .result-subtitle, body .result-details-header { font: 500 .72rem/1.4 var(--mono) !important; letter-spacing: .14em !important; text-transform: uppercase !important; color: var(--muted) !important; }
body .result-details, body .costo-empresa-box, body .warning-box, body .extra-section-box {
  background: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .012)) !important; border: 1px solid var(--line) !important; border-radius: 20px !important;
}
body .costo-empresa-box { border-left: 3px solid var(--violet) !important; }
body .warning-box { border-color: rgba(255, 31, 87, .45) !important; background: rgba(255, 31, 87, .06) !important; }
body #resDetalleLista li, body .result-details li { border-color: var(--line) !important; }
body .item-label { color: var(--muted) !important; }
body .item-value { font-family: var(--display) !important; font-weight: 700 !important; color: var(--ink) !important; }

/* ---------- Estadísticas ---------- */
body :is(.ti-stats-bar, .cv-stats-bar, .karin-stats-bar) {
  display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)) !important; gap: 1px !important;
  background: var(--line) !important; border: 1px solid var(--line) !important; border-radius: 24px !important; overflow: hidden; padding: 0 !important; margin-block: clamp(40px, 6vw, 72px) !important;
}
body :is(.ti-stat, .karin-stat, .cv-stat) { background: var(--bg) !important; padding: clamp(22px, 3vw, 34px) !important; text-align: left !important; border: 0 !important; border-radius: 0 !important; }
body :is(.ti-stat-num, .karin-stat-num, .cv-stat-num) {
  font: 800 clamp(2.2rem, 4.5vw, 3.4rem)/1 var(--display) !important; letter-spacing: -.04em !important;
  background: none !important; -webkit-background-clip: border-box !important; background-clip: border-box !important; color: var(--lime) !important;
}
body :is(.ti-stat, .karin-stat, .cv-stat):nth-child(4n+2) :is(.ti-stat-num, .karin-stat-num, .cv-stat-num) { color: var(--violet) !important; }
body :is(.ti-stat, .karin-stat, .cv-stat):nth-child(4n+3) :is(.ti-stat-num, .karin-stat-num, .cv-stat-num) { color: var(--blue) !important; }
body :is(.ti-stat, .karin-stat, .cv-stat):nth-child(4n) :is(.ti-stat-num, .karin-stat-num, .cv-stat-num) { color: var(--cyan) !important; }
body :is(.ti-stat-label, .karin-stat-label, .cv-stat-label) { font: 500 .7rem/1.4 var(--mono) !important; letter-spacing: .1em !important; text-transform: uppercase; color: var(--muted) !important; margin-top: .7rem !important; }

/* ---------- Títulos de sección ---------- */
body :is(.ti-section, .karin-section, .cv-section, .ti-faq-wrap) :is(.section-title, .karin-section-title, .cv-section-title) {
  text-align: left !important; font: 700 clamp(1.9rem, 4.4vw, 3.2rem)/1.05 var(--display) !important; letter-spacing: -.03em !important; font-style: normal !important; margin-bottom: clamp(24px, 3vw, 40px) !important;
}
/* Si hay bajada bajo el título, el espacio grande va después de la bajada */
body :is(.ti-section, .karin-section, .cv-section) .section-title:has(+ p) { margin-bottom: 1rem !important; }
body :is(.ti-section, .karin-section, .cv-section) .section-title + p { margin-bottom: clamp(24px, 3vw, 40px) !important; }
body :is(.ti-section, .karin-section, .cv-section) > :is(p, .section-sub, .karin-section-sub, .cv-section-sub),
body :is(.ti-section, .karin-section, .cv-section) .section-title + p { text-align: left !important; color: var(--muted) !important; max-width: 60ch; margin-left: 0 !important; }
body .section-label { font: 500 .72rem/1 var(--mono) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--lime) !important; }

/* ---------- Pasos "Cómo usar" ---------- */
body .ti-steps-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)) !important; gap: 14px !important; }
body :is(.ti-step, .step-card, .karin-tl-card) {
  display: flex !important; flex-direction: column !important; align-items: flex-start !important; text-align: left !important; gap: .6rem !important;
  padding: clamp(22px, 3vw, 32px) !important; border-radius: 22px !important; border: 1px solid var(--line) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .015)) !important; box-shadow: none !important;
}
body :is(.ti-step)::before, body :is(.ti-step)::after, body .ti-steps-grid > i, body .ti-step-arrow { display: none !important; }
body .ti-step .fa-arrow-right, body .ti-step .fa-chevron-right { display: none !important; }
body .ti-step-num {
  width: auto !important; height: auto !important; min-width: 0 !important; background: none !important; box-shadow: none !important; border-radius: 0 !important;
  font: 800 2.8rem/1 var(--display) !important; color: transparent !important; -webkit-text-stroke: 1px var(--lime) !important; display: block !important;
}
body .ti-step-title { font: 700 1.2rem/1.2 var(--display) !important; color: var(--ink) !important; }
body .ti-step-body { color: var(--muted) !important; font-size: .92rem !important; text-align: left !important; }

/* ---------- Tarjetas de características y ventajas ---------- */
body :is(.ti-feat-grid, .ti-adv-grid) { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)) !important; gap: 14px !important; }
body :is(.ti-feat-card, .ti-adv-card, .karin-feat-card, .karin-adv-card, .cv-feat-card, .cv-adv-card, .fuente-card, .guide-item) {
  text-align: left !important; padding: clamp(22px, 3vw, 30px) !important; border-radius: 22px !important;
  border: 1px solid var(--line) !important; background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .015)) !important;
  box-shadow: none !important; transition: transform .5s var(--ease), border-color .3s !important;
}
body :is(.ti-feat-card, .ti-adv-card, .karin-feat-card, .karin-adv-card, .cv-feat-card, .cv-adv-card):hover { transform: translateY(-4px); border-color: rgba(176, 38, 255, .45) !important; }
body :is(.ti-feat-icon, .ti-adv-icon, .karin-feat-icon, .karin-adv-icon, .cv-feat-icon, .cv-adv-icon, .ti-pledge-icon) {
  width: 50px !important; height: 50px !important; display: grid !important; place-items: center !important; border-radius: 15px !important; font-size: 1.25rem !important;
  background: rgba(198, 244, 50, .08) !important; -webkit-background-clip: border-box !important; background-clip: border-box !important;
  color: var(--lime) !important; border: 1px solid rgba(198, 244, 50, .3) !important; margin-bottom: 1rem !important; box-shadow: none !important;
}
body :is(.ti-feat-icon, .ti-adv-icon, .karin-feat-icon, .cv-feat-icon) i { color: inherit !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
body :is(.ti-feat-card, .ti-adv-card, .karin-feat-card, .cv-feat-card):nth-child(3n+2) :is(.ti-feat-icon, .ti-adv-icon, .karin-feat-icon, .cv-feat-icon) { color: var(--violet) !important; background: rgba(176, 38, 255, .1) !important; border-color: rgba(176, 38, 255, .35) !important; }
body :is(.ti-feat-card, .ti-adv-card, .karin-feat-card, .cv-feat-card):nth-child(3n) :is(.ti-feat-icon, .ti-adv-icon, .karin-feat-icon, .cv-feat-icon) { color: var(--cyan) !important; background: rgba(0, 224, 255, .08) !important; border-color: rgba(0, 224, 255, .3) !important; }
body :is(.ti-feat-title, .ti-adv-card h4, .ti-adv-card h3, .karin-feat-card h4, .cv-feat-card h4) { font: 700 1.12rem/1.2 var(--display) !important; color: var(--ink) !important; }
body :is(.ti-feat-body, .ti-adv-card p, .karin-feat-card p, .cv-feat-card p) { color: var(--muted) !important; font-size: .9rem !important; }
body :is(.karin-feat-badge, .cv-feat-badge) { font: 500 .66rem/1 var(--mono) !important; letter-spacing: .1em; text-transform: uppercase; color: var(--lime) !important; background: rgba(198, 244, 50, .08) !important; border-radius: 999px !important; }

/* ---------- Compromiso / llamado a la acción ---------- */
body .ti-pledge {
  border-radius: 36px !important; padding: clamp(26px, 5vw, 56px) !important; border: 1px solid rgba(176, 38, 255, .35) !important;
  background: linear-gradient(120deg, rgba(176, 38, 255, .22), rgba(47, 107, 255, .12) 50%, rgba(198, 244, 50, .06)) !important; box-shadow: none !important; text-align: left !important;
}
body .ti-pledge-accent { display: none !important; }
body .ti-pledge-title { font: 700 clamp(1.5rem, 3vw, 2.2rem)/1.15 var(--display) !important; color: var(--ink) !important; }
body .ti-pledge-text, body .ti-pledge-body p { color: var(--muted) !important; }
body .ti-pledge-text { margin-bottom: 1.4rem !important; }
body .ti-pledge-visual { background: var(--neon) !important; border-radius: 24px !important; }

/* ---------- Preguntas frecuentes ---------- */
body :is(.ti-faq-list, .ti-faq-wrap) { max-width: 900px; margin-left: 0 !important; }
body .ti-faq-wrap { padding-block: clamp(56px, 8vw, 100px) clamp(24px, 4vw, 48px) !important; }
body :is(.ti-faq-item, .karin-faq-item, .cv-faq-item) {
  background: none !important; border: 0 !important; border-bottom: 1px solid var(--line) !important; border-radius: 0 !important; box-shadow: none !important; padding: 1.3rem 0 !important; text-align: left !important;
}
body :is(.ti-faq-item, .karin-faq-item, .cv-faq-item) > :first-child { font: 600 clamp(1.02rem, 1.8vw, 1.2rem)/1.35 var(--display) !important; color: var(--ink) !important; letter-spacing: -.01em; }
body :is(.ti-faq-item, .karin-faq-item, .cv-faq-item) :is(i, svg) { color: var(--lime) !important; }
body :is(.ti-faq-ans) { color: var(--muted) !important; font-size: .95rem !important; text-align: left !important; }

/* ---------- Centro de simuladores ---------- */
body .chooser-container { gap: 14px !important; }
body .chooser-card {
  align-items: flex-start !important; text-align: left !important; border-radius: 22px !important; border: 1px solid var(--line) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .015)) !important; box-shadow: none !important;
  transition: transform .5s var(--ease), border-color .3s !important;
}
body .chooser-card:hover { transform: translateY(-6px) !important; border-color: rgba(198, 244, 50, .45) !important; }
body .chooser-card .chooser-icon {
  width: 52px !important; height: 52px !important; border-radius: 15px !important; font-size: 1.3rem !important; box-shadow: none !important;
  background: rgba(198, 244, 50, .08) !important; color: var(--lime) !important; border: 1px solid rgba(198, 244, 50, .3) !important; transform: none !important;
}
body .chooser-card:nth-child(3n+2) .chooser-icon { background: rgba(176, 38, 255, .1) !important; color: var(--violet) !important; border-color: rgba(176, 38, 255, .35) !important; }
body .chooser-card:nth-child(3n) .chooser-icon { background: rgba(0, 224, 255, .08) !important; color: var(--cyan) !important; border-color: rgba(0, 224, 255, .3) !important; }
body .chooser-card h3 { font: 700 1.25rem/1.2 var(--display) !important; color: var(--ink) !important; text-align: left !important; }
body .chooser-card p { color: var(--muted) !important; text-align: left !important; }
body .signature-logo { height: 22px !important; width: auto !important; }

/* ---------- Separadores y degradados antiguos ---------- */
body .section-sep, body hr { border-color: var(--line) !important; background: var(--line) !important; height: 1px !important; }
body .gradient-text, body .ti-gold { background: var(--neon) !important; -webkit-background-clip: text !important; background-clip: text !important; color: transparent !important; }

/* ---------- Fondos heredados ---------- */
body .ti-wrap, body main.service-content > .container { background: none !important; box-shadow: none !important; }

/* ---------- Funciones nuevas (assets/herramientas-extra.js) ---------- */
.dl-tool-card {
  max-width: 980px; margin: 0 auto 18px; padding: clamp(18px, 3vw, 28px); border-radius: 24px; text-align: left;
  border: 1px solid rgba(198, 244, 50, .3); background: linear-gradient(135deg, rgba(198, 244, 50, .08), rgba(47, 107, 255, .05) 60%, transparent);
}
.wizard-step .dl-tool-card, #resDetalleLista + .dl-tool-card { margin: 1.4rem 0 0; }
.dl-tool-card-head { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.dl-tool-card-head b { font: 700 1.1rem/1.2 var(--display); color: var(--ink); }
.dl-new { font: 500 .62rem/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; padding: .35rem .55rem; border-radius: 999px; background: var(--lime); color: #050505; }
.dl-tool-card p { color: var(--muted); font-size: .88rem; margin: .6rem 0 0; }
.dl-row { display: flex; flex-wrap: wrap; gap: .6rem; align-items: flex-end; margin-top: 1rem; }
.dl-row > input, .dl-row label { flex: 1 1 220px; }
.dl-row label { display: grid; gap: .35rem; font: 500 .68rem/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--dim); }
.dl-out { min-height: 1.2em; color: var(--ink) !important; }
.dl-out b { color: var(--lime); }
.dl-note { font-size: .78rem !important; color: var(--dim) !important; }
.dl-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; margin-top: 1rem; background: var(--line); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.dl-kpis div { background: rgba(7, 6, 12, .9); padding: .9rem 1rem; }
.dl-kpis small { display: block; font: 500 .64rem/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--dim); }
.dl-kpis b { display: block; margin-top: .35rem; font: 700 1.25rem/1 var(--display); color: var(--lime); }
.dl-meses { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: .5rem; }
.dl-meses .dl-btn { grid-column: 1 / -1; justify-self: start; }
.dl-inline { display: flex !important; align-items: center; gap: .5rem; font: 400 .82rem/1.3 var(--sans) !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--muted) !important; }
.dl-inline input { width: 18px !important; height: 18px !important; appearance: auto !important; -webkit-appearance: checkbox !important; opacity: 1 !important; position: static !important; }
#dlAfpZona { margin-bottom: .5rem; }
.dl-search { position: relative; max-width: 620px; margin: 0 auto 1.6rem; }
.dl-search i { position: absolute; left: 1.1rem; top: 1.05rem; color: var(--dim); }
.dl-search input { width: 100%; padding: .95rem 1rem .95rem 2.8rem !important; border-radius: 999px !important; }
.dl-search small { display: block; margin-top: .4rem; text-align: center; }
.chooser-card[hidden] { display: none !important; }

/* ---------- Ancho común: asistente y tarjetas extra ocupan el mismo ancho que los títulos ---------- */
body .wizard-wrapper, body .dl-tool-card { max-width: none !important; margin-inline: 0 !important; }

/* ---------- Pasos del CV y Ley Karin (mismo lenguaje que .ti-step) ---------- */
body .cv-steps { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)) !important; gap: 14px !important; }
body .cv-step {
  align-items: flex-start !important; text-align: left !important; gap: .6rem; padding: clamp(22px, 3vw, 32px) !important; border-radius: 22px;
  border: 1px solid var(--line); background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .015));
}
body .cv-step::after { display: none !important; }
body .cv-step-num {
  width: auto !important; height: auto !important; background: none !important; box-shadow: none !important; border-radius: 0 !important; margin: 0 !important;
  font: 800 2.8rem/1 var(--display) !important; color: transparent !important; -webkit-text-stroke: 1px var(--lime);
}
body .cv-step h4 { font: 700 1.2rem/1.2 var(--display) !important; color: var(--ink) !important; margin: .4rem 0 0 !important; }
body .cv-step p { color: var(--muted) !important; font-size: .92rem !important; margin: 0; }
body .karin-tl-dot { background: var(--bg) !important; border-color: var(--lime) !important; color: var(--lime) !important; font-family: var(--display) !important; }
body .karin-tl-card h4 { font: 700 1.05rem/1.25 var(--display) !important; color: var(--ink) !important; }
body .karin-tl-card p { color: var(--muted) !important; }

/* ---------- Tarjetas: títulos h3 y grillas propias ---------- */
body :is(.cv-features, .cv-adv-grid, .karin-feat-grid, .karin-adv-grid) { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)) !important; gap: 14px !important; }
body :is(.cv-feat-card, .cv-adv-card, .karin-feat-card, .karin-adv-card) :is(h3, h4) { font: 700 1.12rem/1.2 var(--display) !important; color: var(--ink) !important; margin: 0 0 .5rem !important; }
body :is(.cv-feat-card, .cv-adv-card, .karin-feat-card, .karin-adv-card) p { color: var(--muted) !important; font-size: .9rem !important; line-height: 1.6 !important; }
body :is(.cv-adv-card, .karin-adv-card):nth-child(3n+2) :is(.cv-adv-icon, .karin-adv-icon) { color: var(--violet) !important; background: rgba(176, 38, 255, .1) !important; border-color: rgba(176, 38, 255, .35) !important; }
body :is(.cv-adv-card, .karin-adv-card):nth-child(3n) :is(.cv-adv-icon, .karin-adv-icon) { color: var(--cyan) !important; background: rgba(0, 224, 255, .08) !important; border-color: rgba(0, 224, 255, .3) !important; }
body :is(.cv-adv-icon, .karin-adv-icon) i { color: inherit !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
body :is(.cv-feat-badge, .karin-feat-badge) { border: 1px solid rgba(198, 244, 50, .3) !important; padding: .4rem .65rem !important; margin-bottom: 1rem !important; }
body :is(.cv-adv-card, .karin-adv-card).gold-border { border-color: rgba(198, 244, 50, .35) !important; }

/* ---------- Compromiso del CV y Ley Karin ---------- */
body :is(.cv-pledge, .karin-pledge) {
  border-radius: 36px !important; border: 1px solid rgba(176, 38, 255, .35) !important; box-shadow: none !important;
  background: linear-gradient(120deg, rgba(176, 38, 255, .22), rgba(47, 107, 255, .12) 50%, rgba(198, 244, 50, .06)) !important;
}
body :is(.cv-pledge-body, .karin-pledge-body) { padding: clamp(26px, 5vw, 56px) !important; }
body :is(.cv-pledge-body, .karin-pledge-body) h3 { font: 700 clamp(1.5rem, 3vw, 2.2rem)/1.15 var(--display) !important; letter-spacing: -.02em; color: var(--ink) !important; }
body :is(.cv-pledge-body, .karin-pledge-body) p { color: var(--muted) !important; font-size: .95rem !important; }
body :is(.cv-pledge-tag, .karin-pledge-tag) { font: 500 .68rem/1 var(--mono) !important; letter-spacing: .14em !important; color: var(--lime) !important; background: rgba(198, 244, 50, .08) !important; border: 1px solid rgba(198, 244, 50, .3); border-radius: 999px !important; padding: .5rem .8rem !important; }
body :is(.cv-pledge-sig, .karin-pledge-sig) span { color: var(--dim) !important; }
body :is(.cv-pledge-visual, .karin-pledge-visual) { background: var(--neon) !important; }

/* ---------- Preguntas frecuentes del CV y Ley Karin ---------- */
body :is(.cv-faq-wrap, .karin-faq-wrap) { max-width: 900px; margin-left: 0 !important; }
body :is(.cv-faq-item, .karin-faq-item) summary { padding: 0 !important; gap: 1rem; }
body :is(.cv-faq-item, .karin-faq-item) summary::after { color: var(--lime) !important; }
body :is(.cv-faq-item .faq-ans, .karin-faq-item .faq-ans, .karin-faq-ans) { color: var(--muted) !important; font-size: .95rem !important; padding: 1rem 0 0 !important; }
body :is(.cv-faq-item, .karin-faq-item) strong { color: var(--ink) !important; }

/* ---------- Formulario del optimizador de CV ---------- */
body .form-panel { background: rgba(255, 255, 255, .025) !important; border: 1px solid var(--line) !important; border-radius: 22px !important; padding: clamp(20px, 3vw, 30px) !important; }
body .form-panel h3 { font: 700 clamp(1.1rem, 2vw, 1.3rem)/1.2 var(--display) !important; color: var(--ink) !important; letter-spacing: -.015em; margin: 0 0 .5rem !important; flex-wrap: wrap; row-gap: .35rem !important; }
body .form-panel h3 i, body .panel-title i, body .extra-section h3 i { color: var(--lime) !important; }
body .form-panel h3 span { font: 500 .66rem/1 var(--mono) !important; letter-spacing: .1em; text-transform: uppercase; color: var(--dim) !important; }
body .form-panel .panel-desc { color: var(--muted) !important; font-size: .9rem !important; }
body .upload-zone { border: 1.5px dashed var(--line-2) !important; border-radius: 20px !important; background: rgba(255, 255, 255, .02) !important; }
body .upload-zone:hover, body .upload-zone.dragover { border-color: var(--lime) !important; background: rgba(198, 244, 50, .05) !important; }
body .uz-icon { color: var(--lime) !important; }
body .uz-title { font: 600 1rem/1.3 var(--display) !important; color: var(--ink) !important; }
body .uz-sub, body .uz-status, body .uz-or span, body .char-counter { font-family: var(--mono) !important; font-size: .68rem !important; letter-spacing: .06em; color: var(--dim) !important; }
body .char-counter.ok { color: var(--lime) !important; }
body .uz-or div { background: var(--line) !important; }
body .uz-bar { background: var(--neon) !important; }
body .spinner { border-color: rgba(198, 244, 50, .2) !important; border-top-color: var(--lime) !important; }

/* ---------- Resultados del optimizador de CV ---------- */
body :is(.cv-score-card, .result-panel, .reco-item, .status-box) { background: rgba(255, 255, 255, .03) !important; border: 1px solid var(--line) !important; border-radius: 20px !important; }
body .results-box h2, body .extra-section h3 { font-family: var(--display) !important; letter-spacing: -.02em; color: var(--ink) !important; }
body :is(.results-box .sub, .score-sub, .reco-item p, .quest-ctx, .status-box p) { color: var(--muted) !important; }
body .panel-title { font: 500 .7rem/1.4 var(--mono) !important; letter-spacing: .12em !important; color: var(--muted) !important; }
body .quest-num { background: rgba(198, 244, 50, .1) !important; color: var(--lime) !important; font-family: var(--display) !important; }
body .kw-match, body .sec-row.found { color: var(--lime) !important; background: rgba(198, 244, 50, .08) !important; border-color: rgba(198, 244, 50, .3) !important; }

/* Subtítulos de sección con el mismo tamaño que .lead */
body :is(.ti-section, .karin-section, .cv-section) :is(.section-sub, .karin-section-sub, .cv-section-sub), body .ti-section .section-title + p { font-size: clamp(1rem, 1.4vw, 1.12rem) !important; line-height: 1.6 !important; margin-bottom: clamp(28px, 4vw, 48px) !important; }

/* ---------- Botón de pánico (Ley Karin) ---------- */
body .karin-panic-section {
  border: 1px solid rgba(255, 31, 87, .3) !important; border-radius: 28px !important; padding: clamp(24px, 4vw, 52px) !important;
  background: linear-gradient(135deg, rgba(255, 31, 87, .1), rgba(255, 31, 87, .02) 60%, transparent) !important;
}
body .karin-panic-body h2 { font: 700 clamp(1.5rem, 3vw, 2.2rem)/1.15 var(--display) !important; letter-spacing: -.025em; }
body .karin-panic-body > p { color: var(--muted) !important; font-size: .95rem !important; }
body .karin-panic-row { border-radius: 16px !important; }
body .karin-panic-row span { color: var(--muted) !important; }
body .karin-panic-row span strong ~ strong { display: inline !important; margin: 0 !important; }

/* ---------- Ajustes de alineación (revisión de herramientas, oct 2026) ---------- */
/* Monto con selector de moneda (boleta de honorarios): moneda angosta + monto al lado */
body .currency-input-group { display: grid !important; grid-template-columns: minmax(120px, 190px) 1fr; gap: 12px !important; }
body .currency-input-group > * { width: 100% !important; }
body .currency-input-group :is(select, input) { width: 100% !important; padding: .95rem 1.05rem !important; }
@media (max-width: 560px) { body .currency-input-group { grid-template-columns: 1fr; } }

/* Bloques de introducción que venían centrados: alineados a la izquierda como el resto del sitio */
body .seo-intro-container { text-align: left !important; box-sizing: border-box; max-width: 1240px !important; margin: clamp(56px, 8vw, 100px) auto clamp(24px, 3vw, 40px) !important; padding-inline: clamp(16px, 4vw, 40px) !important; }
body .seo-intro-container h2 { font: 700 clamp(1.9rem, 4.4vw, 3.2rem)/1.05 var(--display) !important; font-style: normal !important; letter-spacing: -.03em !important; margin-bottom: 1rem !important; }
body .seo-intro-container p { max-width: 70ch; color: var(--muted) !important; }
body .finiquito-chooser-section > .section-title { text-align: left !important; font: 700 clamp(1.9rem, 4.4vw, 3.2rem)/1.05 var(--display) !important; font-style: normal !important; letter-spacing: -.03em !important; margin-bottom: 1rem !important; }
body .finiquito-chooser-section > .section-subtitle { text-align: left !important; margin: 0 0 clamp(24px, 3vw, 40px) !important; max-width: 70ch; color: var(--muted) !important; }

/* Tarjeta de cálculo con estilo antiguo (semana corrida): mismo formato que los asistentes paso a paso */
body .service-detail-block:has(> .calculadora-form-container) {
  max-width: none !important; margin: 0 0 clamp(40px, 6vw, 72px) !important; border: 1px solid var(--line) !important; border-image: none !important;
  border-radius: 28px !important; padding: clamp(22px, 4vw, 48px) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .015)) !important;
  box-shadow: 0 50px 90px -50px rgba(0, 0, 0, .95), inset 0 1px 0 rgba(255, 255, 255, .04) !important;
}
body .calculadora-form-container { background: none !important; border: 0 !important; padding: 0 !important; }
body .mode-selector { border-bottom: 1px solid var(--line) !important; }
body .mode-btn { border-radius: 999px !important; border-color: var(--line-2) !important; color: var(--muted) !important; }
body .mode-btn.active { background: rgba(198, 244, 50, .1) !important; border-color: var(--lime) !important; color: var(--lime) !important; box-shadow: none !important; }

/* Línea de tiempo de Ley Karin alineada con su título */
body .karin-timeline { margin-left: 18px !important; margin-right: 0 !important; }

/* Textos de las tarjetas "Por qué confiar": mismo color en todas */
body .ti-adv-card p { color: var(--muted) !important; }

/* Casillas con texto de ayuda (finiquito): la ayuda baja a su propia línea, alineada con la pregunta */
body .checkbox-wrapper { flex-wrap: wrap !important; row-gap: .35rem !important; }
body .checkbox-wrapper > input[type=checkbox] { flex: none !important; width: 20px !important; height: 20px !important; }
body .checkbox-wrapper > label { flex: 1 1 0 !important; min-width: 0; }
body .checkbox-wrapper > small { flex-basis: 100% !important; margin: 0 0 0 30px !important; }
body .karin-tl-badge { align-self: flex-start !important; }

/* Tarjeta destacada (ti-gold): fondo de tarjeta normal con acento lima; el degradado de texto no debe teñir sus párrafos */
body .ti-adv-card.ti-gold {
  background: linear-gradient(180deg, rgba(198, 244, 50, .07), rgba(255, 255, 255, .015)) !important;
  -webkit-background-clip: border-box !important; background-clip: border-box !important; color: var(--ink) !important;
  border-color: rgba(198, 244, 50, .35) !important;
}

/* En celular los textos de tarjetas y bajadas se muestran completos (antes se cortaban con "…" sin forma de leerlos) */
@media (max-width: 768px) {
  body :is(.ti-feat-card, .ti-adv-card, .ti-step, .step-card, .caso-card, .garantia-card, .service-card) :is(p, h3, h4),
  body :is(.ti-step-body, .ti-feat-body, .section-subtitle, .hero-subtitle) {
    display: block !important; -webkit-line-clamp: unset !important; overflow: visible !important;
  }
}

/* Fila "Valor UF hoy" (boleta de honorarios): se acomoda en dos líneas en pantallas angostas */
body div:has(> #ufValueInput) { flex-wrap: wrap !important; gap: .5rem .75rem !important; }
body div:has(> #ufValueInput) > label { white-space: nowrap; }
