/* =========================================================
   Curso de Protocolo Fácil (/curso)
   3 columnas: temas (izq.) · lecciones (centro) · foro (der.)
   ========================================================= */
.cu-cab {
  background: radial-gradient(1200px 380px at 85% -10%, rgba(37, 99, 235, .18), transparent 60%),
              linear-gradient(180deg, var(--pf-celeste) 0%, #fff 100%);
  border-bottom: 1px solid var(--pf-borde);
  padding: 2.2rem 1rem 1.6rem;
}
.cu-cab-in { max-width: 1560px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: 2rem; align-items: end; }
.cu-cab h1 { font-size: clamp(1.6rem, 2.6vw, 2.35rem); margin: .35rem 0 .5rem; }
.cu-cab p { color: var(--pf-suave); max-width: 46rem; margin-bottom: .8rem; }
.cu-cab-volver { font-weight: 700; font-size: .85rem; color: var(--pf-azul); display: inline-flex; gap: .4rem; align-items: center; }
.cu-cab-datos { display: flex; flex-wrap: wrap; gap: .5rem 1.1rem; font-size: .85rem; color: var(--pf-suave); font-weight: 600; }
.cu-cab-datos i { color: var(--pf-azul); }

/* ---------- buscador ---------- */
.cu-buscar { position: relative; }
.cu-buscar-caja { display: flex; align-items: center; gap: .6rem; background: #fff; border: 2px solid var(--pf-celeste-2); border-radius: 999px; padding: .2rem .5rem .2rem 1.1rem; box-shadow: var(--pf-sombra); transition: border-color .2s; }
.cu-buscar-caja:focus-within { border-color: var(--pf-azul); }
.cu-buscar-caja > i { color: var(--pf-azul); font-size: 1.1rem; }
.cu-buscar-caja input { border: 0; outline: 0; flex: 1; min-width: 0; font-size: 1rem; padding: .65rem 0; background: transparent; }
.cu-buscar-caja input::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
.cu-buscar-x { border: 0; background: var(--pf-celeste); color: var(--pf-azul-osc); border-radius: 50%; width: 32px; height: 32px; }
.cu-etiquetas { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .7rem; }
.cu-tag { border: 1px solid var(--pf-celeste-2); background: #fff; color: var(--pf-azul-osc); border-radius: 999px; font-size: .78rem; font-weight: 600; padding: .2rem .6rem; cursor: pointer; transition: background .15s, transform .15s; }
.cu-tag:hover, .cu-tag.activa { background: var(--pf-azul); color: #fff; border-color: var(--pf-azul); }
.cu-tag-sm { font-size: .72rem; padding: .12rem .5rem; }
.cu-resultados {
  position: absolute; z-index: 1030; left: 0; right: 0; top: calc(100% + .4rem);
  background: #fff; border: 1px solid var(--pf-borde); border-radius: var(--pf-radio); box-shadow: 0 24px 60px -20px rgba(15, 30, 70, .35);
  max-height: min(70vh, 640px); overflow: auto; padding: .5rem;
}
.cu-res-sec { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; color: var(--pf-suave); padding: .55rem .6rem .25rem; }
.cu-res { display: flex; gap: .7rem; padding: .55rem .6rem; border-radius: 10px; color: var(--pf-texto); }
.cu-res:hover, .cu-res.foco { background: var(--pf-celeste); color: var(--pf-texto); }
.cu-res > i { color: var(--pf-azul); font-size: 1.1rem; margin-top: .1rem; }
.cu-res strong { display: block; font-size: .93rem; }
.cu-res small { display: block; color: var(--pf-suave); font-size: .8rem; }
.cu-res em { font-style: normal; background: #fef08a; border-radius: 3px; }
.cu-res-g { font-size: .7rem !important; color: var(--pf-azul) !important; font-weight: 700; }
.cu-res-vacio { padding: 1rem; text-align: center; }
.cu-res-vacio p { color: var(--pf-suave); margin-bottom: .6rem; }

/* ---------- estructura de 3 columnas ---------- */
.cu-app { max-width: 1560px; margin: 0 auto; padding: 1.6rem 1rem 3rem; display: grid; grid-template-columns: 270px minmax(0, 1fr) 340px; gap: 2rem; align-items: start; }
.cu-nav-abrir { display: none; }
.cu-main { min-width: 0; }

/* ---------- menú lateral izquierdo ---------- */
.cu-nav { position: sticky; top: 84px; max-height: calc(100vh - 100px); }
.cu-nav-in { overflow: auto; max-height: calc(100vh - 100px); padding-right: .3rem; }
.cu-nav-tit { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; color: var(--pf-suave); margin: 0 0 .6rem .4rem; }
.cu-nav-lista { list-style: none; padding: 0; margin: 0; }
.cu-nav-lista > li { margin-bottom: .2rem; }
.cu-nav-tema { display: flex; align-items: center; gap: .55rem; padding: .5rem .6rem; border-radius: 10px; color: var(--pf-texto); font-weight: 600; font-size: .93rem; }
.cu-nav-tema:hover { background: var(--pf-celeste); color: var(--pf-azul-osc); }
.cu-nav-tema > i { color: var(--pf-azul); }
.cu-nav-num { width: 22px; height: 22px; border-radius: 50%; background: var(--pf-celeste-2); color: var(--pf-azul-osc); font-size: .72rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.cu-nav-num i { font-size: .65rem; }
.cu-nav-nombre { flex: 1; }
.cu-nav-cant { font-size: .7rem; color: var(--pf-suave); background: #f1f5f9; border-radius: 999px; padding: 0 .45rem; }
.cu-nav-lista > li.activo > .cu-nav-tema { background: var(--pf-azul); color: #fff; }
.cu-nav-lista > li.activo > .cu-nav-tema > i, .cu-nav-lista > li.activo .cu-nav-cant { color: #fff; background: transparent; }
.cu-nav-lista > li.activo .cu-nav-num { background: #fff; color: var(--pf-azul); }
.cu-nav-lecciones { list-style: none; margin: .3rem 0 .6rem 1.35rem; padding: 0 0 0 .7rem; border-left: 2px solid var(--pf-celeste-2); }
.cu-nav-lecciones a { display: block; font-size: .84rem; color: var(--pf-suave); padding: .28rem .5rem; border-radius: 8px; line-height: 1.3; }
.cu-nav-lecciones a:hover { color: var(--pf-azul); background: var(--pf-celeste); }
.cu-nav-lecciones a.actual { color: var(--pf-azul-osc); font-weight: 700; background: var(--pf-celeste); box-shadow: inset 3px 0 0 var(--pf-azul); }
.cu-nav-foro { display: flex; gap: .55rem; align-items: center; margin-top: 1rem; padding: .75rem .8rem; border-radius: 12px; background: #fff7ed; color: #9a3412; font-size: .84rem; border: 1px dashed #fdba74; }
.cu-nav-foro i { font-size: 1.2rem; }

/* ---------- encabezado del tema ---------- */
.cu-tema-cab { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.4rem; }
.cu-tema-icono { width: 58px; height: 58px; border-radius: 16px; background: linear-gradient(135deg, var(--pf-azul), var(--pf-azul-prof)); color: #fff; font-size: 1.7rem; display: inline-flex; align-items: center; justify-content: center; flex: none; box-shadow: 0 10px 24px -10px rgba(37, 99, 235, .7); }
.cu-tema-num { font-size: .78rem; font-weight: 700; color: var(--pf-suave); }
.cu-tema-cab h2 { margin: 0; font-size: 1.7rem; }
.cu-contenido { background: #fff; border: 1px solid var(--pf-borde); border-radius: var(--pf-radio); padding: 1rem 1.2rem; margin-bottom: 1.6rem; }
.cu-contenido-tit { font-weight: 800; font-size: .85rem; margin-bottom: .5rem; }
.cu-contenido ol { columns: 2; column-gap: 1.5rem; margin: 0; padding-left: 1.2rem; font-size: .9rem; }
.cu-contenido li { break-inside: avoid; padding: .15rem 0; }
.cu-contenido a { color: var(--pf-texto); }
.cu-contenido a:hover { color: var(--pf-azul); }
.cu-contenido a i { color: var(--pf-azul); margin-right: .35rem; }

/* ---------- ruta (flujo de datos) ---------- */
.cu-flujo { border-radius: 20px; padding: 1.4rem; margin-bottom: 1.8rem; background: linear-gradient(135deg, #0b1b3a, #1e3a8a); color: #fff; box-shadow: var(--pf-sombra); }
.cu-flujo-cab h3 { color: #fff; font-size: 1.25rem; margin-bottom: .2rem; }
.cu-flujo-cab p { color: #c7d7fe; margin-bottom: 1rem; font-size: .92rem; }
.cu-flujo-ruta { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .9rem 1.1rem; counter-reset: paso; }
.cu-flujo-ruta li { position: relative; }
.cu-flujo-ruta li:not(:last-child)::after { content: "→"; position: absolute; right: -1rem; top: 1.45rem; color: #93c5fd; font-size: .9rem; }
.cu-flujo-ruta a { display: flex; flex-direction: column; gap: .3rem; height: 100%; padding: .8rem; border-radius: 14px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); color: #fff; transition: background .15s, transform .15s; }
.cu-flujo-ruta a:hover { background: rgba(255, 255, 255, .16); transform: translateY(-2px); color: #fff; }
.cu-flujo-n { position: absolute; top: .55rem; right: .65rem; font-size: .7rem; font-weight: 800; color: #93c5fd; }
.cu-flujo-ico { width: 38px; height: 38px; border-radius: 11px; background: #fff; color: var(--pf-azul); display: inline-flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.cu-flujo-ruta strong { font-size: .92rem; line-height: 1.2; }
.cu-flujo-ruta small { color: #c7d7fe; font-size: .78rem; line-height: 1.35; }
.cu-flujo-datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .7rem; margin-top: 1.1rem; }
.cu-flujo-datos > div { display: flex; gap: .6rem; font-size: .82rem; color: #dbeafe; background: rgba(0, 0, 0, .18); border-radius: 12px; padding: .7rem .8rem; }
.cu-flujo-datos i { color: #fbbf24; font-size: 1.1rem; }
.cu-flujo-datos strong { color: #fff; }

/* ---------- lección ---------- */
.cu-leccion { background: #fff; border: 1px solid var(--pf-borde); border-radius: 20px; padding: 1.5rem 1.6rem; margin-bottom: 1.6rem; scroll-margin-top: 90px; box-shadow: 0 2px 0 rgba(15, 23, 42, .02); }
.cu-leccion:target, .cu-leccion.resaltada { border-color: var(--pf-azul); box-shadow: 0 0 0 4px rgba(37, 99, 235, .12); }
.cu-leccion-cab { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1rem; }
.cu-leccion-ico { width: 46px; height: 46px; border-radius: 13px; background: var(--pf-celeste); color: var(--pf-azul); font-size: 1.35rem; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.cu-leccion-num { font-size: .75rem; font-weight: 700; color: var(--pf-suave); display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.cu-leccion h3 { font-size: 1.35rem; margin: .2rem 0 .3rem; }
.cu-ancla { color: inherit; }
.cu-ancla:hover { color: var(--pf-azul); }
.cu-resumen { color: var(--pf-suave); margin: 0; font-size: 1rem; }
.cu-bloques > * + * { margin-top: 1rem; }
.cu-texto p { margin-bottom: .6rem; line-height: 1.65; }
.cu-texto p:last-child { margin-bottom: 0; }
.cu-chip { display: inline-flex; align-items: center; gap: .3rem; background: #eef2ff; color: #3730a3; border: 1px solid #c7d2fe; border-radius: 7px; padding: .02rem .45rem; font-size: .86em; font-weight: 700; white-space: nowrap; }
.cu-chip i { font-size: .75em; opacity: .7; }
kbd { background: #f8fafc; color: var(--pf-texto); border: 1px solid #cbd5e1; border-bottom-width: 3px; border-radius: 6px; padding: .05rem .4rem; font-size: .82em; font-weight: 700; font-family: inherit; }
.cu-bloque-tit { font-weight: 800; font-size: .92rem; margin-bottom: .55rem; color: var(--pf-azul-prof); }
.cu-bloque-tit i { color: var(--pf-azul); }

.cu-pasos ol { list-style: none; counter-reset: paso; padding: 0; margin: 0; }
.cu-pasos li { counter-increment: paso; position: relative; padding: .55rem .6rem .55rem 2.9rem; border-radius: 12px; line-height: 1.55; }
.cu-pasos li:nth-child(odd) { background: #f8fafc; }
.cu-pasos li::before { content: counter(paso); position: absolute; left: .6rem; top: .55rem; width: 26px; height: 26px; border-radius: 50%; background: var(--pf-azul); color: #fff; font-weight: 800; font-size: .8rem; display: flex; align-items: center; justify-content: center; }

.cu-opciones-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .7rem; }
.cu-opcion { display: flex; gap: .7rem; padding: .75rem .8rem; border: 1px solid var(--pf-borde); border-radius: 14px; background: #fff; font-size: .9rem; line-height: 1.5; }
.cu-opcion strong { display: block; color: var(--pf-texto); margin-bottom: .1rem; }
.cu-opcion-ico { width: 34px; height: 34px; border-radius: 10px; background: var(--pf-celeste); color: var(--pf-azul); display: inline-flex; align-items: center; justify-content: center; flex: none; font-size: 1.05rem; }

.cu-nota { display: flex; gap: .8rem; padding: .85rem 1rem; border-radius: 14px; border: 1px solid; line-height: 1.55; font-size: .94rem; }
.cu-nota > i { font-size: 1.25rem; margin-top: .05rem; }
.cu-nota p { margin: 0 0 .4rem; }
.cu-nota p:last-child { margin: 0; }
.cu-nota-tit { display: block; font-weight: 800; font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: .15rem; }
.cu-nota-consejo { background: #f0fdf4; border-color: #bbf7d0; color: #14532d; }
.cu-nota-consejo > i { color: #16a34a; }
.cu-nota-cuidado { background: #fffbeb; border-color: #fde68a; color: #78350f; }
.cu-nota-cuidado > i { color: #d97706; }
.cu-nota-importante { background: #eff6ff; border-color: #bfdbfe; color: #1e3a8a; }
.cu-nota-importante > i { color: var(--pf-azul); }
.cu-nota-ejemplo { background: #faf5ff; border-color: #e9d5ff; color: #581c87; }
.cu-nota-ejemplo > i { color: #9333ea; }

.cu-atajos dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .5rem; margin: 0; }
.cu-atajos dl > div { display: flex; gap: .6rem; align-items: center; padding: .45rem .6rem; background: #f8fafc; border-radius: 10px; }
.cu-atajos dt { white-space: nowrap; }
.cu-atajos dd { margin: 0; font-size: .88rem; }
.cu-tabla table { font-size: .88rem; margin: 0; }
.cu-tabla thead th { background: var(--pf-celeste); color: var(--pf-azul-prof); font-weight: 700; border: 0; }
.cu-tabla { border: 1px solid var(--pf-borde); border-radius: 12px; }

.cu-terminos { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: .75rem; margin: 0; }
.cu-termino { display: flex; gap: .75rem; padding: .9rem; border-radius: 16px; background: linear-gradient(180deg, #fff, #f8fbff); border: 1px solid var(--pf-celeste-2); scroll-margin-top: 90px; }
.cu-termino-ico { width: 40px; height: 40px; border-radius: 12px; background: var(--pf-azul); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; font-size: 1.15rem; }
.cu-termino dt { font-size: 1rem; font-weight: 800; margin-bottom: .15rem; }
.cu-termino dd { margin: 0; font-size: .9rem; line-height: 1.5; }
.cu-termino-ej { margin-top: .4rem !important; color: #6b21a8; font-size: .84rem !important; }

.cu-imagen { margin: 0; border: 1px solid var(--pf-borde); border-radius: 16px; overflow: hidden; background: #f8fafc; }
.cu-imagen img { width: 100%; height: auto; display: block; }
.cu-imagen figcaption { font-size: .84rem; color: var(--pf-suave); padding: .55rem .85rem; }
.cu-video .pf-cv-video { border-radius: 16px; overflow: hidden; }

/* ---------- dibujo de la cinta ---------- */
.cu-cinta { margin: 0; }
.cu-cinta-ventana, .cu-ventana-marco { border: 1px solid #cbd5e1; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 12px 28px -18px rgba(15, 30, 70, .45); }
.cu-cinta-barra { display: flex; align-items: center; gap: .3rem; padding: .3rem .6rem; background: #e2e8f0; font-size: .7rem; color: #475569; }
.cu-cinta-barra span { width: 9px; height: 9px; border-radius: 50%; background: #94a3b8; }
.cu-cinta-barra span:first-child { background: #f87171; } .cu-cinta-barra span:nth-child(2) { background: #fbbf24; } .cu-cinta-barra span:nth-child(3) { background: #34d399; }
.cu-cinta-barra em { font-style: normal; margin-left: .5rem; font-weight: 600; }
.cu-cinta-grupos { display: flex; overflow-x: auto; padding: .4rem .3rem .2rem; gap: .15rem; background: linear-gradient(#fff, #f8fafc); scrollbar-width: thin; }
.cu-cinta-grupo { position: relative; display: flex; flex-direction: column; align-items: center; padding: 0 .35rem; border-right: 1px solid #e2e8f0; opacity: .38; filter: grayscale(.6); flex: none; }
.cu-cinta-grupo.sel { opacity: 1; filter: none; background: #eff6ff; border-radius: 8px; }
.cu-cinta-grupo > small { font-size: .62rem; color: #64748b; padding: .15rem 0; font-weight: 600; }
.cu-cinta-botones { display: flex; gap: .1rem; }
.cu-cinta-btn { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: .1rem; width: 66px; padding: .3rem .15rem; border-radius: 7px; font-size: .62rem; text-align: center; line-height: 1.15; color: #1e293b; }
.cu-cinta-btn i { font-size: 1.1rem; color: var(--pf-azul-osc); }
.cu-cinta-btn b { font-weight: 600; }
.cu-cinta-btn.objetivo { background: var(--pf-azul); color: #fff; box-shadow: 0 0 0 3px rgba(37, 99, 235, .3); animation: cu-pulso 1.6s ease-in-out infinite; position: relative; }
.cu-cinta-btn.objetivo i { color: #fff; }
.cu-cinta-btn.objetivo::after { content: "👆"; position: absolute; bottom: -.85rem; right: -.2rem; font-size: 1.05rem; }
.cu-cinta-menu { display: flex; flex-direction: column; margin: .3rem 0 .4rem; background: #fff; border: 1px solid #cbd5e1; border-radius: 8px; box-shadow: 0 10px 24px -14px rgba(15, 30, 70, .5); padding: .25rem; min-width: 210px; }
.cu-cinta-menu span { display: flex; align-items: center; gap: .45rem; font-size: .72rem; padding: .3rem .5rem; border-radius: 6px; color: #1e293b; }
.cu-cinta-menu span i { color: var(--pf-azul-osc); }
.cu-cinta-menu span.objetivo { background: var(--pf-azul); color: #fff; font-weight: 700; animation: cu-pulso 1.6s ease-in-out infinite; }
.cu-cinta-menu span.objetivo i { color: #fff; }
.cu-cinta figcaption, .cu-ventana figcaption { font-size: .86rem; color: var(--pf-suave); margin-top: .55rem; display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.cu-cinta figcaption > i, .cu-ventana figcaption > i { color: #f97316; }
@keyframes cu-pulso { 0%, 100% { box-shadow: 0 0 0 3px rgba(37, 99, 235, .3); } 50% { box-shadow: 0 0 0 7px rgba(37, 99, 235, .12); } }
@media (prefers-reduced-motion: reduce) { .cu-cinta-btn.objetivo, .cu-cinta-menu span.objetivo { animation: none; } }

/* ---------- esquema de la ventana principal ---------- */
.cu-ventana { margin: 0; }
.cu-v-cinta { display: flex; gap: .2rem; padding: .35rem .4rem; border-bottom: 1px solid #e2e8f0; font-size: .66rem; }
.cu-v-cinta span { padding: .2rem .45rem; border-radius: 5px; color: #334155; white-space: nowrap; }
.cu-v-cinta span i { color: var(--pf-azul-osc); margin-right: .2rem; }
.cu-v-cuerpo { display: grid; grid-template-columns: 26% 1fr 30%; min-height: 190px; }
.cu-v-izq, .cu-v-editor, .cu-v-previa { padding: .45rem; display: flex; flex-direction: column; gap: .3rem; font-size: .62rem; color: #475569; }
.cu-v-izq { border-right: 1px solid #e2e8f0; }
.cu-v-previa { border-left: 1px solid #e2e8f0; background: #f1f5f9; align-items: center; }
.cu-v-campo { border: 1px solid #e2e8f0; border-radius: 5px; padding: .2rem .35rem; background: #fff; }
.cu-v-chips { display: flex; gap: .2rem; flex-wrap: wrap; } .cu-v-chips span { background: #e0e7ff; border-radius: 99px; padding: 0 .35rem; }
.cu-v-lista { display: flex; flex-direction: column; gap: .15rem; } .cu-v-lista span { padding: .15rem .3rem; border-radius: 4px; } .cu-v-lista span.sel { background: #dbeafe; font-weight: 700; }
.cu-v-boton { margin-top: auto; text-align: center; background: var(--pf-azul); color: #fff; border-radius: 5px; padding: .2rem; }
.cu-v-fila { display: grid; grid-template-columns: repeat(4, 1fr); gap: .25rem; } .cu-v-fila span { border: 1px solid #e2e8f0; border-radius: 4px; padding: .15rem .25rem; background: #fff; }
.cu-v-texto { flex: 1; border: 1px solid #e2e8f0; border-radius: 5px; background: #fff; padding: .4rem; display: flex; flex-direction: column; gap: .3rem; }
.cu-v-texto i, .cu-v-hoja i { display: block; height: 4px; background: #cbd5e1; border-radius: 2px; } .cu-v-texto i.corta { width: 60%; }
.cu-v-hoja { width: 78%; flex: 1; background: #fbfaf3; border: 1px solid #cbd5e1; padding: .4rem; display: flex; flex-direction: column; gap: .45rem; align-items: stretch; }
.cu-v-hoja b { text-align: center; font-size: .55rem; letter-spacing: .1em; color: #94a3b8; }
.cu-v-hoja i { height: 1px; background: #b8bed8; }
.cu-v-barra { display: flex; justify-content: space-between; gap: .5rem; padding: .25rem .5rem; background: #f1f5f9; border-top: 1px solid #e2e8f0; font-size: .62rem; color: #475569; }
.cu-v-luz { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #16a34a; }
.cu-ventana .sel { outline: 3px solid #f97316; outline-offset: -3px; background-color: #fff7ed; position: relative; z-index: 1; animation: cu-zona 1.8s ease-in-out infinite; }
@keyframes cu-zona { 50% { outline-color: #fdba74; } }
@media (prefers-reduced-motion: reduce) { .cu-ventana .sel { animation: none; } }

/* ---------- preguntas frecuentes de la lección ---------- */
.cu-faq { margin-top: 1.3rem; border-top: 1px dashed var(--pf-borde); padding-top: 1rem; }
.cu-faq h4 { font-size: 1rem; margin-bottom: .6rem; }
.cu-faq h4 i { color: var(--pf-azul); }
.cu-faq details { border: 1px solid var(--pf-borde); border-radius: 12px; margin-bottom: .45rem; background: #fff; scroll-margin-top: 90px; }
.cu-faq details[open] { border-color: var(--pf-celeste-2); background: #fbfdff; }
.cu-faq summary { cursor: pointer; padding: .65rem .9rem; font-weight: 600; font-size: .94rem; list-style: none; display: flex; gap: .6rem; align-items: flex-start; }
.cu-faq summary::-webkit-details-marker { display: none; }
.cu-faq summary::before { content: "▸"; color: var(--pf-azul); display: inline-block; transition: transform .15s; }
.cu-faq details[open] summary::before { transform: rotate(90deg); }
.cu-faq-r { padding: 0 .9rem .75rem 2.2rem; font-size: .92rem; line-height: 1.6; color: #334155; }
.cu-faq-r p { margin-bottom: .4rem; }
.cu-leccion-pie { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .7rem; align-items: center; margin-top: 1.1rem; }
.cu-leccion-tags { display: flex; flex-wrap: wrap; gap: .3rem; }
.cu-preguntar-aqui { font-size: .85rem; font-weight: 600; color: #c2410c; }
.cu-preguntar-aqui:hover { color: #9a3412; }

/* ---------- mapa y navegación entre temas ---------- */
.cu-mapa { margin: 2rem 0 1rem; }
.cu-mapa h3 { font-size: 1.3rem; }
.cu-mapa-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .8rem; }
.cu-mapa-item { display: flex; flex-direction: column; gap: .25rem; padding: 1rem; border-radius: 16px; border: 1px solid var(--pf-borde); background: #fff; color: var(--pf-texto); transition: transform .15s, box-shadow .15s; }
.cu-mapa-item:hover { transform: translateY(-3px); box-shadow: var(--pf-sombra); color: var(--pf-texto); }
.cu-mapa-item > i { font-size: 1.5rem; color: var(--pf-azul); }
.cu-mapa-item span { font-size: .84rem; color: var(--pf-suave); }
.cu-mapa-item small { font-size: .75rem; font-weight: 700; color: var(--pf-azul); margin-top: auto; }
.cu-pasar { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; }
.cu-pasar a { display: flex; flex-direction: column; padding: .9rem 1.1rem; border: 1px solid var(--pf-borde); border-radius: 14px; font-weight: 800; color: var(--pf-texto); min-width: 0; flex: 1; max-width: 48%; }
.cu-pasar a:hover { border-color: var(--pf-azul); color: var(--pf-azul); }
.cu-pasar small { font-weight: 600; color: var(--pf-suave); font-size: .78rem; }
.cu-pasar-sig { text-align: right; margin-left: auto; }

/* ---------- foro (columna derecha) ---------- */
.cu-foro { position: sticky; top: 84px; max-height: calc(100vh - 100px); scroll-margin-top: 90px; }
.cu-foro-in { overflow: auto; max-height: calc(100vh - 100px); background: #fff; border: 1px solid var(--pf-borde); border-radius: 20px; padding: 1.1rem; }
.cu-foro-cab h2 { font-size: 1.1rem; margin-bottom: .3rem; }
.cu-foro-cab h2 i { color: #ea580c; }
.cu-foro-cab p { font-size: .84rem; color: var(--pf-suave); }
.cu-foro.resaltado .cu-foro-in { border-color: #ea580c; box-shadow: 0 0 0 4px rgba(234, 88, 12, .15); }
.cu-foro-login { text-align: center; background: #fff7ed; border: 1px dashed #fdba74; border-radius: 14px; padding: 1rem; }
.cu-foro-login > i { font-size: 1.8rem; color: #ea580c; }
.cu-foro-login p { font-size: .86rem; margin: .4rem 0 .7rem; }
.cu-foro-form .form-label { font-size: .8rem; font-weight: 700; margin-bottom: .2rem; }
.cu-foro-form .form-text { font-size: .74rem; }
.cu-foro-sec { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; color: var(--pf-suave); margin: 1.1rem 0 .5rem; }
.cu-foro-vacio { font-size: .84rem; color: var(--pf-suave); }
.cu-mias { list-style: none; padding: 0; margin: 0; font-size: .84rem; }
.cu-mias li { display: flex; justify-content: space-between; gap: .5rem; align-items: center; padding: .35rem 0; border-bottom: 1px solid #f1f5f9; }
.cu-mias a { color: var(--pf-texto); }
.cu-fp { border: 1px solid var(--pf-borde); border-radius: 12px; margin-bottom: .5rem; font-size: .86rem; }
.cu-fp summary { cursor: pointer; padding: .6rem .75rem; list-style: none; }
.cu-fp summary::-webkit-details-marker { display: none; }
.cu-fp-q { display: block; font-weight: 700; line-height: 1.35; }
.cu-fp-meta { display: block; font-size: .72rem; color: var(--pf-suave); margin-top: .15rem; }
.cu-fp-tema { color: var(--pf-azul); font-weight: 700; }
.cu-fp-cuerpo { padding: 0 .75rem .5rem; color: #475569; }
.cu-fp-resp { margin: 0 .5rem .5rem; padding: .6rem .7rem; background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 10px; }
.cu-fp-resp p { margin-bottom: .35rem; } .cu-fp-resp p:last-child { margin: 0; }
.cu-fp-resp-tit { display: block; font-size: .72rem; font-weight: 800; color: #15803d; margin-bottom: .2rem; }
.cu-fp-pie { display: flex; justify-content: space-between; align-items: center; padding: 0 .75rem .6rem; font-size: .76rem; }
.cu-util { border: 1px solid var(--pf-borde); background: #fff; border-radius: 999px; padding: .1rem .55rem; font-size: .76rem; color: var(--pf-suave); }
.cu-util.votado { background: #dcfce7; color: #15803d; border-color: #86efac; }

/* ---------- página de una consulta ---------- */
.cu-pregunta-pag { max-width: 860px; margin: 0 auto; padding: 2rem 1rem 3rem; }
.cu-pregunta { background: #fff; border: 1px solid var(--pf-borde); border-radius: 20px; padding: 1.6rem; margin-top: 1rem; }
.cu-pregunta h1 { font-size: 1.6rem; margin: .6rem 0 .2rem; }
.cu-pregunta-meta { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.cu-pregunta-cuerpo { font-size: 1rem; line-height: 1.65; margin-bottom: 1rem; }
.cu-fp-resp-grande { margin: 0; padding: 1rem 1.1rem; font-size: 1rem; }
.cu-relacionadas { margin-top: 1.6rem; }

/* ---------- pantallas medianas y pequeñas ---------- */
@media (max-width: 1399.98px) {
  .cu-app { grid-template-columns: 250px minmax(0, 1fr); }
  .cu-foro { grid-column: 2; position: static; max-height: none; }
  .cu-foro-in { max-height: none; }
}
@media (max-width: 991.98px) {
  .cu-cab-in { grid-template-columns: 1fr; gap: 1rem; }
  .cu-app { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; padding-top: 1rem; }
  .cu-foro { grid-column: 1; }
  .cu-nav-abrir { display: inline-flex; gap: .4rem; align-items: center; justify-self: start; position: sticky; top: 76px; z-index: 5; }
  .cu-nav { position: fixed; max-height: none; }
  .cu-nav .offcanvas-body, .cu-nav-in { max-height: none; padding: 1rem; }
  .cu-contenido ol { columns: 1; }
  .cu-leccion { padding: 1.1rem; border-radius: 16px; }
  .cu-pasar a { max-width: none; }
}
@media (min-width: 992px) {
  .cu-nav .offcanvas-header { display: none; }
}
