@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap");

body { margin: 0; font-family: var(--font-texto); background: var(--fondo); color: var(--texto); }
.rw-fila { display: flex; flex-wrap: wrap; gap: var(--espacio-16); align-items: center; padding: var(--espacio-16); }

/* Contexto destacado: franjas en bosque dentro de cualquier tema */
.rw-tono-oscuro {
  --texto: var(--texto-sobre-destacado);
  --texto-suave: var(--texto-suave-destacado);
  --borde: var(--borde-destacado);
  --cifra: var(--verde);
  --acento: var(--violeta-claro);
  --acento-hover: var(--lavanda);
  --sobre-acento: var(--noche);
  --acento-texto: var(--violeta-claro);
  --primario-hover: var(--verde-400);
  --foco: var(--texto-sobre-destacado);
  color: var(--texto);
}
.rw-panel-oscuro { background: var(--fondo-destacado); border-radius: var(--radio-tarjeta); }

/* Botón */
.rw-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--espacio-8); min-height: var(--espacio-48); padding: 0 var(--espacio-24); border: 0; border-radius: var(--radio); font-family: var(--font-texto); font-size: 16px; font-weight: 600; line-height: 24px; cursor: pointer; text-decoration: none; transition: background-color .15s ease; }
.rw-btn:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
.rw-btn-primario, .rw-btn-oscuro { background: var(--primario); color: var(--sobre-primario); }
.rw-btn-primario:hover { background: var(--primario-hover); }
.rw-btn-oscuro:hover { background: var(--verde-400); }
.rw-btn-secundario { background: transparent; color: var(--texto); box-shadow: inset 0 0 0 1.5px var(--texto); }
.rw-btn-secundario:hover { background: var(--fondo-alterno); }
.rw-btn-ancho { width: 100%; }
.rw-btn:disabled, .rw-btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; }
.rw-btn-primario:disabled:hover { background: var(--primario); }
.rw-btn-secundario:disabled:hover { background: transparent; }

/* Etiqueta */
.rw-etiqueta { display: inline-flex; align-items: center; padding: var(--espacio-4) var(--espacio-16); border-radius: var(--radio-etiqueta); background: var(--acento); color: var(--sobre-acento); font-family: var(--font-texto); font-size: 13px; font-weight: 700; line-height: 20px; letter-spacing: .02em; }

/* Aviso */
.rw-aviso { display: flex; align-items: center; gap: var(--espacio-8); padding: var(--espacio-16) var(--espacio-24); border-radius: var(--radio); background: var(--acento-suave); color: var(--acento-texto); font-family: var(--font-texto); font-size: 16px; font-weight: 500; line-height: 24px; }

/* Campo de formulario */
.rw-campo { display: flex; flex-direction: column; gap: var(--espacio-8); font-family: var(--font-texto); }
.rw-campo-etiqueta { font-size: 14px; font-weight: 600; color: var(--texto); }
.rw-campo-control { box-sizing: border-box; min-height: var(--espacio-48); padding: 0 var(--espacio-16); border: 1px solid var(--borde-control); border-radius: var(--radio); background: var(--superficie); color: var(--texto); font-family: var(--font-texto); font-size: 16px; }
textarea.rw-campo-control { padding-block: var(--espacio-8); line-height: 1.5; }
.rw-campo-control::placeholder { color: var(--texto-suave); }
.rw-campo-control:focus { outline: 2px solid var(--foco); outline-offset: 2px; border-color: var(--primario); }
.rw-campo-ayuda { font-size: 14px; color: var(--texto-suave); }

/* Tarjeta de producto */
.rw-tarjeta { position: relative; display: flex; flex-direction: column; gap: var(--espacio-16); padding: var(--espacio-16); border: 1px solid var(--borde); border-radius: var(--radio-tarjeta); background: var(--superficie); color: var(--texto); transition: box-shadow .15s ease; }
.rw-tarjeta:hover { box-shadow: var(--sombra); }
.rw-tarjeta-foto { aspect-ratio: 1 / 1; width: 100%; border-radius: var(--radio); background: var(--fondo-alterno); overflow: hidden; display: flex; align-items: center; justify-content: center; color: var(--texto-suave); font-size: 14px; }
.rw-tarjeta-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rw-tarjeta .rw-etiqueta { position: absolute; top: var(--espacio-24); left: var(--espacio-24); }
.rw-tarjeta-nombre { margin: 0; font-family: var(--font-titulos); font-size: 20px; font-weight: 700; line-height: 1.25; letter-spacing: -.01em; }
.rw-tarjeta-precios { display: flex; align-items: baseline; gap: var(--espacio-8); }
.rw-tarjeta-precio { font-family: var(--font-titulos); font-size: 24px; font-weight: 800; letter-spacing: -.02em; color: var(--texto); }
.rw-tarjeta-anterior { font-size: 14px; color: var(--texto-suave); text-decoration: line-through; }

/* Antetítulo */
.rw-antetitulo { margin: 0; font-family: var(--font-texto); font-size: 13px; font-weight: 700; line-height: 20px; letter-spacing: .08em; text-transform: uppercase; color: var(--texto-suave); }

