/* Todos los estilos quedan limitados al explorador. */
.fgx { --fgx-purple:#5c068c; --fgx-ink:#252031; --fgx-muted:#61596b; --fgx-line:#e3dce9; background:#f7f5f9; color:var(--fgx-ink); font-family:inherit; font-size:16px; line-height:1.55; padding:56px 24px 80px; }
.fgx *, .fgx *::before, .fgx *::after { box-sizing:border-box; }
.fgx [hidden] { display:none !important; }
.fgx .fgx-wrap { max-width:1240px; margin:auto; }
.fgx .fgx-eyebrow { color:var(--fgx-purple); font-size:14px; letter-spacing:.15em; font-weight:750; margin:0 0 16px; }
.fgx .fgx-search { background:#fff; padding:28px; border:1px solid var(--fgx-line); border-radius:20px; box-shadow:0 10px 35px #35204408; margin:0 0 42px; }
.fgx label { font-weight:600; margin:0; }
.fgx .fgx-query { display:block; margin-bottom:24px; }
.fgx .fgx-query > span { display:block; font-size:19px; margin-bottom:12px; }
.fgx input, .fgx select, .fgx button { font-family:inherit; font-size:16px; line-height:1.5; }
.fgx input, .fgx select { display:block; width:100%; min-height:48px; height:auto; color:var(--fgx-ink); background:#fff; border:1px solid #85758f; border-radius:9px; padding:10px 12px; box-shadow:none; margin:0; min-width:0; }
.fgx .fgx-query input { min-height:58px; height:auto; background:#faf8fc; font-size:17px; padding:14px 18px; border:1px solid #85758f; }
.fgx input::placeholder { color:#776b81; opacity:1; }
.fgx .fgx-filter-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,14em),1fr)); gap:18px; }
.fgx .fgx-field { display:block; min-width:0; font-size:14px; }
.fgx .fgx-field > span { display:block; margin:0 0 8px; }
.fgx .fgx-dates { margin-top:18px; }
.fgx summary { cursor:pointer; }
.fgx .fgx-more { margin-top:23px; border-top:1px solid var(--fgx-line); padding-top:18px; }
.fgx .fgx-more > summary { color:var(--fgx-purple); font-size:14px; font-weight:650; padding:10px 0; min-height:44px; }
.fgx .fgx-more > summary span { color:var(--fgx-muted); font-size:14px; font-weight:400; margin-left:12px; }
.fgx .fgx-more[open] .fgx-filter-grid { margin-top:20px; }
.fgx .fgx-filter-foot { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; }
.fgx .fgx-filter-foot p { color:var(--fgx-muted); margin:0; font-size:14px; }
.fgx button { cursor:pointer; min-height:44px; padding:10px 18px; border-radius:8px; font-weight:650; }
.fgx .fgx-reset { border:0; background:#f1ebf7; color:var(--fgx-purple); white-space:normal; }
.fgx .fgx-results-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px; }
.fgx .fgx-results-bar .fgx-eyebrow { margin-bottom:5px; }
.fgx h2 { font-family:inherit; font-size:28px; font-weight:700; letter-spacing:-.03em; margin:0; color:var(--fgx-ink); }
.fgx .fgx-sort { display:flex; flex-wrap:wrap; align-items:center; gap:12px; font-size:14px; white-space:nowrap; }
.fgx .fgx-sort select { width:auto; max-width:100%; }
.fgx .fgx-results-note { font-size:14px; color:var(--fgx-muted); margin:12px 0 24px; }
.fgx .fgx-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,20em),1fr)); gap:20px; align-items:start; }
.fgx .fgx-card { display:flex; flex-direction:column; background:#fff; border:1px solid var(--fgx-line); border-radius:15px; padding:23px; min-height:330px; min-width:0; box-shadow:0 3px 8px #2d163b03; overflow-wrap:anywhere; }
.fgx .fgx-card:hover { border-color:#bca4cc; box-shadow:0 7px 22px #3520440c; }
.fgx .fgx-badges { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; margin-bottom:23px; font-size:14px; font-weight:700; }
.fgx .fgx-type { color:var(--fgx-purple); background:#f0e7f6; padding:5px 9px; border-radius:5px; }
.fgx .fgx-mode { color:#4b6359; background:#edf4ef; padding:5px 9px; border-radius:5px; }
.fgx .fgx-topic { color:var(--fgx-muted); font-size:14px; margin:0 0 8px; }
.fgx h3 { color:var(--fgx-ink); font-family:inherit; font-size:20px; font-weight:700; letter-spacing:-.02em; line-height:1.4; margin:0 0 22px; }
.fgx dl { margin:0; }
.fgx .fgx-facts { display:flex; flex-wrap:wrap; gap:14px 23px; padding-bottom:20px; }
.fgx dt { color:var(--fgx-muted); font-size:14px; font-weight:400; margin-bottom:3px; }
.fgx dd { color:var(--fgx-ink); margin:0; font-size:16px; font-weight:600; }
.fgx .fgx-status { font-size:14px; color:#675122; margin:0 0 14px; }
.fgx .fgx-detail { border-top:1px solid var(--fgx-line); margin-top:auto; }
.fgx .fgx-detail > summary { display:flex; justify-content:space-between; gap:10px; color:var(--fgx-purple); font-size:16px; font-weight:700; padding:15px 0 0; list-style:none; min-height:44px; }
.fgx .fgx-detail > summary::-webkit-details-marker { display:none; }
.fgx .fgx-detail[open] > summary span { transform:rotate(45deg); }
.fgx .fgx-detail-body { padding-top:20px; }
.fgx .fgx-detail-body dl > div { margin-bottom:14px; }
.fgx .fgx-detail-body dd { font-weight:400; }
.fgx .fgx-cta { display:flex; align-items:center; justify-content:space-between; background:var(--fgx-purple); color:#fff; min-height:44px; padding:13px; border-radius:7px; text-decoration:none; font-size:14px; font-weight:600; }
.fgx .fgx-cta:hover { background:#46066b; color:#fff; }
.fgx .fgx-notice, .fgx .fgx-empty { border:1px solid #d8c6a3; background:#fffaf1; border-radius:12px; padding:24px; margin:20px 0; }
.fgx .fgx-empty { text-align:center; }
.fgx .fgx-empty h3 { margin-bottom:10px; }
.fgx .fgx-load { text-align:center; margin-top:30px; }
.fgx .fgx-load button { border:1px solid var(--fgx-purple); color:var(--fgx-purple); background:#fff; }
.fgx :is(a,button,input,select,summary):focus-visible { outline:3px solid #5c068c; outline-offset:3px; }
@media(max-width:620px) {
  .fgx { padding:32px 16px 50px; }
  .fgx .fgx-search { padding:20px 16px; border-radius:14px; margin-bottom:30px; }
  .fgx .fgx-filter-grid, .fgx .fgx-grid { grid-template-columns:1fr; }
  .fgx input, .fgx select { font-size:16px; }
  .fgx .fgx-query input { font-size:16px; }
  .fgx .fgx-more > summary span { display:block; margin:6px 0 0; }
  .fgx .fgx-results-bar, .fgx .fgx-filter-foot { flex-direction:column; align-items:stretch; gap:14px; }
  .fgx .fgx-sort { justify-content:space-between; }
  .fgx .fgx-card { min-height:0; padding:22px; }
  .fgx .fgx-sort select { width:100%; max-width:100%; }
}

/* Paleta provisional: cambiar las variables por tipo sin tocar las tarjetas.
 * El nombre visible siempre identifica la categoría, incluso sin percibir el color.
 * Tipos: fondo suave + texto oscuro. Modalidades: contorno + fondo más claro.
 */
.fgx {
  --fgx-course-fg:#5c068c; --fgx-course-bg:#f0e7f6;
  --fgx-capacita-fg:#9b124d; --fgx-capacita-bg:#fce7ef;
  --fgx-micro-fg:#145478; --fgx-micro-bg:#e4f1fa;
  --fgx-degree-fg:#672a51; --fgx-degree-bg:#f4e5f0;
  --fgx-language-fg:#185c50; --fgx-language-bg:#e3f3ed;
  --fgx-test-fg:#765000; --fgx-test-bg:#fff2cc;
  --fgx-accreditation-fg:#943b16; --fgx-accreditation-bg:#ffeadf;
  --fgx-onsite-fg:#643684; --fgx-onsite-bg:#faf5ff;
  --fgx-online-fg:#075e68; --fgx-online-bg:#effafb;
  --fgx-hybrid-fg:#91431c; --fgx-hybrid-bg:#fff7ed;
}
.fgx .fgx-type, .fgx .fgx-mode { line-height:1.5; max-width:100%; }
.fgx .fgx-type[data-type="Curso"] { color:var(--fgx-course-fg); background:var(--fgx-course-bg); }
.fgx .fgx-type[data-type="Capacita"] { color:var(--fgx-capacita-fg); background:var(--fgx-capacita-bg); }
.fgx .fgx-type[data-type="Microcredencial"] { color:var(--fgx-micro-fg); background:var(--fgx-micro-bg); }
.fgx .fgx-type[data-type="Titulación propia"] { color:var(--fgx-degree-fg); background:var(--fgx-degree-bg); }
.fgx .fgx-type[data-type="Idiomas"] { color:var(--fgx-language-fg); background:var(--fgx-language-bg); }
.fgx .fgx-type[data-type="Prueba de nivel"] { color:var(--fgx-test-fg); background:var(--fgx-test-bg); }
.fgx .fgx-type[data-type="Acreditación"] { color:var(--fgx-accreditation-fg); background:var(--fgx-accreditation-bg); }
.fgx .fgx-mode { border:1px solid currentColor; border-radius:20px; font-weight:600; }
.fgx .fgx-mode[data-mode="Presencial"] { color:var(--fgx-onsite-fg); background:var(--fgx-onsite-bg); }
.fgx .fgx-mode[data-mode="En línea"] { color:var(--fgx-online-fg); background:var(--fgx-online-bg); }
.fgx .fgx-mode[data-mode="Semipresencial"] { color:var(--fgx-hybrid-fg); background:var(--fgx-hybrid-bg); }
@media (forced-colors: active) {
  .fgx .fgx-type, .fgx .fgx-mode { border:1px solid CanvasText; }
}
