      :root {
        --rojo: #e31313;
        --rojo-oscuro: #951823;
        --dorado: #a87f3d;
        --dorado-claro: #b79a63;
        --gris-claro: #b9c7c7;
        --gris-bg: #f8f7f5;
        --gris-texto: #3a3a3a;
      }

      *,
      *::before,
      *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }

      body {
        font-family: "Barlow", sans-serif;
        color: var(--gris-texto);
        background: var(--gris-bg);
      }

      /* Contenedor centrado — mismo ancho en header, footer y main */
      .inner {
        max-width: 1280px;
        margin: 0 auto;
        padding: 0 32px;
        width: 100%;
      }

      /* ===================== TOP BAR ===================== */
      .top-bar {
        background: var(--rojo-oscuro);
        height: 36px;
      }

      .top-bar .inner {
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
      }
      .top-bar-right {
        display: flex;
        align-items: center;
        gap: 18px;
      }

      .top-bar a {
        color: rgba(255, 255, 255, 0.75);
        font-size: 17px;
        text-decoration: none;
        display: flex;
        align-items: center;
        transition: color 0.2s;
      }

      .top-bar a:hover {
        color: #fff;
      }

      /* ===================== HEADER MAIN ===================== */
      .header-main {
        background: #fff;
        border-bottom: 3px solid var(--rojo);
        height: 66px;
        position: sticky;
        top: 0;
        z-index: 100;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
      }

      .header-main .inner {
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
      }

      /* --- Logos --- */
      .header-logos {
        display: flex;
        align-items: center;
        gap: 0;
        text-decoration: none;
        flex-shrink: 0;
        min-width: 0;
      }

      /* Ajusta estos valores con los tamaños reales de tus imágenes */
      .logo-ujed-img {
        height: 42px;
        width: auto;
        max-width: 108px;
        object-fit: contain;
        display: block;
        flex-shrink: 0;
      }

      .logo-feca-img {
        height: 32px;
        width: auto;
        max-width: 80px;
        object-fit: contain;
        display: block;
        flex-shrink: 0;
      }

      .logo-feca-block {
        display: flex;
        align-items: center;
        flex-shrink: 0;
      }

      .logo-divider {
        width: 1px;
        height: 36px;
        background: var(--gris-claro);
        margin: 0 10px;
        flex-shrink: 0;
      }

      .logo-section-divider {
        width: 1px;
        height: 36px;
        background: var(--gris-claro);
        margin: 0 12px;
        flex-shrink: 0;
      }

      .logo-division-block {
        display: flex;
        align-items: center;
        justify-content: center;
      }

      /* Agrupa los dos logos juntos a la izquierda */
      .header-logos-group {
        display: flex;
        align-items: center;
        gap: 0;
        flex-shrink: 0;
      }

      /* --- Navegación --- */
      nav {
        display: flex;
        align-items: center;
        gap: 0;
        flex-shrink: 0;
      }

      .nav-link {
        font-family: "Barlow", sans-serif;
        font-size: 12px;
        font-weight: 600;
        letter-spacing: 0.025em;
        text-transform: uppercase;
        color: var(--gris-texto);
        text-decoration: none;
        padding: 6px 8px;
        display: flex;
        align-items: center;
        gap: 3px;
        border-radius: 4px;
        transition:
          color 0.2s,
          background 0.15s;
        white-space: nowrap;
      }

      .nav-link:hover {
        color: var(--rojo);
        background: rgba(227, 19, 19, 0.05);
      }

      .nav-link .chevron {
        font-size: 9px;
        opacity: 0.45;
      }

      .nav-link.is-active .chevron {
        color: var(--rojo);
        opacity: 1;
      }

      .nav-cta {
        margin-left: 6px;
        padding: 7px 16px;
        border: 2px solid var(--rojo);
        color: var(--rojo);
        font-family: "Barlow", sans-serif;
        font-size: 12px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        border-radius: 3px;
        text-decoration: none;
        transition:
          background 0.2s,
          color 0.2s;
        white-space: nowrap;
      }

      .nav-cta:hover {
        background: var(--rojo);
        color: #fff;
      }

      /* ===== MENÚ HAMBURGUESA ===== */
      .nav-hamburger {
        display: none;
        background: none;
        border: none;
        cursor: pointer;
        padding: 8px;
        color: var(--gris-texto);
        font-size: 22px;
        line-height: 1;
        border-radius: 4px;
        flex-shrink: 0;
        transition: color 0.2s, background 0.2s;
      }
      .nav-hamburger:hover { color: var(--rojo); background: rgba(227, 19, 19, 0.06); }

      /* ===================== MAIN ===================== */
      main {
        min-height: 600px;
      }

      /* ===== ESTADOS DE CARGA ===== */
      .pg-loading {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        min-height: 420px;
        gap: 22px;
        padding: 40px 24px;
      }
      .pg-spinner {
        width: 52px;
        height: 52px;
        border: 3px solid rgba(0, 0, 0, 0.07);
        border-top-color: var(--rojo);
        border-radius: 50%;
        animation: pg-spin 0.8s linear infinite;
        flex-shrink: 0;
      }
      @keyframes pg-spin {
        to { transform: rotate(360deg); }
      }
      .pg-frase {
        font-size: 17px;
        font-weight: 700;
        color: #444;
        text-align: center;
        max-width: 380px;
        line-height: 1.5;
        opacity: 1;
        transition: opacity 0.35s ease;
      }
      .pg-frase-sub {
        font-size: 12px;
        color: #bbb;
        text-align: center;
        margin-top: -10px;
        letter-spacing: .03em;
      }
      .pg-error {
        padding: 80px 40px;
        text-align: center;
      }
      .pg-error p {
        font-size: 16px;
        color: var(--gris-texto);
        margin-bottom: 8px;
      }
      .pg-error small {
        font-size: 13px;
        color: var(--gris-claro);
      }

      /* ===== MODAL DETALLE CONVOCATORIA ===== */
      .conv-detail-modal {
        position: fixed;
        inset: 0;
        z-index: 600;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 20px;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s ease;
      }
      .conv-detail-modal.abierto {
        opacity: 1;
        pointer-events: auto;
      }
      .conv-detail-overlay {
        position: absolute;
        inset: 0;
        background: rgba(8, 0, 2, 0.78);
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
        cursor: pointer;
      }
      .conv-detail-box {
        position: relative;
        z-index: 1;
        background: #fff;
        border-radius: 10px;
        max-width: 940px;
        width: 100%;
        max-height: 90vh;
        overflow-y: auto;
        display: flex;
        flex-direction: column;
        box-shadow: 0 40px 100px rgba(0,0,0,0.5);
        animation: cdm-enter 0.3s ease;
      }
      /* Fila principal: cartel a un lado, info al otro -- en vez de apilados. */
      .conv-detail-body-row {
        display: flex;
        align-items: stretch;
      }
      @keyframes cdm-enter {
        from { transform: scale(0.95) translateY(12px); }
        to   { transform: scale(1) translateY(0); }
      }
      .conv-detail-close {
        position: absolute;
        top: 14px;
        right: 14px;
        z-index: 10;
        background: rgba(0,0,0,0.08);
        border: none;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 18px;
        color: #555;
        transition: background 0.2s, color 0.2s;
      }
      .conv-detail-close:hover { background: var(--rojo); color: #fff; }
      /* Cartel opcional a un lado de la caja, no arriba a todo lo ancho. */
      .conv-detail-banner-wrap {
        position: relative;
        line-height: 0;
        flex-shrink: 0;
        width: 45%;
      }
      .conv-detail-banner-wrap img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
      }
      .conv-detail-banner-dl {
        position: absolute;
        bottom: 12px;
        right: 12px;
        width: 38px;
        height: 38px;
        border-radius: 50%;
        background: rgba(0,0,0,0.55);
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 16px;
        text-decoration: none;
        transition: background 0.2s;
      }
      .conv-detail-banner-dl:hover { background: var(--rojo); }
      .conv-detail-info-col {
        padding: 32px 28px 28px;
        display: flex;
        flex-direction: column;
        gap: 0;
        flex: 1;
        min-width: 0;
      }
      @media (max-width: 720px) {
        .conv-detail-body-row { flex-direction: column; }
        .conv-detail-banner-wrap { width: 100%; }
        .conv-detail-banner-wrap img { max-height: 220px; height: auto; }
      }
      .conv-detail-info-col .conv-badge { margin-bottom: 12px; }
      .conv-detail-title {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 24px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        text-transform: uppercase;
        line-height: 1.15;
        margin-bottom: 18px;
      }
      .conv-detail-meta {
        display: flex;
        flex-direction: column;
        gap: 8px;
        margin-bottom: 18px;
        padding-bottom: 18px;
        border-bottom: 1px solid #eee;
      }
      .conv-detail-meta-item {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 13px;
        color: #555;
      }
      .conv-detail-meta-item i { color: var(--rojo-oscuro); font-size: 15px; flex-shrink: 0; }
      .conv-detail-desc {
        font-size: 13px;
        color: #666;
        line-height: 1.7;
        margin-bottom: 16px;
      }
      .conv-detail-reqs { margin-bottom: 16px; }
      .conv-detail-reqs h4 {
        font-size: 12px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: #333;
        margin-bottom: 8px;
      }
      .conv-detail-reqs ul { list-style: none; display: flex; flex-direction: column; gap: 5px; }
      .conv-detail-reqs ul li {
        font-size: 12px;
        color: #555;
        display: flex;
        align-items: flex-start;
        gap: 8px;
        line-height: 1.5;
      }
      .conv-detail-reqs ul li::before {
        content: '';
        width: 5px; height: 5px;
        border-radius: 50%;
        background: var(--rojo);
        flex-shrink: 0;
        margin-top: 5px;
      }
      .conv-detail-register {
        background: linear-gradient(135deg, #fff8f8, #ffeaea);
        border: 2px solid var(--rojo);
        border-radius: 6px;
        padding: 14px 16px;
        margin-bottom: 14px;
      }
      .conv-detail-register-label {
        display: flex;
        align-items: center;
        gap: 7px;
        font-size: 12px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        margin-bottom: 10px;
      }
      .conv-detail-register-label i { font-size: 15px; }
      .conv-detail-register-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        width: 100%;
        padding: 11px;
        font-size: 13px;
      }
      .conv-detail-actions {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
      }
      .btn-outline-dark {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 9px 16px;
        background: transparent;
        color: #555;
        font-family: 'Barlow', sans-serif;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        border-radius: 3px;
        text-decoration: none;
        border: 1.5px solid #ccc;
        cursor: pointer;
        transition: border-color 0.2s, color 0.2s;
        white-space: nowrap;
      }
      .btn-outline-dark:hover { border-color: #555; color: #222; }

      /* ===== MODAL DETALLE NOTICIA / BLOG ===== */
      .noticia-detail-modal {
        position: fixed;
        inset: 0;
        z-index: 600;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 20px;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s ease;
      }
      .noticia-detail-modal.abierto {
        opacity: 1;
        pointer-events: auto;
      }
      .noticia-detail-overlay {
        position: absolute;
        inset: 0;
        background: rgba(8, 0, 2, 0.78);
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
        cursor: pointer;
      }
      .noticia-detail-box {
        position: relative;
        z-index: 1;
        background: #fff;
        border-radius: 10px;
        max-width: 760px;
        width: 100%;
        max-height: 90vh;
        overflow-y: auto;
        box-shadow: 0 40px 100px rgba(0,0,0,0.5);
        animation: cdm-enter 0.3s ease;
      }
      .noticia-detail-banner-wrap {
        position: relative;
        line-height: 0;
        background: linear-gradient(135deg, var(--rojo-oscuro) 0%, #0d0d0d 100%);
      }
      .noticia-detail-banner-wrap img {
        width: 100%;
        max-height: 320px;
        object-fit: cover;
        display: block;
      }
      .noticia-detail-banner-wrap.sin-imagen {
        height: 180px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: rgba(255, 255, 255, 0.28);
        font-size: 52px;
      }
      .noticia-detail-tag-overlay {
        position: absolute;
        left: 22px;
        top: 22px;
        z-index: 2;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 9px 22px;
        background: rgba(0, 0, 0, 0.6);
        backdrop-filter: blur(4px);
        color: #fff;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        border-radius: 99px;
      }
      .noticia-detail-body {
        padding: 32px 34px 30px;
      }
      .noticia-detail-title {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 28px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        line-height: 1.15;
        margin-bottom: 16px;
      }
      .noticia-detail-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 18px;
        margin-bottom: 20px;
        padding-bottom: 18px;
        border-bottom: 1px solid #eee;
      }
      .noticia-detail-meta-item {
        display: flex;
        align-items: center;
        gap: 7px;
        font-size: 13px;
        color: #777;
      }
      .noticia-detail-meta-item i { color: var(--rojo-oscuro); font-size: 15px; flex-shrink: 0; }
      .noticia-detail-lead {
        font-size: 15px;
        font-weight: 600;
        color: #444;
        line-height: 1.65;
        border-left: 3px solid var(--dorado);
        padding-left: 16px;
        margin-bottom: 22px;
      }
      .noticia-detail-content {
        font-size: 14px;
        color: #555;
        line-height: 1.8;
      }
      .noticia-detail-content p { margin-bottom: 16px; }
      .noticia-detail-content p:last-child { margin-bottom: 0; }
      .noticia-detail-content img {
        width: 100%;
        border-radius: 8px;
        display: block;
        margin: 20px 0;
        box-shadow: 0 10px 28px rgba(0,0,0,0.12);
      }
      .noticia-detail-content h2,
      .noticia-detail-content h3 {
        font-family: 'Barlow Condensed', sans-serif;
        font-weight: 700;
        color: var(--rojo-oscuro);
        margin: 24px 0 10px;
      }
      .noticia-detail-content h2 { font-size: 21px; }
      .noticia-detail-content h3 { font-size: 18px; }
      .noticia-detail-content ul,
      .noticia-detail-content ol { margin: 0 0 16px 22px; }
      .noticia-detail-content li { margin-bottom: 6px; }
      .noticia-detail-content a { color: var(--rojo); }
      .noticia-detail-content blockquote {
        border-left: 3px solid var(--dorado);
        padding-left: 16px;
        margin: 18px 0;
        font-style: italic;
        color: #777;
      }
      .noticia-detail-footer {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 10px;
        flex-wrap: wrap;
        margin-top: 26px;
        padding-top: 20px;
        border-top: 1px solid #eee;
      }
      @media (max-width: 720px) {
        .noticia-detail-body { padding: 24px 20px; }
        .noticia-detail-title { font-size: 23px; }
        .noticia-detail-banner-wrap img { max-height: 220px; }
      }

      /* ===== SECCIÓN CONVOCATORIAS (vigentes/próximas) ===== */
      .conv-section-title {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 24px;
      }
      .conv-section-title h3 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 20px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: var(--rojo-oscuro);
      }
      .conv-vigente-badge {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        padding: 3px 10px;
        background: #e8f5e9;
        color: #2e7d32;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        border-radius: 20px;
        border: 1px solid #a5d6a7;
      }
      .conv-proxima-badge {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        padding: 3px 10px;
        background: #f3f3f3;
        color: #888;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        border-radius: 20px;
        border: 1px solid #ddd;
      }
      .conv-vigentes-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: 24px;
        margin-bottom: 48px;
      }
      .conv-card-vigente {
        background: #fff;
        border: 1px solid rgba(0,0,0,0.07);
        border-top: 3px solid #2e7d32;
        border-radius: 6px;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        cursor: pointer;
        transition: box-shadow 0.2s, transform 0.2s;
      }
      .conv-card-vigente:hover { box-shadow: 0 8px 28px rgba(0,0,0,0.12); transform: translateY(-3px); }
      .conv-card-vigente-img {
        width: 100%;
        aspect-ratio: 3 / 2;
        object-fit: cover;
        object-position: top center;
        display: block;
      }
      .conv-card-vigente-img-placeholder {
        width: 100%;
        aspect-ratio: 3 / 2;
        background: linear-gradient(135deg, #ebebeb 0%, #d8d8d8 100%);
        display: flex;
        align-items: center;
        justify-content: center;
        color: #bbb;
        font-size: 34px;
      }
      .conv-card-vigente-body {
        padding: 16px 18px;
        display: flex;
        flex-direction: column;
        gap: 8px;
        flex: 1;
      }
      .conv-card-vigente-body h3 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 18px;
        font-weight: 700;
        color: var(--gris-texto);
        line-height: 1.2;
      }
      .conv-card-vigente-fecha {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 12px;
        color: #888;
      }
      .conv-card-vigente-fecha i { font-size: 13px; color: var(--rojo); }
      .conv-card-vigente-body p { font-size: 13px; color: #666; line-height: 1.55; flex: 1; }
      .conv-card-vigente-footer {
        padding: 12px 18px;
        border-top: 1px solid #f0f0f0;
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
      }
      .conv-vigente-badge i { font-size: 8px; }
      .conv-vigente-badge--sm { font-size: 10px; }
      .conv-vigente-badge--sm i { font-size: 7px; }
      .conv-vigente-badge--vencida { background: #aaa; color: #fff; border-color: #aaa; }
      .conv-vigente-badge--vencida i { font-size: 7px; }
      .conv-card-vigente--vencida { opacity: 0.6; cursor: default; position: relative; }
      .conv-card-vencida-tag {
        position: absolute; top: 10px; right: 10px; background: #888; color: #fff;
        font-size: 9px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase;
        padding: 3px 9px; border-radius: 3px; pointer-events: none;
      }

      /* ===== Convocatorias cerradas ===== */
      .conv-cerradas-titulo { color: #777; }
      .conv-cerradas-badge {
        background: #eee; color: #888; padding: 3px 12px; border-radius: 99px;
        font-size: 11px; font-weight: 700; letter-spacing: 0.07em;
        display: inline-flex; align-items: center; gap: 5px;
      }
      .conv-cerradas-badge i { font-size: 10px; }

      /* ===== Requisitos y Condiciones de Admisión (Convocatorias) ===== */
      .conv-requisitos-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: 24px;
      }
      .conv-requisitos-card {
        background: #fff;
        border: 1px solid rgba(0,0,0,0.07);
        border-radius: 6px;
        padding: 24px;
      }
      .conv-requisitos-card-header {
        font-size: 12px; font-weight: 700; text-transform: uppercase;
        letter-spacing: 0.09em; color: var(--dorado); margin-bottom: 14px;
      }
      .conv-requisitos-card-header i { font-size: 14px; }
      .conv-requisitos-list {
        list-style: none; padding: 0; margin: 0;
        display: flex; flex-direction: column; gap: 9px;
      }
      .conv-requisitos-list li {
        font-size: 13px; color: #555; display: flex;
        align-items: flex-start; gap: 8px; line-height: 1.5;
      }
      .conv-requisitos-list li i {
        color: var(--rojo); font-size: 10px; margin-top: 4px; flex-shrink: 0;
      }

      /* ===== Cronograma del Proceso de Admisión (Convocatorias) ===== */
      .conv-cronograma-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: 14px;
      }
      .conv-cronograma-nota { font-size: 12px; color: #aaa; margin-top: 14px; font-style: italic; }
      .conv-cronograma-nota i { font-size: 13px; color: var(--dorado); }
      .conv-cronograma-item {
        background: #fff; border: 1px solid #eee; border-left: 3px solid var(--dorado);
        border-radius: 4px; padding: 14px 16px; display: flex; gap: 12px; align-items: flex-start;
      }
      .conv-cronograma-item-icon {
        width: 36px; height: 36px; background: rgba(168,127,61,0.1); border-radius: 50%;
        display: flex; align-items: center; justify-content: center; flex-shrink: 0;
      }
      .conv-cronograma-item-icon i { color: var(--dorado); font-size: 18px; }
      .conv-cronograma-item-label { font-size: 14px; font-weight: 700; color: #333; }

      .conv-bloque-extra { margin-top: 44px; }
      .conv-bloque-cronograma { margin-top: 44px; margin-bottom: 16px; }

      /* ===== Aviso de contacto (pie de Convocatorias) ===== */
      .conv-contacto-aviso {
        margin-top: 40px; padding: 20px 24px; background: #f8f7f5;
        border-left: 4px solid var(--rojo-oscuro); border-radius: 0 6px 6px 0;
      }
      .conv-contacto-aviso p { font-size: 14px; color: #555; line-height: 1.7; margin: 0; }
      .conv-contacto-aviso a { color: var(--rojo); font-weight: 700; }

      .conv-proximas-list {
        display: flex;
        flex-direction: column;
        gap: 12px;
      }
      .conv-proxima-card {
        display: flex;
        align-items: center;
        gap: 16px;
        padding: 16px 20px;
        background: #fff;
        border: 1.5px solid #eee;
        border-radius: 6px;
        transition: border-color 0.2s;
      }
      .conv-proxima-card:hover { border-color: #ccc; }
      .conv-proxima-icon {
        width: 46px; height: 46px;
        border-radius: 8px;
        background: #f5f5f5;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 22px;
        color: var(--rojo-oscuro);
        flex-shrink: 0;
      }
      .conv-proxima-info { flex: 1; min-width: 0; }
      .conv-proxima-info h4 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 16px;
        font-weight: 700;
        color: var(--gris-texto);
        line-height: 1.2;
        margin-bottom: 4px;
      }
      .conv-proxima-info p { font-size: 12px; color: #888; margin: 0; }
      .conv-proxima-chip {
        font-size: 11px;
        font-weight: 700;
        color: #aaa;
        background: #f5f5f5;
        border-radius: 3px;
        padding: 3px 8px;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        white-space: nowrap;
        flex-shrink: 0;
      }
      /* ===== HERO (v6) — dos columnas: texto institucional + imagen contenida ===== */
      .hero-split {
        position: relative;
        overflow: hidden;
        background:
          radial-gradient(1000px 520px at 88% -12%, rgba(168, 127, 61, 0.38) 0%, rgba(168, 127, 61, 0) 60%),
          radial-gradient(800px 520px at -6% 112%, rgba(227, 19, 19, 0.32) 0%, rgba(227, 19, 19, 0) 60%),
          linear-gradient(135deg, #1a0508 0%, var(--rojo-oscuro) 55%, #2b1405 100%);
        padding: 64px 0;
      }
      .hero-split::after {
        content: '';
        position: absolute;
        left: 0; right: 0; bottom: 0;
        height: 4px;
        background: linear-gradient(90deg, var(--rojo-oscuro) 0%, var(--rojo) 50%, var(--dorado) 100%);
      }
      .hero-split-inner {
        max-width: 1400px;
        margin: 0 auto;
        padding: 0 60px;
        display: grid;
        grid-template-columns: 0.78fr 1.22fr;
        gap: 44px;
        align-items: center;
      }
      .hero-split-content { max-width: 420px; }
      .hero-split-kicker {
        display: block;
        font-size: 11.5px;
        font-weight: 700;
        letter-spacing: 0.15em;
        text-transform: uppercase;
        color: var(--dorado);
        margin-bottom: 12px;
      }
      .hero-split-title {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: clamp(26px, 2.8vw, 38px);
        font-weight: 700;
        color: #fff;
        text-transform: uppercase;
        line-height: 1.08;
        letter-spacing: 0.01em;
        margin-bottom: 14px;
      }
      .hero-split-desc {
        font-size: 14.5px;
        color: rgba(255, 255, 255, 0.75);
        line-height: 1.62;
        margin-bottom: 22px;
      }
      .hero-split-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 24px; }
      .hero-split-actions .btn-primary,
      .hero-split-actions .btn-outline-red {
        padding: 10px 20px;
        font-size: 11.5px;
      }
      .btn-primary {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        padding: 13px 28px;
        background: var(--rojo);
        color: #fff;
        font-family: 'Barlow', sans-serif;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        border-radius: 3px;
        text-decoration: none;
        border: 2px solid var(--rojo);
        cursor: pointer;
        transition: background 0.2s, border-color 0.2s;
      }
      .btn-primary:hover { background: var(--rojo-oscuro); border-color: var(--rojo-oscuro); }
      .btn-outline-white {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        padding: 13px 28px;
        background: transparent;
        color: #fff;
        font-family: 'Barlow', sans-serif;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        border-radius: 3px;
        text-decoration: none;
        border: 2px solid rgba(255, 255, 255, 0.45);
        cursor: pointer;
        transition: border-color 0.2s, background 0.2s;
      }
      .btn-outline-white:hover { border-color: #fff; background: rgba(255,255,255,0.1); }
      .btn-outline-red {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        padding: 13px 28px;
        background: transparent;
        color: var(--rojo);
        font-family: 'Barlow', sans-serif;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        border-radius: 3px;
        text-decoration: none;
        border: 2px solid var(--rojo);
        cursor: pointer;
        transition: background 0.2s, color 0.2s;
      }
      .btn-outline-red:hover { background: var(--rojo); color: #fff; }
      .hero-split-stats {
        display: flex;
        gap: 20px;
        flex-wrap: wrap;
        padding-top: 16px;
        border-top: 1px solid rgba(255, 255, 255, 0.15);
      }
      .hero-split-stat-num {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 26px;
        font-weight: 700;
        color: var(--dorado);
        line-height: 1;
      }
      .hero-split-stat-label {
        font-size: 10px;
        text-transform: uppercase;
        letter-spacing: 0.07em;
        color: rgba(255, 255, 255, 0.55);
        margin-top: 3px;
      }
      .hero-split-visual {
        position: relative;
        border-radius: 18px;
        overflow: hidden;
        aspect-ratio: 16 / 9;
        box-shadow: 0 24px 60px rgba(0, 0, 0, 0.16);
        background: #111;
        cursor: pointer;
      }
      .hero-split-slide {
        position: absolute;
        inset: 0;
        opacity: 0;
        transition: opacity 0.5s ease;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
      }
      .hero-split-slide.activo { opacity: 1; z-index: 1; }
      .hero-split-media {
        position: absolute;
        inset: 0;
        background:
          radial-gradient(140% 130% at 12% 8%, rgba(255, 255, 255, 0.22) 0%, rgba(255, 255, 255, 0) 42%),
          radial-gradient(120% 140% at 100% 100%, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 55%),
          linear-gradient(135deg, var(--tint1, #7f0000) 0%, var(--tint2, #2b0a0a) 100%);
        overflow: hidden;
      }
      .hero-split-media::before {
        content: '';
        position: absolute;
        inset: 0;
        background-image: radial-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px);
        background-size: 20px 20px;
        opacity: 0.5;
      }
      .hero-split-media i {
        position: absolute;
        right: 28px;
        bottom: 24px;
        font-size: 76px;
        color: rgba(255, 255, 255, 0.16);
      }
      .hero-split-media-img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
      }
      .hero-split-caption {
        position: relative;
        z-index: 2;
        padding: 26px 30px;
        background: linear-gradient(0deg, rgba(0, 0, 0, 0.82) 0%, rgba(0, 0, 0, 0.15) 70%, rgba(0, 0, 0, 0) 100%);
      }
      .hero-split-caption-kicker {
        display: block;
        font-size: 11.5px;
        font-weight: 700;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--dorado-claro);
        margin-bottom: 6px;
        text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
      }
      .hero-split-caption-title {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: clamp(22px, 2.6vw, 30px);
        font-weight: 700;
        color: #fff;
        text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
      }

      /* Puntos de navegación */
      .hero-split-dots {
        position: absolute;
        top: 18px;
        right: 18px;
        z-index: 4;
        display: flex;
        gap: 7px;
      }
      .hero-split-dot {
        width: 9px;
        height: 9px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.4);
        border: none;
        padding: 0;
        cursor: pointer;
        transition: background 0.2s, transform 0.2s;
      }
      .hero-split-dot:hover { background: rgba(255, 255, 255, 0.7); }
      .hero-split-dot.activo { background: #fff; transform: scale(1.2); }

      /* Flechas de navegación */
      .hero-split-nav {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 4;
        width: 34px;
        height: 34px;
        border-radius: 50%;
        background: rgba(0, 0, 0, 0.32);
        border: 1.5px solid rgba(255, 255, 255, 0.28);
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 15px;
        cursor: pointer;
        transition: background 0.2s, border-color 0.2s, transform 0.2s;
      }
      .hero-split-nav:hover { background: var(--rojo); border-color: var(--rojo); transform: translateY(-50%) scale(1.08); }
      .hero-split-nav-prev { left: 12px; }
      .hero-split-nav-next { right: 12px; }

      @media (max-width: 980px) {
        .hero-split-inner { grid-template-columns: 1fr; gap: 40px; padding: 0 32px; }
        .hero-split-visual { aspect-ratio: 16 / 9; order: -1; }
      }
      @media (max-width: 720px) {
        .hero-split { padding: 44px 0; }
        .hero-split-inner { padding: 0 20px; }
        .hero-split-stats { gap: 22px; }
        .hero-split-nav { width: 30px; height: 30px; font-size: 13px; }
      }

      /* ===== SECCIONES GENÉRICAS ===== */
      .seccion {
        padding: 72px 0;
      }
      .seccion-blanca { background: #fff; }
      .seccion-gris   { background: var(--gris-bg); }
      .seccion-oscura { background: #1a1a1a; }

      .seccion-header {
        margin-bottom: 44px;
      }
      .seccion-header .kicker {
        display: block;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: var(--dorado);
        margin-bottom: 8px;
      }
      .seccion-header h2 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: clamp(26px, 3vw, 38px);
        font-weight: 700;
        letter-spacing: 0.03em;
        text-transform: uppercase;
        color: var(--rojo-oscuro);
        line-height: 1.1;
      }
      .seccion-oscura .seccion-header h2 { color: #fff; }
      .seccion-header p {
        margin-top: 12px;
        font-size: 16px;
        color: #666;
        max-width: 560px;
        line-height: 1.65;
      }
      .seccion-cta {
        text-align: center;
        margin-top: 36px;
      }
      .btn-link-rojo {
        color: var(--rojo);
        font-size: 14px;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        text-decoration: none;
        border-bottom: 2px solid rgba(227, 19, 19, 0.28);
        padding-bottom: 2px;
        display: inline-flex;
        align-items: center;
        gap: 5px;
        cursor: pointer;
        transition: border-color 0.2s;
      }
      .btn-link-rojo:hover { border-color: var(--rojo); }

      /* ===== CONVOCATORIAS ===== */
      .conv-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
        gap: 20px;
        margin-bottom: 12px;
      }
      .conv-card {
        background: var(--gris-bg);
        border: 1px solid rgba(0, 0, 0, 0.07);
        border-top: 3px solid var(--rojo);
        border-radius: 4px;
        padding: 24px;
        display: flex;
        flex-direction: column;
        gap: 12px;
        transition: box-shadow 0.2s, transform 0.2s;
      }
      .seccion-blanca .conv-card { background: var(--gris-bg); }
      .conv-card:hover { box-shadow: 0 8px 28px rgba(0,0,0,0.10); transform: translateY(-2px); }
      .conv-badge {
        display: inline-block;
        padding: 3px 10px;
        background: rgba(227, 19, 19, 0.08);
        color: var(--rojo);
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        border-radius: 2px;
        align-self: flex-start;
      }
      .conv-card-poster {
        width: 100%;
        height: 150px;
        object-fit: cover;
        object-position: top center;
        border-radius: 2px;
      }
      .conv-card h3 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 20px;
        font-weight: 700;
        color: var(--gris-texto);
        letter-spacing: 0.02em;
        line-height: 1.2;
      }
      .conv-card p {
        font-size: 13px;
        color: #666;
        line-height: 1.55;
        flex: 1;
      }
      .conv-card-actions {
        display: flex;
        flex-direction: column;
        gap: 8px;
        margin-top: 4px;
      }
      .btn-sm-rojo {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        padding: 9px 14px;
        background: var(--rojo);
        color: #fff;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        text-decoration: none;
        border-radius: 3px;
        border: 2px solid var(--rojo);
        cursor: pointer;
        transition: background 0.2s;
      }
      .btn-sm-rojo:hover { background: var(--rojo-oscuro); border-color: var(--rojo-oscuro); }
      .btn-sm-outline {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        padding: 9px 14px;
        background: transparent;
        color: var(--rojo);
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        text-decoration: none;
        border-radius: 3px;
        border: 2px solid var(--rojo);
        cursor: pointer;
        transition: background 0.2s, color 0.2s;
      }
      .btn-sm-outline:hover { background: var(--rojo); color: #fff; }

      /* ===== NOTICIAS ===== */
      .noticias-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
        gap: 24px;
      }
      .noticia-card {
        background: #fff;
        border-radius: 4px;
        overflow: hidden;
        box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
        display: flex;
        flex-direction: column;
        cursor: pointer;
        transition: box-shadow 0.2s, transform 0.2s;
      }
      .noticia-card:hover { box-shadow: 0 8px 28px rgba(0,0,0,0.12); transform: translateY(-3px); }
      .noticia-card:focus-visible,
      .blog-featured:focus-visible {
        outline: 2px solid var(--rojo);
        outline-offset: 3px;
      }
      .noticia-img {
        width: 100%;
        height: 178px;
        background: linear-gradient(135deg, #ebebeb 0%, #d8d8d8 100%);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        color: #bbb;
        font-size: 12px;
        gap: 8px;
        flex-shrink: 0;
        overflow: hidden;
      }
      .noticia-img img { width: 100%; height: 100%; object-fit: cover; }
      .noticia-img i { font-size: 34px; }
      .noticia-body {
        padding: 20px;
        display: flex;
        flex-direction: column;
        gap: 8px;
        flex: 1;
      }
      .noticia-tag {
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--dorado);
      }
      .noticia-body h3 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 19px;
        font-weight: 700;
        color: var(--gris-texto);
        line-height: 1.25;
      }
      .noticia-body p {
        font-size: 13px;
        color: #666;
        line-height: 1.55;
        flex: 1;
      }
      .noticia-leer {
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: var(--rojo);
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        gap: 4px;
        margin-top: 6px;
        cursor: pointer;
      }
      .noticia-leer:hover { color: var(--rojo-oscuro); }
      .noticia-leer i { transition: transform 0.15s; }
      .noticia-card:hover .noticia-leer i,
      .blog-featured:hover .noticia-leer i { transform: translateX(3px); }

      /* ===== DIRECTIVOS ===== */
      .directivos-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 28px;
      }
      .directivo-card {
        display: flex;
        gap: 22px;
        background: var(--gris-bg);
        border-radius: 4px;
        padding: 28px;
        border-left: 4px solid var(--rojo);
        align-items: flex-start;
      }
      .directivo-foto {
        flex-shrink: 0;
        width: 108px;
        height: 128px;
        background: linear-gradient(135deg, #e5e5e5 0%, #d0d0d0 100%);
        border-radius: 3px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        color: #bbb;
        font-size: 11px;
        gap: 6px;
        overflow: hidden;
      }
      .directivo-foto img { width: 100%; height: 100%; object-fit: cover; }
      .directivo-foto i { font-size: 38px; }
      .directivo-info {
        display: flex;
        flex-direction: column;
        gap: 6px;
        min-width: 0;
        flex: 1;
      }
      .directivo-rol {
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--dorado);
      }
      .directivo-info h3 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 20px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        line-height: 1.2;
      }
      .directivo-info p {
        font-size: 13px;
        color: #555;
        line-height: 1.6;
        flex: 1;
      }
      .directivo-info a {
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: var(--rojo);
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        gap: 4px;
        margin-top: 8px;
        cursor: pointer;
      }
      .directivo-info a:hover { color: var(--rojo-oscuro); }

      /* ===== GALERÍA ===== */
      .galeria-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
      }
      .galeria-item {
        position: relative;
        overflow: hidden;
        border-radius: 3px;
        aspect-ratio: 4 / 3;
        background: #2a2a2a;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        color: rgba(255, 255, 255, 0.2);
        font-size: 12px;
        gap: 8px;
      }
      .galeria-item img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.4s ease;
      }
      .galeria-item:hover img { transform: scale(1.05); }
      .galeria-item i { font-size: 34px; }
      .galeria-item--large {
        grid-column: span 2;
        aspect-ratio: 16 / 9;
      }
      /* La celda junto a la grande comparte su fila -- sin esto se queda
         más baja (su propio 4:3) y deja un hueco vacío debajo. */
      .galeria-item--large + .galeria-item {
        aspect-ratio: auto;
        height: 100%;
      }

      /* ===== NAV ACTIVO ===== */
      .nav-link.is-active {
        color: var(--rojo);
        background: rgba(227, 19, 19, 0.06);
      }

      .logo-division-img {
        display: block;
        height: 54px;
        max-width: 240px;
        width: auto;
        object-fit: contain;
      }

      /* ===================== FOOTER ===================== */
      .footer {
        background: #1a1a1a;
        color: rgba(255, 255, 255, 0.75);
        padding: 48px 0 0;
      }

      .footer-grid {
        display: grid;
        grid-template-columns: 1.6fr 1fr 1fr 1fr;
        gap: 40px;
        padding-bottom: 40px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
      }

      .footer-brand-logos {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 16px;
      }

      .footer-brand-name {
        font-family: "Barlow Condensed", sans-serif;
        font-size: 15px;
        font-weight: 700;
        color: var(--rojo);
        letter-spacing: 0.04em;
        text-transform: uppercase;
      }

      .footer-brand-sub {
        font-size: 11px;
        color: rgba(255, 255, 255, 0.4);
        line-height: 1.5;
        margin-top: 3px;
      }

      .footer-brand-desc {
        font-size: 13px;
        color: rgba(255, 255, 255, 0.5);
        line-height: 1.7;
        margin-top: 12px;
      }

      .footer-social {
        display: flex;
        gap: 10px;
        margin-top: 20px;
      }

      .footer-social a {
        width: 34px;
        height: 34px;
        border: 1px solid rgba(255, 255, 255, 0.15);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        color: rgba(255, 255, 255, 0.55);
        font-size: 16px;
        text-decoration: none;
        transition:
          border-color 0.2s,
          color 0.2s,
          background 0.2s;
      }

      .footer-social a:hover {
        border-color: var(--rojo);
        color: #fff;
        background: var(--rojo);
      }

      .footer-col-title {
        font-family: "Barlow Condensed", sans-serif;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: #fff;
        margin-bottom: 16px;
        padding-bottom: 10px;
        border-bottom: 2px solid var(--rojo);
        display: inline-block;
      }

      .footer-col ul {
        list-style: none;
        display: flex;
        flex-direction: column;
        gap: 8px;
      }

      .footer-col ul li a {
        color: rgba(255, 255, 255, 0.5);
        text-decoration: none;
        font-size: 13px;
        line-height: 1.4;
        transition: color 0.2s;
        display: flex;
        align-items: center;
        gap: 8px;
      }

      .footer-col ul li a::before {
        content: "";
        width: 4px;
        height: 4px;
        border-radius: 50%;
        background: var(--dorado);
        flex-shrink: 0;
      }

      .footer-col ul li a:hover {
        color: #fff;
      }

      .footer-contact-item {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        margin-bottom: 12px;
        font-size: 13px;
        color: rgba(255, 255, 255, 0.5);
        line-height: 1.55;
      }

      .footer-contact-item i {
        color: var(--dorado);
        font-size: 16px;
        flex-shrink: 0;
        margin-top: 2px;
      }

      .footer-contact-item a {
        color: var(--dorado-claro);
        text-decoration: none;
      }

      .footer-contact-item a:hover {
        color: var(--dorado);
      }

      .footer-bottom {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 18px 0;
        font-size: 12px;
        color: rgba(255, 255, 255, 0.3);
        gap: 16px;
        flex-wrap: wrap;
      }

      .footer-bottom-links {
        display: flex;
        gap: 20px;
      }

      .footer-bottom-links a {
        color: rgba(255, 255, 255, 0.3);
        text-decoration: none;
        transition: color 0.2s;
      }

      .footer-bottom-links a:hover {
        color: rgba(255, 255, 255, 0.7);
      }

      .footer-accent-bar {
        height: 4px;
        background: linear-gradient(
          90deg,
          var(--rojo-oscuro) 0%,
          var(--rojo) 50%,
          var(--dorado) 100%
        );
      }

      /* ===================== RESPONSIVE ===================== */
      @media (max-width: 1100px) {
        .logo-section-divider,
        .logo-feca-block {
          display: none;
        }
        .nav-link {
          font-size: 11.5px;
          padding: 7px 7px;
        }
      }

      @media (max-width: 768px) {
        .top-bar {
          padding: 0 16px;
        }
        .inner {
          padding: 0 16px;
        }
        .header-main {
          height: auto;
        }
        .header-main .inner {
          flex-direction: row;
          flex-wrap: wrap;
          align-items: center;
          padding-top: 10px;
          padding-bottom: 10px;
          gap: 0;
        }
        .header-logos-group {
          flex: 1;
        }
        .nav-hamburger {
          display: flex;
          align-items: center;
        }
        nav {
          display: none;
          order: 3;
          width: 100%;
          flex-direction: column;
          align-items: stretch;
          padding: 6px 0 10px;
          gap: 0;
          border-top: 1px solid rgba(0, 0, 0, 0.07);
          margin-top: 8px;
        }
        nav.nav-abierta {
          display: flex;
        }
        .nav-link {
          font-size: 13px;
          padding: 11px 8px;
          width: 100%;
          border-radius: 0;
        }
        .nav-cta {
          margin: 8px 0 0;
          margin-left: 0;
          text-align: center;
          justify-content: center;
        }
        .footer {
          padding: 40px 0 0;
        }
        .footer-grid {
          grid-template-columns: 1fr 1fr;
          gap: 28px;
        }
        .footer-bottom {
          flex-direction: column;
          align-items: flex-start;
        }
      }

      @media (max-width: 480px) {
        .logo-feca-img {
          height: 28px;
          max-width: 76px;
        }
        .footer-grid {
          grid-template-columns: 1fr;
        }
      }

      /* ===== PAGE BANNER (sub-páginas) ===== */
      .page-banner {
        background: linear-gradient(135deg, var(--rojo-oscuro) 0%, #150508 100%);
        padding: 60px 0;
        position: relative;
        overflow: hidden;
      }
      .page-banner::before {
        content: '';
        position: absolute;
        inset: 0;
        background-image: repeating-linear-gradient(
          -45deg,
          transparent, transparent 18px,
          rgba(255,255,255,0.025) 18px,
          rgba(255,255,255,0.025) 19px
        );
      }
      .page-banner::after {
        content: '';
        position: absolute;
        bottom: 0; left: 0; right: 0;
        height: 3px;
        background: linear-gradient(90deg, var(--rojo-oscuro) 0%, var(--rojo) 50%, var(--dorado) 100%);
      }
      .page-banner-inner {
        position: relative;
        z-index: 1;
        max-width: 1280px;
        margin: 0 auto;
        padding: 0 32px;
      }
      .page-banner-kicker {
        display: block;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: var(--dorado-claro);
        margin-bottom: 12px;
      }
      .page-banner h1 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: clamp(32px, 4.5vw, 54px);
        font-weight: 700;
        color: #fff;
        letter-spacing: 0.03em;
        text-transform: uppercase;
        line-height: 1.05;
      }
      .page-banner-desc {
        margin-top: 14px;
        font-size: 16px;
        color: rgba(255,255,255,0.6);
        max-width: 560px;
        line-height: 1.65;
      }

      /* ===== NOSOTROS – Mensajes ===== */
      .mensaje-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 28px;
      }
      .mensaje-card {
        background: #fff;
        border-radius: 4px;
        box-shadow: 0 3px 20px rgba(0,0,0,0.08);
        overflow: hidden;
        display: flex;
        flex-direction: column;
      }
      .mensaje-card-header {
        background: var(--rojo-oscuro);
        padding: 28px 24px;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 12px;
        position: relative;
      }
      .mensaje-card-header::after {
        content: '';
        position: absolute;
        bottom: 0; left: 0; right: 0;
        height: 3px;
        background: linear-gradient(90deg, var(--rojo) 0%, var(--dorado) 100%);
      }
      .mensaje-foto {
        width: 120px;
        height: 144px;
        background: rgba(255,255,255,0.1);
        border-radius: 3px;
        border: 2px solid rgba(255,255,255,0.18);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        color: rgba(255,255,255,0.35);
        font-size: 11px;
        gap: 6px;
        overflow: hidden;
      }
      .mensaje-foto img { width: 100%; height: 100%; object-fit: cover; }
      .mensaje-foto i { font-size: 44px; }
      .mensaje-cargo {
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--dorado-claro);
        text-align: center;
      }
      .mensaje-nombre {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 20px;
        font-weight: 700;
        color: #fff;
        text-align: center;
        line-height: 1.2;
      }
      .mensaje-card-body {
        padding: 26px;
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: 14px;
      }
      .mensaje-texto {
        font-size: 14px;
        color: #555;
        line-height: 1.8;
        flex: 1;
      }
      .mensaje-firma {
        font-weight: 700;
        font-size: 13px;
        color: var(--rojo-oscuro);
        font-style: italic;
      }

      /* ===== Misión y Visión ===== */
      .mv-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 24px;
      }
      .mv-card {
        padding: 36px;
        border-radius: 4px;
        position: relative;
        overflow: hidden;
      }
      .mv-card--mision { background: var(--rojo-oscuro); }
      .mv-card--vision  { background: #1c1c1c; }
      .mv-card-deco {
        position: absolute;
        top: -20px; right: -10px;
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 130px;
        font-weight: 700;
        color: rgba(255,255,255,0.04);
        line-height: 1;
        pointer-events: none;
        letter-spacing: -4px;
      }
      .mv-card-icon {
        font-size: 34px;
        color: var(--dorado);
        display: block;
        margin-bottom: 14px;
      }
      .mv-card h3 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 28px;
        font-weight: 700;
        text-transform: uppercase;
        color: #fff;
        letter-spacing: 0.04em;
        margin-bottom: 14px;
      }
      .mv-card p {
        font-size: 15px;
        color: rgba(255,255,255,0.68);
        line-height: 1.75;
        position: relative;
      }

      /* ===== Organigrama ===== */
      .organigrama-wrapper {
        background: #fff;
        border-radius: 4px;
        padding: 32px;
        box-shadow: 0 2px 14px rgba(0,0,0,0.07);
        text-align: center;
      }
      .organigrama-placeholder {
        width: 100%;
        max-width: 780px;
        margin: 0 auto 20px;
        aspect-ratio: 4 / 3;
        max-height: 480px;
        background: linear-gradient(135deg, #f0f0f0 0%, #e4e4e4 100%);
        border-radius: 3px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        color: #ccc;
        gap: 10px;
        overflow: hidden;
      }
      .organigrama-placeholder img { width: 100%; height: 100%; object-fit: contain; }
      .organigrama-placeholder i { font-size: 52px; }
      .organigrama-placeholder span { font-size: 13px; }

      /* ===== Directorio ===== */
      .directorio-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
        gap: 16px;
      }
      /* Directorio de Nosotros específicamente: 3 por fila fijo, nunca "las
         que quepan" -- ojo, .directorio-grid se reutiliza en Campo Laboral y
         Proceso de Inscripción con cantidades variables, no tocar la base. */
      .directorio-grid--fijo3 { grid-template-columns: repeat(3, 1fr); }
      .directorio-item {
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 16px 20px;
        background: #fff;
        border-radius: 4px;
        border-left: 3px solid var(--dorado);
        box-shadow: 0 1px 8px rgba(0,0,0,0.05);
      }
      .directorio-icon {
        width: 46px;
        height: 46px;
        background: rgba(168,127,61,0.1);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--dorado);
        font-size: 20px;
        flex-shrink: 0;
      }
      .directorio-nombre {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 16px;
        font-weight: 700;
        color: var(--gris-texto);
        line-height: 1.2;
      }
      .directorio-cargo {
        font-size: 12px;
        color: #888;
        margin-top: 2px;
      }

      /* ===== OFERTA EDUCATIVA ===== */
      .programs-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
        gap: 24px;
      }
      .program-card {
        background: #fff;
        border-radius: 4px;
        overflow: hidden;
        box-shadow: 0 2px 14px rgba(0,0,0,0.07);
        display: flex;
        flex-direction: column;
        transition: box-shadow 0.2s, transform 0.2s;
      }
      .program-card:hover {
        box-shadow: 0 8px 28px rgba(0,0,0,0.13);
        transform: translateY(-3px);
      }
      .program-card-hdr {
        padding: 24px 22px 20px;
        background: linear-gradient(135deg, var(--rojo-oscuro) 0%, #0e0407 100%);
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        position: relative;
        overflow: hidden;
        min-height: 110px;
      }
      .program-sigla {
        position: absolute;
        bottom: 4px; right: 12px;
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 58px;
        font-weight: 700;
        color: rgba(255,255,255,0.09);
        line-height: 1;
        letter-spacing: 0.02em;
        pointer-events: none;
      }
      .program-level {
        position: relative;
        z-index: 1;
        display: inline-block;
        padding: 4px 11px;
        background: var(--dorado);
        color: #fff;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        border-radius: 2px;
      }
      .program-level.level-doc  { background: var(--rojo); }
      .program-level.level-esp  { background: #546e7a; }
      .program-level--lg { font-size: 12px; padding: 5px 14px; }

      /* ===== Detalle de programa ===== */
      .seccion-header--sm { margin-bottom: 20px; }
      .program-detalle-tags-row {
        display: flex; gap: 8px; align-items: center; margin-bottom: 12px; flex-wrap: wrap;
      }
      .program-detalle-objetivo-grid {
        display: grid; grid-template-columns: 1fr 280px; gap: 48px; align-items: start;
      }
      .program-detalle-objetivo-texto { font-size: 16px; color: #555; line-height: 1.8; }
      .program-detalle-info-list { display: flex; flex-direction: column; gap: 12px; }
      .program-detalle-nota {
        font-size: 11px; color: #aaa; margin-top: 18px; line-height: 1.7;
        border-top: 1px solid #eee; padding-top: 14px;
      }
      .program-detalle-nota--oscura {
        color: rgba(255,255,255,0.45); margin-top: 0; margin-bottom: 18px;
        border-top-color: rgba(255,255,255,0.1);
      }
      .program-detalle-pasos-grid { margin-bottom: 32px; }
      .program-detalle-paso { background: #2a2a2a; }
      .program-detalle-paso--rojo { border-left-color: var(--rojo); }
      .program-detalle-paso--dorado { border-left-color: var(--dorado); }
      .program-detalle-paso-num {
        font-family: 'Barlow Condensed', sans-serif; font-size: 22px; font-weight: 700;
      }
      .program-detalle-paso-num--rojo { background: rgba(227,19,19,0.15); color: var(--rojo); }
      .program-detalle-paso-num--dorado { background: rgba(168,127,61,0.15); color: var(--dorado); }
      .program-detalle-paso-titulo { color: #fff; }
      .program-detalle-paso-desc { color: #aaa; }
      .program-detalle-acciones { display: flex; gap: 14px; flex-wrap: wrap; }
      .program-pnpc {
        position: relative;
        z-index: 1;
        display: inline-block;
        padding: 3px 8px;
        background: rgba(255,255,255,0.12);
        border: 1px solid rgba(255,255,255,0.28);
        color: rgba(255,255,255,0.85);
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        border-radius: 2px;
      }
      .program-card-body {
        padding: 22px;
        display: flex;
        flex-direction: column;
        gap: 10px;
        flex: 1;
      }
      .program-card-body h3 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 21px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        line-height: 1.2;
      }
      .program-card-body p {
        font-size: 13px;
        color: #666;
        line-height: 1.6;
        flex: 1;
      }
      .program-tags {
        display: flex;
        gap: 6px;
        flex-wrap: wrap;
      }
      .program-tag {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 3px 9px;
        background: var(--gris-bg);
        color: #666;
        font-size: 11px;
        font-weight: 600;
        border-radius: 2px;
      }
      .program-tag i { font-size: 12px; }
      .program-card-actions {
        display: flex;
        gap: 8px;
        margin-top: 6px;
        flex-wrap: wrap;
      }

      /* ===== INVESTIGACIÓN – 3 cajas de acción ===== */
      .invest-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
      }
      .invest-card {
        padding: 56px 36px;
        display: flex;
        flex-direction: column;
        gap: 18px;
        cursor: pointer;
        text-decoration: none;
        transition: filter 0.2s;
      }
      .invest-card:hover { filter: brightness(1.12); }
      .invest-card:nth-child(1) { background: var(--rojo-oscuro); }
      .invest-card:nth-child(2) { background: #1b1b1b; }
      .invest-card:nth-child(3) { background: #0e0e0e; }
      .invest-card-icon {
        font-size: 40px;
        color: var(--dorado);
      }
      .invest-card h2 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 28px;
        font-weight: 700;
        color: #fff;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        line-height: 1.1;
      }
      .invest-card p {
        font-size: 14px;
        color: rgba(255,255,255,0.58);
        line-height: 1.7;
        flex: 1;
      }
      .invest-card-cta {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--dorado-claro);
        margin-top: 8px;
      }

      /* ===== COMUNIDAD – recursos ===== */
      .comunidad-tab-header {
        display: flex;
        gap: 0;
        border-bottom: 3px solid rgba(0,0,0,0.08);
        margin-bottom: 36px;
      }
      .comunidad-tab-title {
        /* reset button */
        background: none;
        border: none;
        outline: none;
        cursor: pointer;
        /* estilo */
        padding: 14px 28px;
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 18px;
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: rgba(0,0,0,0.32);
        border-bottom: 3px solid transparent;
        margin-bottom: -3px;
        display: flex;
        align-items: center;
        gap: 8px;
        transition: color 0.18s, border-color 0.18s;
      }
      .comunidad-tab-title:hover { color: rgba(0,0,0,0.55); }
      .comunidad-tab-title.activo {
        color: var(--rojo);
        border-bottom-color: var(--rojo);
      }
      /* en vez de desbordar la página cuando no caben todas las pestañas,
         se deslizan horizontalmente (como un tab-bar de app móvil) */
      @media (max-width: 900px) {
        .comunidad-tab-header {
          overflow-x: auto;
          -webkit-overflow-scrolling: touch;
          flex-wrap: nowrap;
        }
        .comunidad-tab-title {
          flex-shrink: 0;
        }
      }

      /* ===== Buscador de tarjetas (Publicaciones, Blog) ===== */
      .busqueda-filtros-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
        flex-wrap: wrap;
        margin-bottom: 28px;
      }
      .busqueda-box {
        position: relative;
        flex: 1;
        min-width: 220px;
        max-width: 420px;
      }
      .busqueda-box i {
        position: absolute;
        left: 14px;
        top: 50%;
        transform: translateY(-50%);
        color: #aaa;
        font-size: 16px;
        pointer-events: none;
      }
      .busqueda-box input {
        width: 100%;
        padding: 11px 14px 11px 40px;
        border: 1.5px solid #e2e2e2;
        border-radius: 6px;
        font-family: 'Barlow', sans-serif;
        font-size: 14px;
        color: var(--gris-texto);
        background: #fff;
        transition: border-color 0.2s;
      }
      .busqueda-box input:focus { outline: none; border-color: var(--rojo); }
      .busqueda-box input::placeholder { color: #bbb; }
      .busqueda-tabs {
        display: flex;
        gap: 6px;
        flex-wrap: wrap;
      }
      .busqueda-tab {
        background: none;
        border: 1.5px solid #e2e2e2;
        border-radius: 99px;
        cursor: pointer;
        padding: 7px 16px;
        font-family: 'Barlow', sans-serif;
        font-size: 12.5px;
        font-weight: 600;
        color: #777;
        transition: color 0.18s, border-color 0.18s, background 0.18s;
        white-space: nowrap;
      }
      .busqueda-tab:hover { border-color: #ccc; color: #444; }
      .busqueda-tab.activo {
        background: var(--rojo);
        border-color: var(--rojo);
        color: #fff;
      }
      .busqueda-sin-resultados {
        grid-column: 1 / -1;
        text-align: center;
        padding: 40px 20px;
        color: #999;
        font-size: 14px;
      }
      .busqueda-sin-resultados i { font-size: 30px; display: block; margin-bottom: 10px; color: #ccc; }

      /* ===== FAQ (Preguntas Frecuentes) ===== */
      .faq-list {
        display: flex;
        flex-direction: column;
        gap: 12px;
        max-width: 820px;
        margin: 0 auto;
      }
      .faq-item {
        background: #fff;
        border: 1px solid rgba(0,0,0,0.08);
        border-radius: 6px;
        overflow: hidden;
      }
      .faq-item[open] { border-color: rgba(227,19,19,0.3); }
      .faq-question {
        list-style: none;
        cursor: pointer;
        padding: 18px 22px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 16px;
        font-weight: 700;
        color: var(--gris-texto);
      }
      .faq-question::-webkit-details-marker { display: none; }
      .faq-question i {
        color: var(--rojo);
        font-size: 16px;
        flex-shrink: 0;
        transition: transform 0.2s;
      }
      .faq-item[open] .faq-question i { transform: rotate(180deg); }
      .faq-answer {
        padding: 0 22px 20px;
        font-size: 14px;
        color: #666;
        line-height: 1.65;
      }
      .faq-answer a { color: var(--rojo); text-decoration: none; font-weight: 600; }
      .faq-answer a:hover { text-decoration: underline; }

      /* ===== FAQ — diseño alterno (tarjetas en grid) ===== */
      .faq-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        gap: 20px;
      }
      .faq-card {
        background: #fff;
        border-top: 3px solid var(--dorado);
        border-radius: 4px;
        padding: 22px 24px;
        box-shadow: 0 1px 10px rgba(0,0,0,0.06);
      }
      .faq-card-q {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 16px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        line-height: 1.3;
        margin-bottom: 10px;
      }
      .faq-q-badge {
        flex-shrink: 0;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        background: var(--dorado);
        color: #fff;
        font-size: 12px;
        font-weight: 700;
        font-family: 'Barlow', sans-serif;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      .faq-card-a {
        font-size: 13px;
        color: #666;
        line-height: 1.6;
      }
      .faq-card-a a { color: var(--rojo); text-decoration: none; font-weight: 600; }
      .faq-card-a a:hover { text-decoration: underline; }

      /* ===== FAQ — fondo dorado discreto (paleta oficial) ===== */
      .seccion-faq-dorada {
        background: linear-gradient(180deg, rgba(168,127,61,0.08) 0%, rgba(183,154,99,0.04) 100%);
      }
      .seccion-faq-dorada .faq-item { border-color: rgba(168,127,61,0.18); }

      /* ===== UNIDADES DE APRENDIZAJE ===== */
      .ua-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
        gap: 10px;
      }
      .ua-item {
        display: flex;
        align-items: center;
        gap: 10px;
        background: #fff;
        border: 1px solid rgba(0,0,0,0.07);
        border-radius: 4px;
        padding: 12px 14px;
        font-size: 13px;
        font-weight: 600;
        color: var(--gris-texto);
        text-decoration: none;
        transition: box-shadow 0.2s, border-color 0.2s;
      }
      .ua-item:hover { box-shadow: 0 4px 14px rgba(0,0,0,0.08); border-color: rgba(227,19,19,0.25); }
      .ua-item .ti-file-type-pdf { color: var(--rojo); font-size: 17px; flex-shrink: 0; }
      .ua-item .ti-download { color: #aaa; font-size: 15px; margin-left: auto; flex-shrink: 0; }
      .ua-tab-note {
        font-size: 12px;
        color: #999;
        margin: -12px 0 18px;
      }

      /* ===== CONTACTO ===== */
      .contacto-grid {
        display: grid;
        grid-template-columns: 1fr 1.5fr;
        gap: 40px;
        align-items: start;
      }

      /* ===== Aviso de envío (según ?enviado=1 / ?error=...) ===== */
      .contacto-aviso {
        max-width: 900px; margin: 24px auto 0; padding: 14px 18px;
        border-radius: 4px; font-weight: 600;
      }
      .contacto-aviso--ok { background: #e6f7ec; color: #1f7a3a; }
      .contacto-aviso--error { background: #fdecec; color: #951823; }

      /* ===== Columna de información ===== */
      .contacto-info-col { display: flex; flex-direction: column; gap: 20px; }
      .contacto-panel {
        background: #fff; border-radius: 8px; overflow: hidden;
        box-shadow: 0 2px 12px rgba(0,0,0,0.07);
      }
      .contacto-panel-header {
        background: var(--rojo); padding: 16px 22px;
        display: flex; align-items: center; gap: 10px;
      }
      .contacto-panel-header--dorado { background: var(--dorado); }
      .contacto-panel-header i { font-size: 20px; color: #fff; opacity: 0.9; }
      .contacto-panel-header span {
        font-size: 13px; font-weight: 700; letter-spacing: 0.07em;
        text-transform: uppercase; color: #fff;
      }
      .contacto-panel-body { padding: 20px 22px; display: flex; flex-direction: column; gap: 14px; }
      .contacto-panel-body--social { padding: 18px 22px; }

      .contacto-item-link {
        display: flex; align-items: center; gap: 14px; text-decoration: none;
        color: inherit; padding: 12px 14px; border-radius: 6px;
        background: #fafafa; border: 1px solid #f0f0f0;
      }
      .contacto-item-row { display: flex; align-items: flex-start; gap: 14px; }
      .contacto-item-icon {
        width: 38px; height: 38px; border-radius: 50%; background: rgba(227,19,19,0.1);
        display: flex; align-items: center; justify-content: center; flex-shrink: 0;
      }
      .contacto-item-icon--dorado { background: rgba(168,127,61,0.1); margin-top: 2px; }
      .contacto-item-icon i { font-size: 17px; color: var(--rojo); }
      .contacto-item-icon--dorado i { color: var(--dorado); }
      .contacto-item-label {
        font-size: 11px; font-weight: 600; text-transform: uppercase;
        letter-spacing: 0.06em; color: #999; margin-bottom: 4px;
      }
      .contacto-item-valor { font-size: 16px; font-weight: 700; color: #222; }
      .contacto-item-valor--sm { font-size: 15px; font-weight: 600; }
      .contacto-item-texto { font-size: 14px; color: #333; line-height: 1.6; }
      .contacto-item-texto-sub { color: #888; font-size: 13px; }
      .contacto-divider { height: 1px; background: #f0f0f0; }

      .contacto-social-titulo {
        font-size: 12px; font-weight: 700; text-transform: uppercase;
        letter-spacing: 0.07em; color: #aaa; margin-bottom: 12px;
      }
      .contacto-social-row { display: flex; gap: 10px; flex-wrap: wrap; }
      .contacto-social-link {
        display: flex; align-items: center; gap: 8px; padding: 9px 16px;
        border-radius: 6px; background: #f5f5f5; text-decoration: none;
        color: #333; font-size: 13px; font-weight: 600;
      }
      .contacto-social-link i { font-size: 18px; }

      /* ===== Mapa ===== */
      .contacto-mapa-wrap { width: 100%; aspect-ratio: 16/6; border-radius: 4px; overflow: hidden; }
      .contacto-mapa-wrap iframe { border: 0; display: block; }
      .contacto-mapa-acciones { margin-top: 20px; display: flex; gap: 14px; flex-wrap: wrap; }

      /* Formulario */
      .contacto-form-card {
        background: #fff;
        border-radius: 4px;
        padding: 36px;
        box-shadow: 0 2px 16px rgba(0,0,0,0.07);
      }
      .contacto-form-card h3 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 26px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        margin-bottom: 24px;
        line-height: 1.1;
      }
      .form-group { margin-bottom: 18px; }
      .form-label {
        display: block;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.09em;
        text-transform: uppercase;
        color: #888;
        margin-bottom: 6px;
      }
      .form-control {
        width: 100%;
        padding: 10px 13px;
        border: 1.5px solid #ddd;
        border-radius: 3px;
        font-family: 'Barlow', sans-serif;
        font-size: 14px;
        color: var(--gris-texto);
        background: #fafafa;
        transition: border-color 0.2s, background 0.2s;
        outline: none;
      }
      .form-control:focus {
        border-color: var(--rojo);
        background: #fff;
      }
      textarea.form-control {
        resize: vertical;
        min-height: 120px;
        line-height: 1.6;
      }
      .form-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
      }
      .btn-submit {
        width: 100%;
        padding: 13px 20px;
        background: var(--rojo);
        color: #fff;
        border: none;
        border-radius: 3px;
        font-family: 'Barlow', sans-serif;
        font-size: 14px;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        transition: background 0.2s;
        margin-top: 6px;
      }
      .btn-submit:hover { background: var(--rojo-oscuro); }
      .form-nota {
        font-size: 11px;
        color: #aaa;
        margin-top: 10px;
        text-align: center;
        line-height: 1.5;
      }
      .recursos-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: 16px;
      }
      .recursos-grid--mb44 { margin-bottom: 44px; }

      /* ===== Área de Alumnos ===== */
      .alumnos-candado-box { max-width: 440px; margin: 0 auto; }
      .alumnos-candado-nota { color: #777; font-size: 13.5px; margin: -8px 0 18px; }
      .alumnos-aviso-error {
        margin-bottom: 16px; padding: 10px 14px; border-radius: 4px;
        background: #fdecec; color: #951823; font-size: 13px; font-weight: 600;
      }
      .alumnos-salir-row { display: flex; justify-content: flex-end; margin-bottom: 8px; }
      .recurso-card {
        background: #fff;
        border: 1px solid rgba(0,0,0,0.08);
        border-top: 3px solid transparent;
        border-radius: 4px;
        padding: 20px;
        display: flex;
        gap: 16px;
        align-items: flex-start;
        box-shadow: 0 1px 10px rgba(0,0,0,0.06);
        transition: box-shadow 0.2s, transform 0.15s, border-color 0.2s;
        text-decoration: none;
        color: inherit;
      }
      a.recurso-card { cursor: pointer; }
      .recurso-card:hover { box-shadow: 0 6px 22px rgba(0,0,0,0.12); transform: translateY(-2px); }
      .recurso-card:has(.tipo-pdf)  { border-top-color: var(--rojo); }
      .recurso-card:has(.tipo-doc)  { border-top-color: var(--dorado); }
      .recurso-card:has(.tipo-link) { border-top-color: #6b7280; }
      .recurso-destacado { margin-bottom: 14px; }
      .recurso-info-link {
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        color: var(--rojo);
        display: inline-flex;
        align-items: center;
        gap: 4px;
      }
      .recurso-card:hover .recurso-info-link { color: var(--rojo-oscuro); }
      .recurso-icon {
        width: 44px;
        height: 44px;
        border-radius: 3px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 22px;
        flex-shrink: 0;
      }
      .recurso-icon.tipo-pdf  { background: rgba(227,19,19,0.08); color: var(--rojo); }
      .recurso-icon.tipo-doc  { background: rgba(168,127,61,0.1); color: var(--dorado); }
      .recurso-icon.tipo-link { background: rgba(0,0,0,0.05); color: #555; }
      .recurso-info h4 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 16px;
        font-weight: 700;
        color: var(--gris-texto);
        line-height: 1.2;
        margin-bottom: 4px;
      }
      .recurso-info p {
        font-size: 12px;
        color: #888;
        line-height: 1.5;
        margin-bottom: 8px;
      }
      .recurso-info a {
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        color: var(--rojo);
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        gap: 4px;
        cursor: pointer;
      }
      .recurso-info a:hover { color: var(--rojo-oscuro); }

      /* ===== BLOG ===== */
      .blog-featured {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0;
        background: #fff;
        border-radius: 4px;
        overflow: hidden;
        box-shadow: 0 3px 20px rgba(0,0,0,0.08);
        margin-bottom: 40px;
        cursor: pointer;
        transition: box-shadow 0.2s, transform 0.2s;
      }
      .blog-featured:hover { box-shadow: 0 12px 34px rgba(0,0,0,0.14); transform: translateY(-3px); }
      .blog-featured-img {
        background: linear-gradient(135deg, var(--rojo-oscuro) 0%, #0d0d0d 100%);
        min-height: 280px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        color: rgba(255,255,255,0.2);
        gap: 8px;
        overflow: hidden;
        position: relative;
      }
      .blog-featured-img img {
        position: absolute; inset: 0;
        width: 100%; height: 100%;
        object-fit: cover; opacity: 0.5;
      }
      .blog-featured-img i { font-size: 52px; position: relative; }
      .blog-featured-img span { font-size: 12px; position: relative; }
      .blog-featured-body {
        padding: 36px;
        display: flex;
        flex-direction: column;
        gap: 12px;
        justify-content: center;
      }
      .blog-featured-body .noticia-tag { font-size: 12px; }
      .blog-featured-body h2 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 28px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        line-height: 1.15;
      }
      .blog-featured-body p {
        font-size: 14px;
        color: #666;
        line-height: 1.7;
      }

      /* ===== NAVEGACIÓN INFERIOR ===== */
      .page-nav-bottom {
        background: #0d0d0d;
        border-top: 1px solid rgba(255,255,255,0.07);
      }
      .page-nav-bottom .inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-top: 22px;
        padding-bottom: 22px;
      }
      .pnb-prev,
      .pnb-next {
        display: flex;
        align-items: center;
        gap: 14px;
        text-decoration: none;
        cursor: pointer;
        padding: 6px 0;
        transition: opacity 0.2s;
      }
      .pnb-prev:hover, .pnb-next:hover { opacity: 0.72; }
      .pnb-arrow {
        width: 42px;
        height: 42px;
        border-radius: 50%;
        border: 1px solid rgba(255,255,255,0.14);
        display: flex;
        align-items: center;
        justify-content: center;
        color: rgba(255,255,255,0.6);
        font-size: 18px;
        flex-shrink: 0;
        transition: border-color 0.2s, background 0.2s, color 0.2s;
      }
      .pnb-prev:hover .pnb-arrow,
      .pnb-next:hover .pnb-arrow {
        border-color: var(--rojo);
        background: var(--rojo);
        color: #fff;
      }
      .pnb-dir {
        display: block;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: rgba(255,255,255,0.3);
      }
      .pnb-name {
        display: block;
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 18px;
        font-weight: 700;
        color: #fff;
        letter-spacing: 0.02em;
        line-height: 1.2;
      }
      .pnb-home {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        border: 1px solid rgba(255,255,255,0.12);
        display: flex;
        align-items: center;
        justify-content: center;
        color: rgba(255,255,255,0.4);
        font-size: 20px;
        text-decoration: none;
        cursor: pointer;
        flex-shrink: 0;
        transition: border-color 0.2s, color 0.2s;
      }
      .pnb-home:hover { border-color: var(--dorado); color: var(--dorado); }
      .pnb-next .pnb-info { text-align: right; }

      /* ===== RESPONSIVE NUEVAS SECCIONES ===== */
      @media (max-width: 1100px) {
        .invest-grid { grid-template-columns: 1fr; }
        .invest-card  { padding: 40px 28px; }
        .blog-featured { grid-template-columns: 1fr; }
        .blog-featured-img { min-height: 200px; }
      }
      @media (max-width: 900px) {
        .mensaje-grid { grid-template-columns: 1fr; }
        .mv-grid { grid-template-columns: 1fr; }
        .contacto-grid { grid-template-columns: 1fr; }
        .directorio-grid--fijo3 { grid-template-columns: repeat(2, 1fr); }
        .page-nav-bottom .inner { flex-wrap: wrap; gap: 12px; }
      }
      @media (max-width: 640px) {
        .page-banner-inner { padding: 0 20px; }
        .programs-grid { grid-template-columns: 1fr; }
        .directorio-grid { grid-template-columns: 1fr; }
        .pnb-name { font-size: 15px; }
      }

      /* ===== RESPONSIVE SECCIONES ===== */
      @media (max-width: 900px) {
        .directivos-grid { grid-template-columns: 1fr; }
        .galeria-grid { grid-template-columns: repeat(2, 1fr); }
        .galeria-item--large { grid-column: span 1; aspect-ratio: 4 / 3; }
      }
      @media (max-width: 640px) {
        .conv-grid { grid-template-columns: 1fr; }
        .noticias-grid { grid-template-columns: 1fr; }
        .directivo-card { flex-direction: column; }
        .directivo-foto { width: 100%; height: 160px; }
        .galeria-grid { grid-template-columns: 1fr 1fr; }
        .seccion { padding: 48px 0; }
      }

      /* ===== PÁGINAS LEGALES ===== */
      .legal-block {
        margin-bottom: 32px;
        padding-bottom: 28px;
        border-bottom: 1px solid #eee;
      }
      .legal-block:last-child { border-bottom: none; margin-bottom: 0; }
      .legal-block h2 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 18px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        margin-bottom: 10px;
        letter-spacing: 0.01em;
      }
      .legal-block p, .legal-block li {
        font-size: 14px;
        color: #555;
        line-height: 1.85;
      }
      .legal-block ul { padding-left: 20px; margin-top: 8px; }
      .legal-block li { margin-bottom: 4px; }
      .legal-block a { color: var(--rojo); }
      .legal-block a:hover { color: var(--rojo-oscuro); }

      /* ===== MAPA DEL SITIO ===== */
      .sitemap-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
        gap: 32px;
      }
      .sitemap-group-title {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 13px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: var(--rojo-oscuro);
        padding-bottom: 10px;
        border-bottom: 2px solid var(--rojo);
        margin-bottom: 14px;
        display: flex;
        align-items: center;
        gap: 6px;
      }
      .sitemap-group ul { list-style: none; padding: 0; margin: 0; }
      .sitemap-group li { margin-bottom: 7px; }
      .sitemap-group a {
        font-size: 14px;
        color: #555;
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        transition: color 0.15s;
      }
      .sitemap-group a:hover { color: var(--rojo); }
      .sitemap-group a i { font-size: 13px; opacity: 0.55; }

      /* ===== MODAL DE PRIVACIDAD (primera visita) ===== */
      .modal-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.65);
        z-index: 9000;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 20px;
        backdrop-filter: blur(4px);
        animation: modal-fade 0.3s ease;
      }
      .modal-overlay[hidden] { display: none !important; }
      @keyframes modal-fade { from { opacity: 0; } to { opacity: 1; } }
      .modal-box {
        background: #fff;
        border-radius: 6px;
        max-width: 520px;
        width: 100%;
        overflow: hidden;
        box-shadow: 0 24px 80px rgba(0, 0, 0, 0.35);
        animation: modal-rise 0.3s ease;
      }
      @keyframes modal-rise {
        from { transform: translateY(20px); opacity: 0; }
        to   { transform: translateY(0);    opacity: 1; }
      }
      .modal-header {
        background: var(--rojo-oscuro);
        padding: 22px 28px 18px;
        display: flex;
        align-items: center;
        gap: 16px;
      }
      .modal-logo { height: 38px; width: auto; }
      .modal-header h2 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 19px;
        font-weight: 700;
        color: #fff;
        line-height: 1.25;
        margin: 0;
      }
      .modal-header h2 small {
        display: block;
        font-size: 11px;
        font-weight: 400;
        opacity: 0.7;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        margin-bottom: 2px;
      }
      .modal-body { padding: 22px 28px 18px; border-bottom: 1px solid #eee; }
      .modal-body p { font-size: 14px; color: #555; line-height: 1.75; margin: 0 0 10px; }
      .modal-body p:last-child { margin-bottom: 0; }
      .modal-doc-links {
        display: flex;
        gap: 18px;
        flex-wrap: wrap;
        margin-top: 16px;
        padding-top: 14px;
        border-top: 1px solid #f0f0f0;
      }
      .modal-doc-link {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        font-size: 12px;
        font-weight: 700;
        color: var(--rojo);
        text-decoration: none;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        font-family: 'Barlow', sans-serif;
      }
      .modal-doc-link:hover { color: var(--rojo-oscuro); text-decoration: underline; }
      .modal-footer {
        padding: 14px 28px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        background: #fafafa;
        flex-wrap: wrap;
      }
      .modal-footer-note { font-size: 11px; color: #aaa; line-height: 1.4; }
      .modal-actions { display: flex; gap: 10px; }
      .btn-modal-outline {
        padding: 8px 16px;
        border: 1.5px solid #ddd;
        border-radius: 3px;
        background: transparent;
        font-family: 'Barlow', sans-serif;
        font-size: 13px;
        font-weight: 600;
        color: #888;
        cursor: pointer;
        transition: border-color 0.2s, color 0.2s;
      }
      .btn-modal-outline:hover { border-color: #bbb; color: #555; }
      .btn-modal-primary {
        padding: 8px 18px;
        background: var(--rojo);
        border: none;
        border-radius: 3px;
        font-family: 'Barlow', sans-serif;
        font-size: 13px;
        font-weight: 700;
        color: #fff;
        cursor: pointer;
        transition: background 0.2s;
        display: inline-flex;
        align-items: center;
        gap: 6px;
      }
      .btn-modal-primary:hover { background: var(--rojo-oscuro); }
      @media (max-width: 540px) {
        .modal-header { padding: 18px 20px; }
        .modal-body   { padding: 18px 20px; }
        .modal-footer { padding: 14px 20px; flex-direction: column; align-items: flex-start; }
        .modal-actions { width: 100%; }
        .btn-modal-outline, .btn-modal-primary { flex: 1; justify-content: center; }
      }
      /* Modal convocatoria responsive */
      @media (max-width: 720px) {
        .conv-detail-info-col { padding: 24px 20px; }
      }
      @media (max-width: 480px) {
        .conv-vigentes-grid { grid-template-columns: 1fr; }
        .conv-detail-box { border-radius: 8px; }
      }

      /* ===== BOTÓN LOGIN TOP-BAR ===== */
      .topbar-login-btn {
        background: none;
        border: none;
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 5px;
        color: rgba(255,255,255,0.75);
        font-family: 'Barlow', sans-serif;
        font-size: 13px;
        font-weight: 600;
        padding: 0;
        margin-left: 4px;
        padding-left: 14px;
        border-left: 1px solid rgba(255,255,255,0.18);
        transition: color 0.2s;
      }
      .topbar-login-btn:hover { color: #fff; }
      .topbar-login-btn i { font-size: 18px; }
      .topbar-login-label { display: inline; }
      @media (max-width: 480px) { .topbar-login-label { display: none; } }

      /* ===== SUMA+ TOPBAR LINK ===== */
      .topbar-suma-link {
        display: flex;
        align-items: center;
        line-height: 0;
        text-decoration: none;
        opacity: 0.85;
        transition: opacity 0.2s;
      }
      .topbar-suma-link:hover { opacity: 1; }
      .topbar-suma-img { height: 90px; width: auto; display: block; border-radius: 2px; }

      /* ===== MODAL DE LOGIN ===== */
      .login-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,0.72);
        z-index: 9200;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 20px;
        backdrop-filter: blur(5px);
        -webkit-backdrop-filter: blur(5px);
        animation: modal-fade 0.25s ease;
      }
      .login-overlay[hidden] { display: none !important; }
      .login-box {
        background: #fff;
        border-radius: 10px;
        max-width: 400px;
        width: 100%;
        overflow: hidden;
        box-shadow: 0 32px 90px rgba(0,0,0,0.45);
        animation: modal-rise 0.3s ease;
      }
      .login-hdr {
        background: linear-gradient(135deg, var(--rojo-oscuro) 0%, #0e0407 100%);
        padding: 30px 28px 24px;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 14px;
        position: relative;
        text-align: center;
      }
      .login-hdr::after {
        content: '';
        position: absolute;
        bottom: 0; left: 0; right: 0;
        height: 3px;
        background: linear-gradient(90deg, var(--rojo-oscuro) 0%, var(--rojo) 50%, var(--dorado) 100%);
      }
      .login-hdr-logo { height: 50px; width: auto; }
      .login-hdr-title {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 23px;
        font-weight: 700;
        color: #fff;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        line-height: 1.1;
        margin: 0;
      }
      .login-hdr-title small {
        display: block;
        font-size: 11px;
        font-weight: 400;
        opacity: 0.6;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        margin-bottom: 2px;
      }
      .login-body {
        padding: 26px 28px 20px;
        display: flex;
        flex-direction: column;
        gap: 0;
      }
      .login-db-aviso {
        display: flex;
        align-items: flex-start;
        gap: 9px;
        background: #fff8e1;
        border: 1px solid #ffe082;
        border-radius: 5px;
        padding: 10px 13px;
        margin-bottom: 20px;
        font-size: 12px;
        color: #6d4c0e;
        line-height: 1.45;
      }
      .login-db-aviso i { color: #f59f00; font-size: 16px; flex-shrink: 0; margin-top: 1px; }
      .login-divider {
        display: flex;
        align-items: center;
        gap: 12px;
        margin: 18px 0 16px;
      }
      .login-divider::before,
      .login-divider::after {
        content: '';
        flex: 1;
        height: 1px;
        background: #ebebeb;
      }
      .login-divider span {
        font-size: 11px;
        color: #bbb;
        text-transform: uppercase;
        letter-spacing: 0.09em;
        white-space: nowrap;
      }
      .btn-sin-cuenta {
        width: 100%;
        padding: 12px 20px;
        background: transparent;
        border: 1.5px solid #d0d0d0;
        border-radius: 4px;
        font-family: 'Barlow', sans-serif;
        font-size: 13px;
        font-weight: 600;
        color: #555;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        transition: border-color 0.2s, color 0.2s, background 0.2s;
      }
      .btn-sin-cuenta:hover {
        border-color: var(--gris-texto);
        color: var(--gris-texto);
        background: rgba(0,0,0,0.03);
      }
      .login-footer-note {
        padding: 12px 28px 18px;
        text-align: center;
        font-size: 11px;
        color: #bbb;
        line-height: 1.5;
      }
      .login-footer-note a { color: var(--rojo); text-decoration: none; }

      /* ===== PÁGINA DE PERFILES ===== */
      .perfil-aviso-invitado {
        display: flex;
        align-items: flex-start;
        gap: 12px;
        background: #e8f4fd;
        border: 1px solid #90caf9;
        border-radius: 6px;
        padding: 14px 18px;
        margin-bottom: 32px;
        font-size: 13px;
        color: #1565c0;
        line-height: 1.55;
      }
      .perfil-aviso-invitado i { font-size: 20px; flex-shrink: 0; margin-top: 1px; }
      .perfil-aviso-invitado strong { display: block; font-size: 14px; margin-bottom: 3px; }
      .perfil-layout {
        display: grid;
        grid-template-columns: 280px 1fr;
        gap: 28px;
        align-items: start;
      }
      @media (max-width: 860px) { .perfil-layout { grid-template-columns: 1fr; } }

      /* Sidebar */
      .perfil-sidebar { display: flex; flex-direction: column; gap: 16px; }
      .perfil-foto-card {
        background: #fff;
        border-radius: 8px;
        box-shadow: 0 2px 16px rgba(0,0,0,0.07);
        overflow: hidden;
      }
      .perfil-foto-card-hdr {
        background: linear-gradient(135deg, var(--rojo-oscuro) 0%, #0e0407 100%);
        padding: 28px 20px 20px;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        position: relative;
      }
      .perfil-foto-card-hdr::after {
        content: '';
        position: absolute;
        bottom: 0; left: 0; right: 0;
        height: 3px;
        background: linear-gradient(90deg, var(--rojo) 0%, var(--dorado) 100%);
      }
      .perfil-avatar-wrap { position: relative; }
      .perfil-avatar {
        width: 100px;
        height: 100px;
        border-radius: 50%;
        background: rgba(255,255,255,0.12);
        border: 3px solid rgba(255,255,255,0.25);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 44px;
        color: rgba(255,255,255,0.5);
        overflow: hidden;
        cursor: pointer;
        transition: border-color 0.2s;
      }
      .perfil-avatar:hover { border-color: var(--dorado); }
      .perfil-avatar img { width: 100%; height: 100%; object-fit: cover; }
      .perfil-avatar-edit {
        position: absolute;
        bottom: 2px;
        right: 2px;
        width: 28px;
        height: 28px;
        background: var(--rojo);
        border: 2px solid #fff;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 13px;
        color: #fff;
        cursor: pointer;
        transition: background 0.2s;
      }
      .perfil-avatar-edit:hover { background: var(--rojo-oscuro); }
      .perfil-nombre-display {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 20px;
        font-weight: 700;
        color: #fff;
        text-align: center;
        line-height: 1.2;
      }
      .perfil-rol-badge {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        padding: 3px 12px;
        background: rgba(255,255,255,0.12);
        border: 1px solid rgba(255,255,255,0.22);
        border-radius: 20px;
        font-size: 11px;
        font-weight: 700;
        color: rgba(255,255,255,0.85);
        text-transform: uppercase;
        letter-spacing: 0.07em;
      }
      .perfil-db-chip {
        display: flex;
        align-items: center;
        gap: 5px;
        font-size: 10px;
        color: rgba(255,255,255,0.35);
        margin-top: 2px;
      }
      .perfil-db-chip i { font-size: 12px; }
      .perfil-foto-card-body { padding: 16px 18px; }
      .perfil-stat-row {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 8px 0;
        border-bottom: 1px solid #f0f0f0;
        font-size: 13px;
      }
      .perfil-stat-row:last-child { border-bottom: none; }
      .perfil-stat-row i { color: var(--dorado); font-size: 15px; width: 18px; flex-shrink: 0; }
      .perfil-stat-label { color: #aaa; font-size: 11px; }
      .perfil-stat-value { color: var(--gris-texto); font-weight: 600; }

      .perfil-sidebar-acciones { display: flex; flex-direction: column; gap: 8px; }
      .perfil-crud-nota {
        background: #fff;
        border-radius: 6px;
        padding: 14px 16px;
        box-shadow: 0 1px 8px rgba(0,0,0,0.06);
        border-left: 3px solid var(--dorado);
        display: flex;
        gap: 10px;
        align-items: flex-start;
        font-size: 12px;
        color: #666;
        line-height: 1.55;
      }
      .perfil-crud-nota i { color: var(--dorado); font-size: 18px; flex-shrink: 0; margin-top: 1px; }
      .perfil-crud-nota strong { display: block; font-size: 12px; color: var(--gris-texto); margin-bottom: 3px; }

      /* Main: tarjeta de perfil */
      .perfil-card {
        background: #fff;
        border-radius: 8px;
        box-shadow: 0 2px 16px rgba(0,0,0,0.07);
        overflow: hidden;
      }
      .perfil-card-hdr {
        padding: 20px 26px;
        border-bottom: 1px solid #f0f0f0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        flex-wrap: wrap;
      }
      .perfil-card-hdr h2 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 20px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        letter-spacing: 0.02em;
        margin: 0;
      }
      .perfil-modo-tag {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        padding: 3px 10px;
        border-radius: 20px;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
      }
      .perfil-modo-tag--lectura { background: #f0f0f0; color: #888; }
      .perfil-modo-tag--edicion { background: rgba(227,19,19,0.09); color: var(--rojo); }
      .perfil-card-body { padding: 26px; }
      .perfil-seccion-titulo {
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--dorado);
        margin-bottom: 16px;
        padding-bottom: 8px;
        border-bottom: 1px solid #f0f0f0;
        display: flex;
        align-items: center;
        gap: 6px;
      }
      .perfil-campos-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 14px 28px;
        margin-bottom: 24px;
      }
      @media (max-width: 560px) { .perfil-campos-grid { grid-template-columns: 1fr; } }
      .perfil-campo {
        display: flex;
        flex-direction: column;
        gap: 2px;
      }
      .perfil-campo-label {
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: #aaa;
      }
      .perfil-campo-valor {
        font-size: 14px;
        color: var(--gris-texto);
        line-height: 1.45;
        min-height: 22px;
      }
      .perfil-campo-vacio { color: #ccc; font-style: italic; font-size: 13px; }
      .perfil-form-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 20px;
      }
      @media (max-width: 560px) { .perfil-form-grid { grid-template-columns: 1fr; } }
      .perfil-form-full { grid-column: 1 / -1; }
      .perfil-form-acciones {
        display: flex;
        gap: 12px;
        flex-wrap: wrap;
        margin-top: 8px;
        padding-top: 20px;
        border-top: 1px solid #f0f0f0;
      }

      /* Zona de carga de imagen en formulario */
      .perfil-upload-zona {
        border: 2px dashed #ddd;
        border-radius: 6px;
        padding: 24px;
        text-align: center;
        cursor: pointer;
        transition: border-color 0.2s, background 0.2s;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px;
        color: #aaa;
        font-size: 13px;
        margin-bottom: 6px;
        position: relative;
      }
      .perfil-upload-zona:hover { border-color: var(--rojo); background: rgba(227,19,19,0.03); color: var(--rojo); }
      .perfil-upload-zona i { font-size: 28px; }
      .perfil-upload-zona input[type="file"] {
        position: absolute;
        inset: 0;
        opacity: 0;
        cursor: pointer;
        width: 100%;
        height: 100%;
      }
      .perfil-preview-img {
        width: 80px;
        height: 80px;
        border-radius: 50%;
        object-fit: cover;
        border: 2px solid #eee;
        display: none;
        margin: 0 auto;
      }

      /* ===== PANEL DE ADMINISTRACIÓN (CMS) ===== */
      .admin-aviso-db {
        display: flex;
        align-items: flex-start;
        gap: 12px;
        background: #fff3e0;
        border: 1px solid #ffcc80;
        border-radius: 6px;
        padding: 13px 16px;
        margin-bottom: 28px;
        font-size: 13px;
        color: #7b3f00;
        line-height: 1.55;
      }
      .admin-aviso-db i { font-size: 20px; color: #f57c00; flex-shrink: 0; margin-top: 1px; }
      .admin-aviso-db strong { font-weight: 700; }

      .admin-tabs {
        display: flex;
        gap: 0;
        border-bottom: 3px solid rgba(0,0,0,0.07);
        margin-bottom: 28px;
        overflow-x: auto;
        scrollbar-width: none;
      }
      .admin-tabs::-webkit-scrollbar { display: none; }
      .admin-tab-btn {
        background: none;
        border: none;
        outline: none;
        cursor: pointer;
        padding: 12px 20px;
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 16px;
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: rgba(0,0,0,0.32);
        border-bottom: 3px solid transparent;
        margin-bottom: -3px;
        display: flex;
        align-items: center;
        gap: 7px;
        transition: color 0.18s, border-color 0.18s;
        white-space: nowrap;
      }
      .admin-tab-btn i { font-size: 16px; }
      .admin-tab-btn:hover { color: rgba(0,0,0,0.55); }
      .admin-tab-btn.activo { color: var(--rojo); border-bottom-color: var(--rojo); }

      .admin-panel[hidden] { display: none !important; }
      .admin-panel-hdr {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 20px;
        gap: 12px;
        flex-wrap: wrap;
      }
      .admin-panel-hdr-left { display: flex; align-items: center; gap: 12px; }
      .admin-panel-hdr h3 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 20px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        margin: 0;
        letter-spacing: 0.02em;
      }
      .admin-count-badge {
        font-size: 12px;
        font-weight: 700;
        color: #888;
        background: #f0f0f0;
        border-radius: 20px;
        padding: 3px 10px;
      }

      .admin-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: 18px;
      }
      .admin-galeria-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
        gap: 12px;
      }

      .admin-card {
        background: #fff;
        border-radius: 7px;
        box-shadow: 0 2px 12px rgba(0,0,0,0.07);
        overflow: hidden;
        display: flex;
        flex-direction: column;
        transition: box-shadow 0.2s, transform 0.2s;
      }
      .admin-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.12); transform: translateY(-2px); }
      .admin-card-img {
        width: 100%;
        height: 148px;
        object-fit: cover;
        object-position: top center;
        display: block;
      }
      .admin-card-img-placeholder {
        width: 100%;
        height: 148px;
        background: linear-gradient(135deg, #f0f0f0 0%, #e4e4e4 100%);
        display: flex;
        align-items: center;
        justify-content: center;
        color: #ccc;
        font-size: 38px;
      }
      .admin-galeria-card .admin-card-img,
      .admin-galeria-card .admin-card-img-placeholder { height: 140px; }
      .admin-card-body {
        padding: 13px 15px;
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: 5px;
      }
      .admin-card-title {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 16px;
        font-weight: 700;
        color: var(--gris-texto);
        line-height: 1.25;
      }
      .admin-card-subtitle {
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        color: var(--dorado);
      }
      .admin-card-desc {
        font-size: 12px;
        color: #888;
        line-height: 1.5;
        flex: 1;
      }
      .admin-badge {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 2px 8px;
        border-radius: 20px;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        align-self: flex-start;
      }
      .admin-badge-vigente   { background: #e8f5e9; color: #2e7d32; border: 1px solid #a5d6a7; }
      .admin-badge-proxima   { background: #f3f3f3; color: #888; border: 1px solid #ddd; }
      .admin-badge-cerrada   { background: #ffebee; color: #c62828; border: 1px solid #ef9a9a; }
      .admin-badge-maestria  { background: rgba(168,127,61,0.1); color: var(--dorado); border: 1px solid rgba(168,127,61,0.25); }
      .admin-badge-doctorado { background: rgba(227,19,19,0.08); color: var(--rojo); border: 1px solid rgba(227,19,19,0.2); }
      .admin-badge-especialidad { background: rgba(84,110,122,0.1); color: #546e7a; border: 1px solid rgba(84,110,122,0.25); }

      .admin-card-actions {
        padding: 9px 13px;
        border-top: 1px solid #f5f5f5;
        display: flex;
        gap: 8px;
        justify-content: flex-end;
        align-items: center;
      }
      .admin-btn-edit {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        padding: 6px 11px;
        background: rgba(227,19,19,0.07);
        color: var(--rojo);
        border: 1px solid rgba(227,19,19,0.18);
        border-radius: 3px;
        font-family: 'Barlow', sans-serif;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        cursor: pointer;
        transition: background 0.15s, border-color 0.15s;
      }
      .admin-btn-edit:hover { background: rgba(227,19,19,0.14); border-color: rgba(227,19,19,0.4); }
      .admin-btn-delete {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 30px;
        height: 30px;
        background: transparent;
        color: #ccc;
        border: 1px solid #e8e8e8;
        border-radius: 3px;
        cursor: pointer;
        font-size: 14px;
        transition: background 0.15s, color 0.15s, border-color 0.15s;
      }
      .admin-btn-delete:hover { background: #ffebee; color: var(--rojo); border-color: rgba(227,19,19,0.3); }

      .admin-empty {
        grid-column: 1 / -1;
        text-align: center;
        padding: 60px 20px;
        color: #ccc;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
      }
      .admin-empty i { font-size: 52px; }
      .admin-empty p { font-size: 14px; color: #aaa; }

      .admin-modal-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,0.65);
        z-index: 9300;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 16px;
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
        animation: modal-fade 0.22s ease;
      }
      .admin-modal-overlay[hidden] { display: none !important; }
      .admin-modal-box {
        background: #fff;
        border-radius: 8px;
        max-width: 580px;
        width: 100%;
        max-height: 90vh;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        box-shadow: 0 28px 80px rgba(0,0,0,0.4);
        animation: modal-rise 0.28s ease;
      }
      .admin-modal-hdr {
        padding: 18px 22px;
        border-bottom: 2px solid var(--rojo);
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        flex-shrink: 0;
      }
      .admin-modal-hdr h3 {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 20px;
        font-weight: 700;
        color: var(--rojo-oscuro);
        margin: 0;
        letter-spacing: 0.02em;
        line-height: 1.2;
      }
      .admin-modal-hdr h3 small {
        display: block;
        font-size: 11px;
        font-weight: 400;
        color: #aaa;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        margin-bottom: 1px;
      }
      .admin-modal-cerrar {
        width: 32px;
        height: 32px;
        border-radius: 50%;
        background: rgba(0,0,0,0.06);
        border: none;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 17px;
        color: #666;
        transition: background 0.2s, color 0.2s;
        flex-shrink: 0;
      }
      .admin-modal-cerrar:hover { background: var(--rojo); color: #fff; }
      .admin-modal-body {
        padding: 22px 22px 8px;
        overflow-y: auto;
        flex: 1;
      }
      .admin-modal-footer {
        padding: 14px 22px 18px;
        border-top: 1px solid #f0f0f0;
        display: flex;
        gap: 10px;
        flex-shrink: 0;
        background: #fafafa;
      }
      .admin-upload-zona {
        border: 2px dashed #ddd;
        border-radius: 5px;
        padding: 20px 16px;
        text-align: center;
        cursor: pointer;
        transition: border-color 0.2s, background 0.2s;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 7px;
        color: #aaa;
        font-size: 13px;
        position: relative;
        min-height: 90px;
        justify-content: center;
      }
      .admin-upload-zona:hover { border-color: var(--rojo); background: rgba(227,19,19,0.03); color: var(--rojo); }
      .admin-upload-zona input[type="file"] {
        position: absolute;
        inset: 0;
        opacity: 0;
        cursor: pointer;
        width: 100%;
        height: 100%;
      }
      .admin-upload-zona i { font-size: 24px; }
      .admin-upload-preview {
        max-width: 100%;
        max-height: 160px;
        border-radius: 4px;
        object-fit: contain;
        border: 1px solid #eee;
        margin-bottom: 4px;
      }
      @media (max-width: 600px) {
        .admin-grid { grid-template-columns: 1fr; }
        .admin-tab-btn { padding: 10px 13px; font-size: 14px; }
        .admin-modal-box { max-height: 95vh; }
      }

      /* ── Proporciones de imagen/media por tipo de sección ── */
      .admin-conv-img { width:100%; aspect-ratio:2/3; object-fit:cover; object-position:top center; display:block; }
      .admin-conv-img-ph { width:100%; aspect-ratio:2/3; background:linear-gradient(135deg,var(--rojo-oscuro) 0%,#0e0407 100%); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.18); font-size:52px; }
      .admin-person-img { width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top center; display:block; }
      .admin-person-img-ph { width:100%; aspect-ratio:3/4; background:linear-gradient(135deg,#e8e8e8 0%,#d8d8d8 100%); display:flex; align-items:center; justify-content:center; color:#ccc; font-size:52px; }
      .admin-blog-img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
      .admin-blog-img-ph { width:100%; aspect-ratio:16/9; background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.18); font-size:40px; }

      /* Oferta: encabezado coloreado por nivel */
      .admin-oferta-hdr { position:relative; padding:26px 18px 20px; overflow:hidden; min-height:100px; display:flex; flex-direction:column; justify-content:flex-end; gap:6px; }
      .admin-oferta-hdr--maestría,.admin-oferta-hdr--maestria { background:linear-gradient(135deg,#7a5c2c 0%,var(--dorado) 100%); }
      .admin-oferta-hdr--doctorado { background:linear-gradient(135deg,var(--rojo-oscuro) 0%,#0e0407 100%); }
      .admin-oferta-hdr--especialidad { background:linear-gradient(135deg,#263238 0%,#546e7a 100%); }
      .admin-oferta-sigla-deco { position:absolute; bottom:-12px; right:8px; font-family:'Barlow Condensed',sans-serif; font-size:78px; font-weight:700; color:rgba(255,255,255,.09); line-height:1; pointer-events:none; }
      .admin-oferta-nivel-tag { display:inline-block; padding:3px 10px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.26); border-radius:2px; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.9); position:relative; z-index:1; align-self:flex-start; }
      .admin-oferta-sigla-label { font-family:'Barlow Condensed',sans-serif; font-size:22px; font-weight:700; color:#fff; letter-spacing:.04em; position:relative; z-index:1; }
      .admin-oferta-img-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.18; }

      /* Investigación: encabezado oscuro con ícono */
      .admin-invest-hdr { background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; padding:28px 16px; position:relative; overflow:hidden; min-height:108px; }
      .admin-invest-hdr i { font-size:40px; color:var(--dorado); position:relative; z-index:1; }
      .admin-invest-hdr-deco { position:absolute; top:-10px; right:-4px; font-family:'Barlow Condensed',sans-serif; font-size:86px; font-weight:700; color:rgba(255,255,255,.04); line-height:1; pointer-events:none; }
      .admin-invest-tipo-tag { display:inline-flex; align-items:center; gap:4px; padding:2px 9px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-radius:20px; font-size:10px; font-weight:700; color:rgba(255,255,255,.65); text-transform:uppercase; letter-spacing:.07em; position:relative; z-index:1; text-align:center; }

      /* Comunidad: encabezado dinámico por tipo */
      .admin-comunidad-hdr { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; padding:20px 16px; min-height:96px; position:relative; overflow:hidden; }
      .admin-comunidad-hdr--evento   { background:linear-gradient(135deg,var(--rojo-oscuro) 0%,#0e0407 100%); }
      .admin-comunidad-hdr--recurso  { background:linear-gradient(135deg,#1a3a4a 0%,#0a1e2a 100%); }
      .admin-comunidad-hdr--servicio { background:linear-gradient(135deg,#1a3a2a 0%,#0a1e12 100%); }
      .admin-comunidad-hdr--tutoria,.admin-comunidad-hdr--tutoría { background:linear-gradient(135deg,#2c1a4a 0%,#1a0e2a 100%); }
      .admin-comunidad-hdr--otro,.admin-comunidad-hdr--default { background:linear-gradient(135deg,#2a2a3e 0%,#1a1a2e 100%); }
      .admin-comunidad-hdr img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.28; }
      .admin-comunidad-hdr i { font-size:34px; color:var(--dorado); position:relative; z-index:1; }
      .admin-comunidad-tipo-txt { font-size:10px; font-weight:700; color:rgba(255,255,255,.6); text-transform:uppercase; letter-spacing:.1em; position:relative; z-index:1; }

      /* Grids con anchos mínimos adaptados */
      .admin-grid-conv      { grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); }
      .admin-grid-person    { grid-template-columns:repeat(auto-fill,minmax(185px,1fr)); }
      .admin-grid-oferta    { grid-template-columns:repeat(auto-fill,minmax(265px,1fr)); }
      .admin-grid-invest    { grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); }
      .admin-grid-comunidad { grid-template-columns:repeat(auto-fill,minmax(235px,1fr)); }
      .admin-grid-blog      { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }

      .admin-card-meta { display:flex; align-items:center; gap:10px; font-size:11px; color:#aaa; flex-wrap:wrap; margin-bottom:3px; }
      .admin-card-meta .meta-cat { color:var(--dorado); font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
      .admin-card-tags { display:flex; gap:5px; flex-wrap:wrap; margin-top:5px; }
      .admin-card-tag { display:inline-flex; align-items:center; gap:3px; padding:2px 7px; background:var(--gris-bg); border-radius:2px; font-size:10px; font-weight:600; color:#666; }
      .admin-card-tag i { font-size:11px; }

      @media (max-width:600px) {
        .admin-grid-conv,.admin-grid-person,.admin-grid-oferta,
        .admin-grid-invest,.admin-grid-comunidad,.admin-grid-blog { grid-template-columns:1fr; }
      }

      /* ===== Titulación por Certificación (antes <style> propio de la página) ===== */
      .tit-aviso {
        background: #fff8e1;
        border: 1px solid #ffe082;
        border-left: 4px solid #e67e00;
        border-radius: 6px;
        padding: 16px 20px;
        display: flex;
        align-items: flex-start;
        gap: 14px;
        max-width: 820px;
        margin: 0 auto;
      }
      .tit-aviso > i { color: #e67e00; font-size: 26px; flex-shrink: 0; margin-top: 2px; }
      .tit-aviso strong { color: #5d4037; font-size: 15px; display: block; margin-bottom: 5px; }
      .tit-aviso p { color: #6d4c0e; margin: 0; font-size: 13px; line-height: 1.65; }

      .tit-pasos { display: flex; flex-direction: column; gap: 30px; }

      .tit-paso {
        display: grid;
        grid-template-columns: 58px 1fr;
        gap: 20px;
        align-items: flex-start;
      }
      .tit-paso-num {
        width: 58px; height: 58px;
        background: var(--rojo-oscuro);
        color: #fff;
        border-radius: 50%;
        display: flex; align-items: center; justify-content: center;
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 28px; font-weight: 700;
        flex-shrink: 0;
      }
      .tit-paso-content { padding-top: 6px; }
      .tit-paso-titulo {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 23px; font-weight: 700;
        color: var(--rojo-oscuro);
        margin: 0 0 8px;
        letter-spacing: 0.02em;
      }
      .tit-paso-desc { color: #555; font-size: 14px; margin: 0 0 16px; line-height: 1.55; }

      .tit-costos-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
        gap: 14px;
      }
      .tit-costo-card {
        background: #fff;
        border: 1px solid #e8e6e1;
        border-top: 3px solid var(--rojo);
        border-radius: 8px;
        padding: 16px;
      }
      .tit-costo-card--compacta { max-width: 180px; flex-shrink: 0; }
      .tit-costo-monto {
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 30px; font-weight: 700;
        color: var(--rojo-oscuro);
        line-height: 1; margin-bottom: 6px;
      }
      .tit-costo-monto span { font-size: 13px; font-weight: 500; color: #888; }
      .tit-costo-nombre { font-weight: 600; font-size: 13px; color: #333; margin-bottom: 4px; }
      .tit-costo-nota { font-size: 12px; color: #888; line-height: 1.4; }

      .tit-doc-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
      .tit-doc-list li {
        display: flex; align-items: flex-start; gap: 10px;
        font-size: 14px; color: #444; line-height: 1.55;
      }
      .tit-doc-list li i { color: var(--rojo); font-size: 18px; flex-shrink: 0; margin-top: 2px; }

      .tit-flujo { display: flex; flex-direction: column; gap: 0; }
      .tit-flujo-paso {
        display: flex; align-items: flex-start; gap: 14px;
        background: #fff;
        border: 1px solid #e8e6e1;
        border-radius: 8px;
        padding: 16px 18px;
      }
      .tit-flujo-paso > i { font-size: 26px; color: var(--rojo-oscuro); flex-shrink: 0; margin-top: 2px; }
      .tit-flujo-paso strong { font-size: 15px; color: #222; display: block; margin-bottom: 5px; }
      .tit-flujo-paso p { font-size: 13px; color: #555; margin: 0 0 6px; line-height: 1.55; }
      .tit-flujo-paso p:last-child { margin-bottom: 0; }
      .tit-nota-inline {
        display: flex; align-items: flex-start; gap: 7px;
        background: #fff8e1; border: 1px solid #ffe082;
        border-radius: 4px; padding: 8px 11px;
        font-size: 12px; color: #6d4c0e; line-height: 1.5; margin-top: 8px;
      }
      .tit-nota-inline i { font-size: 14px; color: #e67e00; flex-shrink: 0; margin-top: 1px; }
      .tit-flujo-arrow {
        display: flex; align-items: center; padding: 4px 0 4px 22px;
        color: var(--rojo); font-size: 20px;
      }

      .tit-finales-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
        gap: 20px;
      }
      .tit-final-card {
        background: rgba(255,255,255,0.07);
        border: 1px solid rgba(255,255,255,0.14);
        border-radius: 8px; padding: 28px 22px; text-align: center;
      }
      .tit-final-num {
        width: 46px; height: 46px;
        background: var(--rojo); color: #fff;
        border-radius: 50%;
        display: flex; align-items: center; justify-content: center;
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 22px; font-weight: 700; margin: 0 auto 14px;
      }
      .tit-final-icon { font-size: 38px; color: var(--dorado-claro); display: block; margin-bottom: 12px; }
      .tit-final-card h4 {
        color: #fff; margin: 0 0 10px;
        font-family: 'Barlow Condensed', sans-serif;
        font-size: 18px; font-weight: 700;
        letter-spacing: 0.04em; text-transform: uppercase;
      }
      .tit-final-card p { color: rgba(255,255,255,0.72); font-size: 13px; line-height: 1.65; margin: 0; }

      /* estilos que estaban en línea en titulacion.php */
      .tit-intro-box { max-width: 760px; margin: 0 auto; text-align: center; }
      .tit-contacto-box { max-width: 700px; margin: 0 auto; text-align: center; }
      .kicker--dorado-claro { color: var(--dorado-claro); }
      .tit-intro-titulo { color: #fff; margin: 10px 0 16px; }
      .tit-final-titulo { color: #fff; }
      .tit-contacto-titulo { margin: 10px 0 12px; }
      .tit-intro-texto { color: rgba(255,255,255,0.78); line-height: 1.75; margin-bottom: 26px; }
      .tit-intro-texto strong { color: #fff; }
      .tit-botones-center { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
      .btn-sm-outline--oscuro { border-color: rgba(255,255,255,0.3); color: rgba(255,255,255,0.75); }
      .seccion--compacta { padding-top: 28px; padding-bottom: 28px; }
      .tit-paso2-layout { display: flex; gap: 20px; flex-wrap: wrap; align-items: flex-start; margin-top: 12px; }
      .tit-paso2-indicaciones { flex: 1; min-width: 260px; }
      .tit-paso2-subtitulo { font-weight: 600; margin: 0 0 10px; color: var(--rojo-oscuro); font-size: 14px; }
      .tit-paso2-lista { margin: 0; padding-left: 18px; line-height: 1.9; color: #555; font-size: 14px; }
      .tit-paso2-lista small { color: #888; }
      .tit-contacto-texto { color: #555; margin-bottom: 24px; line-height: 1.65; }

      @media (max-width: 600px) {
        .tit-paso { grid-template-columns: 44px 1fr; gap: 12px; }
        .tit-paso-num { width: 44px; height: 44px; font-size: 21px; }
        .tit-costos-grid { grid-template-columns: 1fr 1fr; }
      }