/* Encabezado de sección */
.rw-seccion-enc { display: flex; flex-direction: column; gap: var(--espacio-8); max-width: var(--ancho-parrafo); }
.rw-seccion-enc.rw-centro { align-items: center; text-align: center; margin-inline: auto; }
.rw-seccion-titulo { margin: 0; font-family: var(--font-titulos); font-size: 36px; font-weight: 800; line-height: 1.15; letter-spacing: -.02em; color: var(--texto); text-wrap: balance; }
.rw-seccion-titulo-h1 { font-size: 48px; line-height: 1.1; }
.rw-destacado { background: var(--primario); color: var(--sobre-primario); padding: 0 var(--espacio-8); border-radius: var(--radio); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.rw-seccion-desc { margin: var(--espacio-8) 0 0; font-size: 18px; line-height: 1.6; color: var(--texto); }

/* Cifra */
.rw-cifra { display: flex; flex-direction: column; gap: var(--espacio-8); }
.rw-cifra::before { content: ""; width: var(--espacio-32); height: var(--espacio-4); border-radius: var(--radio-etiqueta); background: var(--primario); }
.rw-cifra-valor { font-family: var(--font-titulos); font-size: 52px; font-weight: 800; line-height: 1; letter-spacing: -.03em; color: var(--cifra); font-variant-numeric: tabular-nums; }
.rw-cifra-desc { font-size: 14px; line-height: 20px; color: var(--texto-suave); }

/* Chip y grupo de chips */
.rw-chip { display: inline-flex; align-items: center; padding: var(--espacio-4) var(--espacio-16); border-radius: var(--radio-etiqueta); background: var(--superficie); color: var(--texto); box-shadow: inset 0 0 0 1px var(--borde); font-family: var(--font-texto); font-size: 14px; font-weight: 500; line-height: 20px; }
.rw-chip-suave { background: var(--fondo-alterno); }
.rw-lista-chips { display: flex; flex-wrap: wrap; gap: var(--espacio-8); list-style: none; margin: 0; padding: 0; }
.rw-grupo-chips { display: flex; flex-direction: column; gap: var(--espacio-16); min-width: 0; }
.rw-grupo-chips-titulo { margin: 0; font-family: var(--font-titulos); font-size: 20px; font-weight: 700; line-height: 1.3; letter-spacing: -.01em; color: var(--texto); }

/* Enlace con flecha */
.rw-enlace { display: inline-flex; align-items: center; gap: var(--espacio-8); font-family: var(--font-texto); font-size: 16px; font-weight: 600; line-height: 24px; color: var(--texto); text-decoration: underline; text-decoration-color: var(--primario); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.rw-enlace:hover { text-decoration-thickness: 3px; }
.rw-enlace-flecha { display: inline-block; transition: transform .15s ease; }
.rw-enlace:hover .rw-enlace-flecha { transform: translateX(var(--espacio-4)); }
.rw-enlace:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; border-radius: 4px; }
.rw-enlace-oscuro { color: var(--texto-sobre-destacado); }

/* Encabezado de la web */
.rw-enc { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 10; container-type: inline-size; background: var(--superficie); border-bottom: 1px solid var(--borde); font-family: var(--font-texto); }
.rw-enc-fila { box-sizing: border-box; max-width: calc(var(--ancho-contenido) + 2 * var(--margen-movil)); min-height: 72px; margin: 0 auto; padding: var(--espacio-8) var(--margen-movil); display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-8) var(--espacio-24); }
.rw-enc-marca { display: inline-flex; align-items: center; gap: var(--espacio-8); margin-right: auto; font-family: var(--font-titulos); font-size: 18px; font-weight: 700; letter-spacing: -.01em; color: var(--texto); text-decoration: none; }
.rw-monograma { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radio); background: var(--fondo-destacado); color: var(--verde); font-family: var(--font-titulos); font-size: 20px; font-weight: 800; letter-spacing: -.02em; }
.rw-enc-nav { display: flex; align-items: center; gap: var(--espacio-4); }
.rw-enc-enlace { padding: var(--espacio-8) 12px; border-radius: var(--radio); font-size: 15px; font-weight: 600; color: var(--texto-suave); text-decoration: none; transition: background-color .15s ease, color .15s ease; }
.rw-enc-enlace:hover { color: var(--texto); background: var(--fondo-alterno); }
.rw-enc-enlace.rw-activo { color: var(--texto); background: var(--fondo-alterno); box-shadow: inset 0 -3px 0 var(--primario); }
.rw-enc a:focus-visible, .rw-enc button:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
.rw-enc-acciones { display: flex; align-items: center; gap: var(--espacio-8); }
.rw-enc-cta { margin-left: var(--espacio-8); }
.rw-enc-nav .rw-enc-cta-movil, .rw-enc-nav .rw-enc-idioma-movil { display: none; }
.rw-enc-menu, .rw-tema { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: var(--radio); background: transparent; color: var(--texto); font-size: 20px; cursor: pointer; }
.rw-enc-menu { display: none; background: var(--fondo-alterno); }
.rw-tema:hover { background: var(--fondo-alterno); }
.rw-tema:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
.rw-tema svg { width: 20px; height: 20px; }
@container (max-width: 1023px) {
  .rw-enc-nav { display: none; order: 3; width: 100%; flex-direction: column; align-items: stretch; padding-bottom: var(--espacio-16); }
  .rw-enc-abierto .rw-enc-nav { display: flex; }
  .rw-enc-nav .rw-enc-enlace { padding: var(--espacio-16); }
  .rw-enc-menu { display: inline-flex; }
}
@container (max-width: 767px) {
  .rw-enc-cta { display: none; }
  .rw-enc-nav .rw-enc-cta-movil { display: inline-flex; margin-top: var(--espacio-8); }
  .rw-enc-acciones .rw-enc-idioma { display: none; }
  .rw-enc-nav .rw-enc-idioma-movil { display: inline-flex; align-self: flex-start; margin-top: var(--espacio-8); }
}

/* Selector de idioma */
.rw-idioma { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--borde-control); border-radius: var(--radio-etiqueta); }
.rw-idioma-btn { min-width: 40px; min-height: 34px; border: 0; border-radius: var(--radio-etiqueta); background: transparent; color: var(--texto-suave); font-family: var(--font-texto); font-size: 13px; font-weight: 700; cursor: pointer; }
.rw-idioma-btn.rw-activo { background: var(--texto); color: var(--superficie); }
.rw-idioma-btn:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }

/* Tarjeta de perfil */
.rw-perfil { box-sizing: border-box; max-width: 360px; margin: 0; padding: var(--espacio-16); display: flex; flex-direction: column; gap: var(--espacio-16); background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-tarjeta); }
.rw-perfil-foto { aspect-ratio: 4 / 5; border-radius: var(--radio); background: var(--fondo-alterno); overflow: hidden; display: flex; align-items: center; justify-content: center; color: var(--texto-suave); font-size: 14px; }
.rw-perfil-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rw-perfil figcaption { display: flex; flex-direction: column; gap: var(--espacio-4); padding: 0 var(--espacio-4) var(--espacio-4); }
.rw-perfil strong { font-family: var(--font-titulos); font-size: 18px; font-weight: 700; letter-spacing: -.01em; color: var(--texto); }
.rw-perfil figcaption span { font-size: 14px; color: var(--texto-suave); }

/* Tarjeta de experiencia */
.rw-exp { display: flex; flex-direction: column; gap: var(--espacio-16); padding: var(--espacio-24); background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-tarjeta); color: var(--texto); font-family: var(--font-texto); }
.rw-exp-actual { border: 2px solid var(--primario); padding: calc(var(--espacio-24) - 1px); }
.rw-exp-cabecera { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: var(--espacio-8) var(--espacio-24); }
.rw-exp-cabecera > div { display: flex; flex-direction: column; align-items: flex-start; gap: var(--espacio-4); min-width: 0; }
.rw-exp .rw-etiqueta { margin-bottom: var(--espacio-8); }
.rw-exp-empresa { margin: 0; font-family: var(--font-titulos); font-size: 22px; font-weight: 700; line-height: 1.25; letter-spacing: -.01em; }
.rw-exp-cargo { margin: 0; font-size: 16px; font-weight: 600; color: var(--texto-suave); }
.rw-exp-fechas { margin: 0; padding: var(--espacio-4) 12px; border-radius: var(--radio-etiqueta); background: var(--fondo-alterno); font-size: 13px; font-weight: 600; color: var(--texto-suave); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rw-exp-desc { margin: 0; max-width: var(--ancho-parrafo); font-size: 16px; line-height: 1.6; }
.rw-exp-logros { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--espacio-8); }
.rw-exp-logros li { position: relative; max-width: var(--ancho-parrafo); padding-left: var(--espacio-24); font-size: 16px; line-height: 1.6; }
.rw-exp-logros li::before { content: ""; position: absolute; left: 0; top: .62em; width: var(--espacio-8); height: var(--espacio-8); border-radius: 2px; background: var(--primario); }

/* Lista de formación */
.rw-formacion { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; font-family: var(--font-texto); }
.rw-formacion li { position: relative; display: flex; flex-direction: column; gap: var(--espacio-4); padding: 0 0 var(--espacio-24) var(--espacio-32); }
.rw-formacion li::before { content: ""; position: absolute; left: 5px; top: var(--espacio-16); bottom: 0; width: 2px; background: var(--borde); }
.rw-formacion li:last-child { padding-bottom: 0; }
.rw-formacion li:last-child::before { display: none; }
.rw-formacion li::after { content: ""; position: absolute; left: 0; top: var(--espacio-4); width: 12px; height: 12px; border-radius: 50%; background: var(--primario); }
.rw-formacion-fecha { font-size: 14px; color: var(--texto-suave); font-variant-numeric: tabular-nums; }
.rw-formacion-titulo { font-family: var(--font-titulos); font-size: 18px; font-weight: 700; line-height: 1.35; letter-spacing: -.01em; color: var(--texto); }
.rw-formacion-inst { font-size: 16px; color: var(--texto-suave); }

/* Tarjeta de proyecto */
.rw-proy { display: flex; flex-direction: column; min-width: 0; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-tarjeta); overflow: hidden; color: var(--texto); font-family: var(--font-texto); }
.rw-proy-img { aspect-ratio: 16 / 10; margin: var(--espacio-8) var(--espacio-8) 0; border-radius: var(--radio); background: var(--fondo-alterno); overflow: hidden; display: flex; align-items: center; justify-content: center; color: var(--texto-suave); font-size: 14px; }
.rw-proy-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rw-proy-cuerpo { flex: 1; display: flex; flex-direction: column; gap: var(--espacio-8); padding: var(--espacio-16) var(--espacio-24) var(--espacio-24); }
.rw-proy-titulo { margin: 0; font-family: var(--font-titulos); font-size: 20px; font-weight: 700; line-height: 1.3; letter-spacing: -.01em; }
.rw-proy-desc { flex: 1; margin: 0 0 var(--espacio-8); font-size: 16px; line-height: 1.6; }
.rw-proy .rw-enlace { align-self: flex-start; }

/* Bloque de contacto */
.rw-contacto { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--espacio-32); padding: var(--espacio-48); border-radius: var(--radio-tarjeta); background: var(--fondo-destacado); font-family: var(--font-texto); }
.rw-contacto-texto { flex: 1 1 320px; min-width: 0; max-width: var(--ancho-parrafo); display: flex; flex-direction: column; gap: var(--espacio-16); }
.rw-contacto-titulo { margin: 0; font-family: var(--font-titulos); font-size: 36px; font-weight: 800; line-height: 1.15; letter-spacing: -.02em; text-wrap: balance; }
.rw-contacto-titulo em { font-style: normal; color: var(--verde); }
.rw-contacto p { margin: 0; font-size: 18px; line-height: 1.6; color: var(--texto-suave); }
.rw-contacto-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-24); }

/* Pie */
.rw-pie { padding: var(--espacio-32) var(--margen-movil); background: var(--fondo-destacado); font-family: var(--font-texto); font-size: 14px; line-height: 20px; }
.rw-pie-fila { max-width: var(--ancho-contenido); margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--espacio-16) var(--espacio-32); }
.rw-pie p { margin: 0; }
.rw-pie-nota { color: var(--texto-suave); }
.rw-pie-enlaces { display: flex; flex-wrap: wrap; gap: var(--espacio-24); }
.rw-pie a { color: var(--texto); font-weight: 600; text-decoration: underline; text-decoration-color: var(--verde); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.rw-pie a:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }

/* Botón de WhatsApp */
.rw-wa { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: var(--radio-etiqueta); background: var(--verde); color: var(--noche); box-shadow: var(--sombra); transition: background-color .15s ease; }
.rw-wa:hover { background: var(--verde-400); }
.rw-wa:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
.rw-wa-fijo { position: fixed; right: var(--espacio-24); bottom: calc(var(--espacio-24) + env(safe-area-inset-bottom, 0px)); z-index: 20; }

@media (max-width: 767px) {
  .rw-seccion-titulo, .rw-contacto-titulo { font-size: 28px; }
  .rw-seccion-titulo-h1 { font-size: 34px; }
  .rw-seccion-desc, .rw-contacto p { font-size: 16px; }
  .rw-cifra-valor { font-size: 36px; }
  .rw-exp-empresa { font-size: 20px; }
  .rw-exp { padding: var(--espacio-16); }
  .rw-exp-actual { padding: calc(var(--espacio-16) - 1px); }
  .rw-contacto { padding: var(--espacio-32) var(--espacio-24); }
  .rw-pie { padding-bottom: calc(var(--espacio-32) + 72px); }
}

@media (prefers-reduced-motion: reduce) {
  .rw-btn, .rw-tarjeta, .rw-enlace-flecha, .rw-enc-enlace, .rw-wa { transition: none; }
}

/* ---------- Presentaciones: diapositivas 16:9, medidas en px de una base 1920 × 1080 ---------- */
.rw-diapo { container-type: inline-size; width: 100%; }
.rw-dl {
  --u: calc(100cqw / 1920);
  position: relative; box-sizing: border-box; aspect-ratio: 16 / 9; overflow: hidden;
  display: flex; flex-direction: column; justify-content: center; gap: calc(40 * var(--u));
  padding: calc(96 * var(--u)) calc(120 * var(--u)) calc(120 * var(--u));
  background: var(--d-fondo); color: var(--d-texto); font-family: var(--font-texto);
}
.rw-dl-menta   { --d-fondo: var(--menta);   --d-texto: var(--bosque);  --d-suave: var(--verde-gris); --d-cifra: var(--bosque); --d-linea: var(--linea-clara); --d-panel: var(--blanco); --d-acento: var(--violeta); --d-sobre-acento: var(--blanco); --d-marca-fondo: var(--verde); --d-marca-texto: var(--noche); --d-barra: var(--verde-gris); --d-resalte: var(--bosque); }
.rw-dl-bosque  { --d-fondo: var(--bosque);  --d-texto: var(--blanco);  --d-suave: var(--texto-suave-destacado); --d-cifra: var(--verde); --d-linea: var(--borde-destacado); --d-panel: var(--noche); --d-acento: var(--violeta-claro); --d-sobre-acento: var(--noche); --d-marca-fondo: transparent; --d-marca-texto: var(--verde); --d-barra: var(--texto-suave-destacado); --d-resalte: var(--verde); }
.rw-dl-noche   { --d-fondo: var(--noche);   --d-texto: var(--menta);   --d-suave: var(--texto-suave-destacado); --d-cifra: var(--verde); --d-linea: var(--borde-destacado); --d-panel: var(--bosque); --d-acento: var(--violeta-claro); --d-sobre-acento: var(--noche); --d-marca-fondo: transparent; --d-marca-texto: var(--verde); --d-barra: var(--texto-suave-destacado); --d-resalte: var(--verde); }
.rw-dl-verde   { --d-fondo: var(--verde);   --d-texto: var(--noche);   --d-suave: var(--noche); --d-cifra: var(--noche); --d-linea: var(--bosque); --d-panel: var(--menta); --d-acento: var(--violeta); --d-sobre-acento: var(--blanco); --d-marca-fondo: var(--noche); --d-marca-texto: var(--verde); --d-barra: var(--bosque); --d-resalte: var(--noche); }
.rw-dl-lavanda { --d-fondo: var(--lavanda); --d-texto: var(--violeta-profundo); --d-suave: var(--verde-gris); --d-cifra: var(--violeta-profundo); --d-linea: var(--violeta-claro); --d-panel: var(--blanco); --d-acento: var(--violeta); --d-sobre-acento: var(--blanco); --d-marca-fondo: transparent; --d-marca-texto: var(--violeta); --d-barra: var(--verde-gris); --d-resalte: var(--violeta-profundo); }

.rw-dl p, .rw-dl h1, .rw-dl h2, .rw-dl blockquote { margin: 0; }
.rw-dl-ante { font-size: calc(22 * var(--u)); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--d-suave); }
.rw-dl-titulo { max-width: calc(1440 * var(--u)); font-family: var(--font-titulos); font-size: calc(64 * var(--u)); font-weight: 800; line-height: 1.1; letter-spacing: -.02em; text-wrap: balance; }
.rw-dl-destacado { color: var(--d-marca-texto); background: var(--d-marca-fondo); padding: 0 calc(12 * var(--u)); border-radius: calc(16 * var(--u)); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.rw-dl-sub { max-width: calc(1200 * var(--u)); font-size: calc(40 * var(--u)); font-weight: 500; line-height: 1.3; color: var(--d-suave); }
.rw-dl-texto { font-size: calc(30 * var(--u)); line-height: 1.45; }
.rw-dl-nota { font-size: calc(22 * var(--u)); font-weight: 500; color: var(--d-suave); }
.rw-dl-cifra { font-family: var(--font-titulos); font-size: calc(240 * var(--u)); font-weight: 800; line-height: .9; letter-spacing: -.04em; color: var(--d-cifra); font-variant-numeric: tabular-nums; }
.rw-dl-etiqueta { align-self: flex-start; padding: calc(8 * var(--u)) calc(28 * var(--u)); border-radius: var(--radio-etiqueta); background: var(--d-acento); color: var(--d-sobre-acento); font-size: calc(24 * var(--u)); font-weight: 700; letter-spacing: .02em; }
.rw-dl-col { display: flex; flex-direction: column; gap: calc(32 * var(--u)); min-width: 0; }
.rw-dl-bloque { position: relative; display: flex; flex-direction: column; gap: calc(32 * var(--u)); }
.rw-dl-pie { position: absolute; left: calc(120 * var(--u)); right: calc(120 * var(--u)); bottom: calc(48 * var(--u)); display: flex; justify-content: space-between; font-size: calc(20 * var(--u)); font-weight: 600; color: var(--d-suave); font-variant-numeric: tabular-nums; }
.rw-dl-fuente { position: absolute; left: calc(120 * var(--u)); bottom: calc(88 * var(--u)); }
.rw-dl-puntos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: calc(24 * var(--u)); font-size: calc(32 * var(--u)); line-height: 1.4; }
.rw-dl-puntos li { position: relative; padding-left: calc(48 * var(--u)); }
.rw-dl-puntos li::before { content: ""; position: absolute; left: 0; top: .5em; width: calc(16 * var(--u)); height: calc(16 * var(--u)); border-radius: calc(4 * var(--u)); background: var(--verde); }
.rw-dl-checks li::before { width: calc(28 * var(--u)); height: calc(28 * var(--u)); top: .3em; border-radius: 50%; background: var(--verde); }
.rw-dl-checks li::after { content: ""; position: absolute; left: calc(9 * var(--u)); top: calc(.3em + 5 * var(--u)); width: calc(8 * var(--u)); height: calc(14 * var(--u)); border: solid var(--noche); border-width: 0 calc(4 * var(--u)) calc(4 * var(--u)) 0; transform: rotate(45deg); }

/* Portada y cierre */
.rw-dl-portada, .rw-dl-cierre { justify-content: flex-end; }
.rw-dl-portada .rw-dl-titulo { max-width: calc(1180 * var(--u)); font-size: calc(112 * var(--u)); line-height: 1.02; letter-spacing: -.03em; }
.rw-dl-cierre .rw-dl-titulo { max-width: calc(1180 * var(--u)); font-size: calc(96 * var(--u)); line-height: 1.04; letter-spacing: -.03em; }
.rw-dl-forma { position: absolute; top: calc(-180 * var(--u)); right: calc(-200 * var(--u)); width: calc(760 * var(--u)); height: calc(760 * var(--u)); border-radius: 50%; background: var(--verde); }
.rw-dl-forma::after { content: ""; position: absolute; left: calc(-120 * var(--u)); bottom: calc(40 * var(--u)); width: calc(240 * var(--u)); height: calc(240 * var(--u)); border-radius: 50%; border: calc(24 * var(--u)) solid var(--d-linea); box-sizing: border-box; }
.rw-dl-firma { margin-top: calc(16 * var(--u)); }
.rw-dl-contactos { display: flex; flex-wrap: wrap; gap: calc(24 * var(--u)) calc(96 * var(--u)); margin-top: calc(16 * var(--u)); }
.rw-dl-contactos > div { display: flex; flex-direction: column; gap: calc(8 * var(--u)); }
.rw-dl-contacto-valor { font-size: calc(32 * var(--u)); font-weight: 700; }

/* Sección */
.rw-dl-seccion { justify-content: space-between; }
.rw-dl-seccion .rw-dl-titulo { font-size: calc(88 * var(--u)); letter-spacing: -.03em; }

/* Agenda */
.rw-dl-agenda { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: calc(96 * var(--u)); }
.rw-dl-agenda > div:first-child { display: flex; flex-direction: column; gap: calc(24 * var(--u)); }
.rw-dl-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.rw-dl-lista li { display: flex; align-items: baseline; gap: calc(40 * var(--u)); padding: calc(28 * var(--u)) 0; border-top: calc(2 * var(--u)) solid var(--d-linea); font-size: calc(36 * var(--u)); font-weight: 600; }
.rw-dl-lista li:last-child { border-bottom: calc(2 * var(--u)) solid var(--d-linea); }
.rw-dl-lista-n { min-width: calc(64 * var(--u)); font-family: var(--font-titulos); font-weight: 800; color: var(--d-suave); font-variant-numeric: tabular-nums; }

/* Contenido */
.rw-dl-con-imagen { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: calc(96 * var(--u)); }
.rw-dl-con-imagen .rw-dl-titulo { font-size: calc(56 * var(--u)); }
.rw-dl-imagen { align-self: stretch; border-radius: calc(32 * var(--u)); background: var(--linea-clara); overflow: hidden; display: flex; align-items: center; justify-content: center; font-size: calc(24 * var(--u)); color: var(--verde-gris); }
.rw-dl-imagen img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Cifras */
.rw-dl-una-cifra .rw-dl-sub { color: var(--d-texto); font-weight: 600; }
.rw-dl-kpis { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: calc(48 * var(--u)); margin-top: calc(32 * var(--u)); }
.rw-dl-kpi { display: flex; flex-direction: column; gap: calc(16 * var(--u)); }
.rw-dl-kpi::before { content: ""; width: calc(64 * var(--u)); height: calc(8 * var(--u)); border-radius: var(--radio-etiqueta); background: var(--verde); margin-bottom: calc(8 * var(--u)); }
.rw-dl-kpi-valor { font-family: var(--font-titulos); font-size: calc(120 * var(--u)); font-weight: 800; line-height: 1; letter-spacing: -.03em; color: var(--d-cifra); font-variant-numeric: tabular-nums; }
.rw-dl-kpi-desc { font-size: calc(28 * var(--u)); line-height: 1.35; color: var(--d-suave); }

/* Paneles: comparación y caso */
.rw-dl-dos, .rw-dl-tres { display: grid; gap: calc(40 * var(--u)); }
.rw-dl-dos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rw-dl-tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rw-dl-panel { display: flex; flex-direction: column; gap: calc(24 * var(--u)); padding: calc(48 * var(--u)); border-radius: calc(32 * var(--u)); background: var(--d-panel); box-shadow: inset 0 0 0 calc(2 * var(--u)) var(--d-linea); }
.rw-dl-panel-fuerte { --d-suave: var(--texto-suave-destacado); background: var(--bosque); color: var(--blanco); box-shadow: none; }
.rw-dl-panel-verde { --d-suave: var(--noche); --d-cifra: var(--noche); background: var(--verde); color: var(--noche); box-shadow: none; }
.rw-dl-dos .rw-dl-puntos { font-size: calc(30 * var(--u)); }
.rw-dl-caso .rw-dl-texto { font-size: calc(28 * var(--u)); }
.rw-dl-caso .rw-dl-titulo, .rw-dl-comparacion .rw-dl-titulo { font-size: calc(56 * var(--u)); }

/* Insight y cita */
.rw-dl-insight .rw-dl-insight-texto { max-width: calc(1500 * var(--u)); font-size: calc(80 * var(--u)); line-height: 1.08; letter-spacing: -.03em; }
.rw-dl-comilla { height: calc(140 * var(--u)); font-family: var(--font-titulos); font-size: calc(320 * var(--u)); font-weight: 800; line-height: .6; color: var(--verde); }
.rw-dl-cita-texto { max-width: calc(1500 * var(--u)); font-family: var(--font-titulos); font-size: calc(56 * var(--u)); font-weight: 700; line-height: 1.2; letter-spacing: -.02em; text-wrap: balance; }
.rw-dl-autor { display: flex; flex-direction: column; gap: calc(8 * var(--u)); font-size: calc(28 * var(--u)); }
.rw-dl-autor span { font-size: calc(24 * var(--u)); color: var(--d-suave); }

/* Gráfico de barras */
.rw-dl-grafico { justify-content: flex-start; padding-top: calc(112 * var(--u)); }
.rw-dl-grafico .rw-dl-titulo { font-size: calc(56 * var(--u)); }
.rw-dl-grafico > div:first-child { display: flex; flex-direction: column; gap: calc(16 * var(--u)); }
.rw-dl-barras { display: flex; flex-direction: column; gap: calc(28 * var(--u)); margin-top: calc(24 * var(--u)); }
.rw-dl-barra { display: grid; grid-template-columns: calc(360 * var(--u)) minmax(0, 1fr) calc(140 * var(--u)); align-items: center; gap: calc(24 * var(--u)); font-size: calc(26 * var(--u)); }
.rw-dl-barra-etiqueta { color: var(--d-suave); }
.rw-dl-barra-pista { height: calc(48 * var(--u)); }
.rw-dl-barra-relleno { display: block; height: 100%; border-radius: 0 calc(12 * var(--u)) calc(12 * var(--u)) 0; background: var(--d-barra); }
.rw-dl-barra-valor { font-weight: 700; font-variant-numeric: tabular-nums; }
.rw-dl-barra-resaltada .rw-dl-barra-relleno { background: var(--d-resalte); }
.rw-dl-barra-resaltada .rw-dl-barra-etiqueta { color: var(--d-texto); font-weight: 700; }
.rw-dl-barra-resaltada .rw-dl-barra-valor { color: var(--d-resalte); font-size: calc(32 * var(--u)); }

/* ---------- Presentaciones de e-commerce y marketing ---------- */
.rw-dl-cabecera { display: flex; flex-direction: column; align-items: flex-start; gap: calc(16 * var(--u)); }
.rw-dl-cabecera .rw-dl-titulo { font-size: calc(56 * var(--u)); }
.rw-dl-suave { color: var(--d-suave); }
.rw-dl-num { text-align: right; font-variant-numeric: tabular-nums; }
.rw-dl-funnel, .rw-dl-formula, .rw-dl-ratios, .rw-dl-experimento, .rw-dl-priorizacion, .rw-dl-journey, .rw-dl-tendencia, .rw-dl-roadmap { justify-content: flex-start; padding-top: calc(88 * var(--u)); }

/* Embudo */
.rw-dl-funnel { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 8fr); align-items: center; gap: calc(80 * var(--u)); padding-top: calc(96 * var(--u)); }
.rw-dl-funnel .rw-dl-col { gap: calc(56 * var(--u)); }
.rw-dl-fn { display: flex; flex-direction: column; }
.rw-dl-fn-etapa { display: grid; grid-template-columns: calc(240 * var(--u)) minmax(0, 1fr) calc(170 * var(--u)); align-items: center; gap: calc(24 * var(--u)); font-size: calc(26 * var(--u)); }
.rw-dl-fn-nombre { font-weight: 600; }
.rw-dl-fn-pista { display: flex; justify-content: center; }
.rw-dl-fn-barra { display: block; height: calc(64 * var(--u)); border-radius: calc(12 * var(--u)); background: var(--d-barra); }
.rw-dl-fn-etapa:last-child .rw-dl-fn-barra { background: var(--verde); }
.rw-dl-fn-valor { font-family: var(--font-titulos); font-size: calc(32 * var(--u)); font-weight: 800; text-align: right; font-variant-numeric: tabular-nums; }
.rw-dl-fn-paso { display: flex; align-items: center; justify-content: center; gap: calc(16 * var(--u)); min-height: calc(80 * var(--u)); padding-top: calc(8 * var(--u)); padding-bottom: calc(8 * var(--u)); padding-left: calc(264 * var(--u)); padding-right: calc(194 * var(--u)); font-size: calc(22 * var(--u)); font-weight: 600; color: var(--d-suave); }
.rw-dl-fn-fuga { color: var(--d-texto); }
.rw-dl-fn-fuga .rw-dl-etiqueta { font-size: calc(20 * var(--u)); padding: calc(4 * var(--u)) calc(16 * var(--u)); }

/* Fórmula */
.rw-dl-fx { display: flex; align-items: stretch; gap: calc(24 * var(--u)); margin-top: calc(48 * var(--u)); }
.rw-dl-fx-factor { flex: 1 1 0; min-width: 0; justify-content: center; }
.rw-dl-fx-valor { font-family: var(--font-titulos); font-size: calc(72 * var(--u)); font-weight: 800; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.rw-dl-fx-nota { font-size: calc(22 * var(--u)); line-height: 1.35; color: var(--d-suave); }
.rw-dl-fx-op { align-self: center; font-family: var(--font-titulos); font-size: calc(72 * var(--u)); font-weight: 800; color: var(--d-suave); }

/* Tablas: ratios y priorización */
.rw-dl-tabla { width: 100%; margin-top: calc(32 * var(--u)); border-collapse: separate; border-spacing: 0; overflow: hidden; border-radius: calc(32 * var(--u)); background: var(--d-panel); box-shadow: inset 0 0 0 calc(2 * var(--u)) var(--d-linea); font-size: calc(26 * var(--u)); }
.rw-dl-tabla th { padding: calc(24 * var(--u)) calc(32 * var(--u)); border-bottom: calc(2 * var(--u)) solid var(--d-linea); text-align: left; font-size: calc(20 * var(--u)); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--d-suave); }
.rw-dl-tabla th.rw-dl-num { text-align: right; }
.rw-dl-tabla td { padding: calc(20 * var(--u)) calc(32 * var(--u)); border-bottom: calc(2 * var(--u)) solid var(--d-linea); vertical-align: middle; }
.rw-dl-tabla tr:last-child td { border-bottom: 0; }
.rw-dl-tabla td strong { display: block; font-weight: 700; }
.rw-dl-tabla td > span:not([class]) { display: block; font-size: calc(20 * var(--u)); color: var(--d-suave); }
.rw-dl-tabla td.rw-dl-num { font-family: var(--font-titulos); font-size: calc(30 * var(--u)); font-weight: 800; }
.rw-dl-tabla td.rw-dl-suave { font-family: var(--font-texto); font-weight: 600; color: var(--d-suave); }
.rw-dl-estado { display: inline-flex; padding: calc(6 * var(--u)) calc(20 * var(--u)); border-radius: var(--radio-etiqueta); font-size: calc(20 * var(--u)); font-weight: 700; white-space: nowrap; }
.rw-dl-estado-arriba { background: var(--verde); color: var(--noche); }
.rw-dl-estado-en-linea { background: var(--linea-clara); color: var(--bosque); }
.rw-dl-estado-abajo { background: transparent; color: var(--bosque); box-shadow: inset 0 0 0 calc(3 * var(--u)) var(--bosque); }
.rw-dl-ice td.rw-dl-num { font-family: var(--font-texto); font-weight: 600; }
.rw-dl-ice-puntaje { display: flex; align-items: center; gap: calc(20 * var(--u)); }
.rw-dl-ice-pista { flex: 1; height: calc(20 * var(--u)); border-radius: var(--radio-etiqueta); background: var(--linea-clara); overflow: hidden; }
.rw-dl-ice-barra { display: block; height: 100%; border-radius: var(--radio-etiqueta); background: var(--verde-gris); }
.rw-dl-ice-puntaje b { min-width: calc(60 * var(--u)); font-family: var(--font-titulos); font-size: calc(30 * var(--u)); font-weight: 800; text-align: right; font-variant-numeric: tabular-nums; }
.rw-dl-fila-top td { background: var(--bosque); color: var(--blanco); border-bottom-color: var(--bosque); }
.rw-dl-fila-top .rw-dl-ice-pista { background: var(--borde-destacado); }
.rw-dl-fila-top .rw-dl-ice-barra { background: var(--verde); }
.rw-dl-fila-top .rw-dl-ice-puntaje b { color: var(--verde); }

/* Test A/B */
.rw-dl-ab { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(40 * var(--u)); margin-top: calc(24 * var(--u)); }
.rw-dl-ab-tasa { font-family: var(--font-titulos); font-size: calc(104 * var(--u)); font-weight: 800; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.rw-dl-ab .rw-dl-panel-fuerte .rw-dl-ab-tasa { color: var(--verde); }
.rw-dl-ab .rw-dl-texto { font-size: calc(26 * var(--u)); }
.rw-dl-ab-decision { align-self: flex-start; margin-top: auto; padding: calc(8 * var(--u)) calc(24 * var(--u)); border-radius: var(--radio-etiqueta); background: var(--noche); color: var(--verde); font-size: calc(22 * var(--u)); font-weight: 700; }
.rw-dl-experimento .rw-dl-cabecera .rw-dl-texto { font-size: calc(26 * var(--u)); max-width: calc(1500 * var(--u)); }

/* Matriz 2 × 2 */
.rw-dl-matriz { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: calc(72 * var(--u)); }
.rw-dl-mx { display: grid; grid-template-columns: calc(48 * var(--u)) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) calc(48 * var(--u)); gap: calc(8 * var(--u)); height: calc(760 * var(--u)); }
.rw-dl-mx-eje { font-size: calc(22 * var(--u)); font-weight: 700; color: var(--d-suave); }
.rw-dl-mx-y { writing-mode: vertical-rl; transform: rotate(180deg); text-align: center; }
.rw-dl-mx-x { grid-column: 2; text-align: center; }
.rw-dl-mx-plano { position: relative; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: calc(8 * var(--u)); }
.rw-dl-mx-q { padding: calc(24 * var(--u)); border-radius: calc(24 * var(--u)); background: var(--d-panel); box-shadow: inset 0 0 0 calc(2 * var(--u)) var(--d-linea); font-size: calc(22 * var(--u)); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--d-suave); }
.rw-dl-mx-q1 { background: var(--linea-clara); box-shadow: inset 0 0 0 calc(4 * var(--u)) var(--verde); color: var(--bosque); }
.rw-dl-mx-punto { position: absolute; display: inline-flex; align-items: center; gap: calc(12 * var(--u)); transform: translate(calc(-12 * var(--u)), 50%); font-size: calc(22 * var(--u)); font-weight: 700; white-space: nowrap; color: var(--bosque); }
.rw-dl-mx-punto i { flex: none; width: calc(24 * var(--u)); height: calc(24 * var(--u)); border-radius: 50%; background: var(--bosque); box-shadow: 0 0 0 calc(4 * var(--u)) var(--blanco); }

/* Viaje del cliente */
.rw-dl-jr { display: grid; gap: calc(12 * var(--u)); margin-top: calc(32 * var(--u)); font-size: calc(22 * var(--u)); line-height: 1.35; }
.rw-dl-jr-etapa { display: flex; align-items: center; gap: calc(12 * var(--u)); padding: calc(16 * var(--u)) calc(20 * var(--u)); border-radius: calc(16 * var(--u)); background: var(--linea-clara); font-family: var(--font-titulos); font-size: calc(26 * var(--u)); font-weight: 800; }
.rw-dl-jr-etapa span { display: inline-flex; align-items: center; justify-content: center; width: calc(36 * var(--u)); height: calc(36 * var(--u)); border-radius: 50%; background: var(--bosque); color: var(--blanco); font-size: calc(18 * var(--u)); }
.rw-dl-jr-activa { background: var(--bosque); color: var(--blanco); }
.rw-dl-jr-activa span { background: var(--verde); color: var(--noche); }
.rw-dl-jr-fila { align-self: center; font-size: calc(18 * var(--u)); }
.rw-dl-jr-celda { padding: calc(14 * var(--u)) calc(20 * var(--u)); border-radius: calc(16 * var(--u)); background: var(--d-panel); box-shadow: inset 0 0 0 calc(2 * var(--u)) var(--d-linea); }
.rw-dl-jr-activa-celda { box-shadow: inset 0 0 0 calc(4 * var(--u)) var(--bosque); }

/* Tendencia */
.rw-dl-tn { position: relative; flex: 1; display: flex; flex-direction: column; gap: calc(16 * var(--u)); margin: calc(40 * var(--u)) calc(160 * var(--u)) calc(56 * var(--u)) 0; }
.rw-dl-tn-area { position: relative; flex: 1; border-bottom: calc(2 * var(--u)) solid var(--d-linea); }
.rw-dl-tn-area svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.rw-dl-tn-linea { fill: none; stroke: var(--verde); stroke-width: 4; stroke-linejoin: round; stroke-linecap: round; }
.rw-dl-tn-meta { stroke: var(--d-suave); stroke-width: 2; stroke-dasharray: 8 8; }
.rw-dl-tn-meta-txt { position: absolute; right: calc(-160 * var(--u)); transform: translateY(-50%); font-size: calc(20 * var(--u)); font-weight: 600; color: var(--d-suave); }
.rw-dl-tn-punto { position: absolute; width: calc(16 * var(--u)); height: calc(16 * var(--u)); border-radius: 50%; background: var(--verde); transform: translate(-50%, -50%); }
.rw-dl-tn-ultimo { width: calc(28 * var(--u)); height: calc(28 * var(--u)); box-shadow: 0 0 0 calc(6 * var(--u)) var(--d-fondo); }
.rw-dl-tn-ultimo b { position: absolute; left: calc(44 * var(--u)); top: 50%; transform: translateY(-50%); font-family: var(--font-titulos); font-size: calc(48 * var(--u)); font-weight: 800; color: var(--verde); white-space: nowrap; }
.rw-dl-tn-anotado { box-shadow: 0 0 0 calc(6 * var(--u)) var(--d-fondo), 0 0 0 calc(10 * var(--u)) var(--violeta-claro); }
.rw-dl-tn-nota { position: absolute; transform: translate(-50%, calc(-100% - 36 * var(--u))); max-width: calc(380 * var(--u)); padding: calc(8 * var(--u)) calc(20 * var(--u)); border-radius: calc(16 * var(--u)); background: var(--violeta-claro); color: var(--noche); font-size: calc(20 * var(--u)); font-weight: 700; line-height: 1.3; text-align: center; }
.rw-dl-tn-ejex { position: relative; height: calc(32 * var(--u)); }
.rw-dl-tn-ejex span { position: absolute; transform: translateX(-50%); font-size: calc(20 * var(--u)); color: var(--d-suave); white-space: nowrap; }

/* Hoja de ruta */
.rw-dl-rm { display: grid; gap: calc(32 * var(--u)); margin-top: calc(32 * var(--u)); }
.rw-dl-rm-titulo { font-family: var(--font-titulos); font-size: calc(36 * var(--u)); font-weight: 800; letter-spacing: -.02em; }
.rw-dl-rm .rw-dl-puntos { font-size: calc(26 * var(--u)); gap: calc(16 * var(--u)); }

/* Ajustes tras la revisión visual: el contenido principal se centra en el espacio libre */
.rw-dl-fx, .rw-dl-ratios .rw-dl-tabla, .rw-dl-priorizacion .rw-dl-tabla, .rw-dl-ab, .rw-dl-rm, .rw-dl-jr { margin-top: auto; margin-bottom: auto; }
.rw-dl-funnel, .rw-dl-formula, .rw-dl-ratios, .rw-dl-experimento, .rw-dl-priorizacion, .rw-dl-journey, .rw-dl-roadmap { padding-bottom: calc(160 * var(--u)); }
.rw-dl-fx-valor { font-size: calc(72 * var(--u)); white-space: nowrap; }
.rw-dl-fx .rw-dl-fx-factor:first-child { flex-grow: 1.25; }
.rw-dl-fx .rw-dl-panel { padding: calc(56 * var(--u)) calc(48 * var(--u)); }
.rw-dl-rm .rw-dl-panel { min-height: calc(420 * var(--u)); }
.rw-dl-rm .rw-dl-puntos { font-size: calc(30 * var(--u)); }
.rw-dl-ab .rw-dl-panel { min-height: calc(420 * var(--u)); }

/* ---------- Estados y formularios ---------- */
.rw-icono-estado { flex: none; width: 20px; height: 20px; }

/* Alerta */
.rw-alerta { display: flex; align-items: flex-start; gap: 12px; padding: var(--espacio-16) var(--espacio-24) var(--espacio-16) var(--espacio-16); border-radius: var(--radio); font-family: var(--font-texto); font-size: 16px; line-height: 24px; }
.rw-alerta .rw-icono-estado { margin-top: 2px; }
.rw-alerta-cuerpo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--espacio-4); }
.rw-alerta-titulo { margin: 0; font-weight: 700; }
.rw-alerta-texto { color: var(--texto); }
.rw-alerta-texto p { margin: 0; }
.rw-alerta-error { background: var(--error-suave); color: var(--error); }
.rw-alerta-exito { background: var(--exito-suave); color: var(--exito); }
.rw-alerta-advertencia { background: var(--advertencia-suave); color: var(--advertencia); }
.rw-alerta-info { background: var(--acento-suave); color: var(--acento-texto); }

/* Campos: error, opcional, selector */
.rw-campo-opcional { font-weight: 400; color: var(--texto-suave); }
.rw-campo-error { display: flex; align-items: flex-start; gap: var(--espacio-8); font-size: 14px; font-weight: 600; line-height: 20px; color: var(--error); }
.rw-campo-error .rw-icono-estado { width: 18px; height: 18px; margin-top: 1px; }
.rw-campo-con-error .rw-campo-control { border: 2px solid var(--error); padding-left: calc(var(--espacio-16) - 1px); }
.rw-campo-con-error .rw-campo-control:focus { border-color: var(--error); }
.rw-selector-caja { position: relative; display: flex; }
.rw-selector-caja::after { content: ""; position: absolute; right: var(--espacio-16); top: 50%; width: 8px; height: 8px; border: solid var(--texto); border-width: 0 2px 2px 0; transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.rw-selector { width: 100%; appearance: none; -webkit-appearance: none; padding-right: var(--espacio-48); cursor: pointer; }
.rw-selector:invalid { color: var(--texto-suave); }

/* Casilla y opciones */
.rw-casilla, .rw-grupo-opciones { display: flex; flex-direction: column; gap: var(--espacio-8); font-family: var(--font-texto); }
.rw-grupo-opciones { margin: 0; padding: 0; border: 0; min-width: 0; }
.rw-grupo-opciones legend { padding: 0; margin-bottom: var(--espacio-8); }
.rw-casilla-fila, .rw-opcion { display: flex; align-items: flex-start; gap: 12px; }
.rw-casilla-fila label, .rw-opcion label { display: flex; flex-direction: column; gap: 2px; padding-top: 1px; font-size: 16px; line-height: 22px; color: var(--texto); cursor: pointer; }
.rw-opcion label span { font-size: 14px; color: var(--texto-suave); }
.rw-opciones { display: flex; flex-direction: column; gap: 12px; }
.rw-opciones-linea { flex-direction: row; flex-wrap: wrap; gap: var(--espacio-8) var(--espacio-24); }
.rw-casilla-control, .rw-opcion-control { appearance: none; -webkit-appearance: none; flex: none; position: relative; width: 24px; height: 24px; margin: 0; border: 2px solid var(--borde-control); background: var(--superficie); cursor: pointer; }
.rw-casilla-control { border-radius: 6px; }
.rw-opcion-control { border-radius: 50%; }
.rw-casilla-control:checked, .rw-opcion-control:checked { border-color: var(--primario); background: var(--primario); }
.rw-casilla-control:checked::after { content: ""; position: absolute; left: 6px; top: 2px; width: 6px; height: 11px; border: solid var(--sobre-primario); border-width: 0 3px 3px 0; transform: rotate(45deg); }
.rw-opcion-control:checked::after { content: ""; position: absolute; inset: 5px; border-radius: 50%; background: var(--sobre-primario); }
.rw-casilla-control:focus-visible, .rw-opcion-control:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
.rw-campo-con-error .rw-casilla-control, .rw-campo-con-error .rw-opcion-control { border-color: var(--error); }

/* Íconos y monograma */
.rw-icono { flex: none; display: inline-block; vertical-align: middle; }
.rw-monograma-svg { flex: none; display: block; }
.rw-monograma-fondo { fill: var(--blanco); }
.rw-monograma-borde { fill: none; stroke: var(--linea-clara); stroke-width: 2; }
.rw-monograma-cuerpo { fill: var(--bosque); }
.rw-monograma-llama { fill: var(--verde-600); }
.rw-monograma-oscuro .rw-monograma-fondo { fill: var(--bosque); }
.rw-monograma-oscuro .rw-monograma-borde { stroke: none; }
.rw-monograma-oscuro .rw-monograma-cuerpo { fill: var(--menta); }
.rw-monograma-oscuro .rw-monograma-llama { fill: var(--verde); }
