/* Estilos públicos (namespaced .oi-* para no chocar con el tema/Elementor).
   Tarjetas de empleo estilo job-board moderno: blancas, sombras suaves,
   tags tipo píldora, salario destacado y botón de postular. */

.oi-busquedas-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 22px; margin: 24px 0;
}
.oi-card {
    background: #fff; border: 1px solid #e5e9f0; border-radius: 16px;
    padding: 24px; box-shadow: 0 1px 3px rgba(16,24,40,.06);
    transition: box-shadow .18s, transform .18s;
    display: flex; flex-direction: column;
}
.oi-card:hover { box-shadow: 0 12px 28px rgba(16,24,40,.10); transform: translateY(-3px); }
.oi-card-titulo { margin: 0 0 12px; font-size: 20px; font-weight: 700; letter-spacing: -.01em; }
.oi-card-titulo a { color: #101828; text-decoration: none; }
.oi-card-meta { list-style: none; margin: 0 0 12px; padding: 0; color: #667085; font-size: 14px; }
.oi-card-meta li { margin: 5px 0; display: flex; align-items: center; gap: 6px; }
.oi-card-meta .dashicons { font-size: 17px; width: 17px; height: 17px; color: #98a2b3; }
.oi-tag {
    display: inline-block; background: #f2f4f8; border: none;
    border-radius: 8px; padding: 4px 11px; font-size: 12.5px; color: #475467; font-weight: 500;
}
.oi-card-extracto { color: #475467; font-size: 14px; margin: 12px 0 18px; line-height: 1.55; }
.oi-salario { font-weight: 700; color: #101828; font-size: 15px; margin: 6px 0; display: flex; align-items: center; gap: 6px; }
.oi-busquedas-vacio { color: #667085; padding: 40px; text-align: center; }

.oi-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    border: 1px solid transparent; border-radius: 10px; cursor: pointer;
    padding: 11px 20px; font-weight: 600; text-decoration: none; font-size: 15px;
    transition: all .15s;
}
.oi-btn-primario { background: var(--oi-primario); color: #fff; box-shadow: 0 1px 2px rgba(16,24,40,.10); }
.oi-btn-primario:hover { filter: brightness(.93); color: #fff; }
.oi-btn-sm { padding: 9px 16px; font-size: 14px; }
.oi-card .oi-btn { margin-top: auto; align-self: flex-start; }

/* Detalle */
.oi-detalle-wrap { max-width: 1140px; margin: 36px auto; padding: 0 16px; }
.oi-detalle.oi-card { padding: 32px; }
.oi-detalle-titulo { margin-top: 0; font-size: 30px; font-weight: 800; letter-spacing: -.02em; color: #101828; }
.oi-detalle-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.oi-detalle-seccion { margin-top: 26px; }
.oi-detalle-seccion h2 { font-size: 19px; border-bottom: 2px solid #eef1f6; padding-bottom: 8px; }

/* Formulario de postulación */
.oi-postulacion-form p { margin: 16px 0; }
.oi-postulacion-form label { display: block; font-weight: 600; margin-bottom: 6px; color: #344054; }
.oi-postulacion-form input[type="text"],
.oi-postulacion-form input[type="email"],
.oi-postulacion-form input[type="date"],
.oi-postulacion-form input[type="file"],
.oi-postulacion-form textarea {
    width: 100%; max-width: 480px; padding: 11px 14px;
    border: 1px solid #d0d5dd; border-radius: 10px; box-sizing: border-box; font-size: 15px;
}
.oi-postulacion-form textarea { font-family: inherit; resize: vertical; }
.oi-postulacion-form input:focus, .oi-postulacion-form textarea:focus { outline: none; border-color: var(--oi-primario); box-shadow: 0 0 0 3px color-mix(in srgb, var(--oi-primario) 18%, transparent); }

.oi-aviso { padding: 14px 18px; border-radius: 11px; margin: 18px 0; }
.oi-aviso-ok { background: #e7f6ec; color: #067647; }
.oi-aviso-warn { background: #fef7e6; color: #b54708; }
.oi-aviso-error { background: #fdeceb; color: #b42318; }

/* ===================== Portal de empleos [busquedas_activas] ============== */
.oi-jobs { max-width: 1100px; margin: 0 auto; padding: 8px 0 40px; }
.oi-jobs-head { text-align: center; margin: 8px 0 24px; }
.oi-jobs-titulo { font-size: 34px !important; font-weight: 800; letter-spacing: -.02em; color: #101828; margin: 0 0 6px; line-height: 1.15; }
.oi-jobs-sub { color: #667085; font-size: 16px; margin: 0; }
.oi-jobs-sub .oi-jobs-total { font-weight: 700; color: var(--oi-primario); }

/* Barra de filtros */
.oi-jobs-filtros {
    display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
    background: #fff; border: 1px solid #e5e9f0; border-radius: 14px;
    padding: 12px; box-shadow: 0 1px 3px rgba(16,24,40,.06); margin-bottom: 14px;
}
.oi-jobs-search { position: relative; flex: 1 1 240px; min-width: 200px; display: flex; align-items: center; }
.oi-jobs-search .dashicons { position: absolute; left: 12px; color: #98a2b3; font-size: 18px; width: 18px; height: 18px; }
.oi-jobs-search .oi-f-buscar {
    width: 100%; padding: 10px 14px 10px 38px !important; font-size: 14px !important;
    border: 1px solid #d0d5dd !important; border-radius: 10px !important; background: #fff !important;
    color: #1f2937 !important; box-sizing: border-box; height: auto !important;
}
.oi-jobs-filtros .oi-f-select {
    padding: 10px 12px !important; font-size: 14px !important; border: 1px solid #d0d5dd !important;
    border-radius: 10px !important; background: #fff !important; color: #344054 !important;
    height: auto !important; min-height: 0 !important; flex: 0 1 auto; cursor: pointer; box-shadow: none !important;
}
.oi-jobs-limpiar {
    padding: 10px 16px !important; font-size: 14px !important; font-weight: 600 !important;
    border: 1px solid #d0d5dd !important; border-radius: 10px !important; background: #f9fafb !important;
    color: #475467 !important; cursor: pointer; text-transform: none !important; box-shadow: none !important;
    height: auto !important;
}
.oi-jobs-limpiar:hover { background: #f2f4f7 !important; }
.oi-jobs-search input:focus, .oi-jobs-filtros .oi-f-select:focus {
    outline: none !important; border-color: var(--oi-primario) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--oi-primario) 16%, transparent) !important;
}

.oi-jobs-count { color: #667085; font-size: 14px; margin: 0 4px 14px; }
.oi-jobs-count .oi-jobs-n { font-weight: 700; color: #101828; }

.oi-job-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }

.oi-empty { text-align: center; padding: 48px 20px; color: #667085; }
.oi-empty .dashicons { font-size: 44px; width: 44px; height: 44px; opacity: .3; }
.oi-empty p { margin-top: 12px; }

@media (max-width: 600px) {
    .oi-jobs-titulo { font-size: 26px !important; }
    .oi-jobs-filtros { flex-direction: column; align-items: stretch; }
    .oi-jobs-filtros .oi-f-select, .oi-jobs-limpiar { width: 100%; }
}

/* ===================== Normalización del detalle vs. tema host ============
   La página de detalle usa el header/footer del tema, que impone tipografía
   serif y margenes enormes. Reimponemos un estilo propio, compacto y prolijo. */
.oi-detalle-wrap {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: #1f2937; max-width: 1140px;
}
.oi-detalle.oi-card { padding: 28px 30px; }
.oi-detalle-titulo {
    font-size: 27px !important; font-weight: 800 !important; line-height: 1.2 !important;
    margin: 0 0 14px !important; font-family: inherit !important; color: #101828;
}
.oi-detalle-wrap h2 {
    font-size: 18px !important; font-weight: 700 !important; line-height: 1.3 !important;
    margin: 0 0 10px !important; font-family: inherit !important; color: #101828;
    border-bottom: 2px solid #eef1f6; padding-bottom: 8px;
}
.oi-detalle-wrap h3, .oi-detalle-wrap h4 { font-size: 16px !important; margin: 10px 0 6px !important; font-family: inherit !important; }
.oi-detalle-seccion { margin-top: 20px !important; }

/* Compactar el contenido del WYSIWYG (descripción/experiencia/estudios). */
.oi-detalle-wrap p { font-size: 15px !important; line-height: 1.6 !important; margin: 6px 0 !important; font-family: inherit !important; }
.oi-detalle-wrap ul:not(.oi-card-meta):not(.oi-detalle-meta) { margin: 8px 0 !important; padding-left: 22px; }
.oi-detalle-wrap li { margin: 3px 0 !important; font-size: 15px; }
.oi-detalle-wrap p:empty, .oi-detalle-wrap p > br:only-child { display: none !important; }
.oi-detalle-wrap img { max-width: 100% !important; height: auto !important; border-radius: 10px; margin: 8px 0; }
.oi-detalle-wrap br { line-height: 1; }

/* Meta (Departamento / Ubicación / Modalidad / Vacantes) como fila de chips. */
.oi-detalle-meta { display: flex !important; flex-wrap: wrap; gap: 8px 10px; list-style: none; padding: 0; margin: 0 0 4px; }
.oi-detalle-meta li {
    background: #f2f4f8; border-radius: 8px; padding: 5px 12px !important; font-size: 13px !important; color: #344054;
}
.oi-detalle-meta li strong { font-weight: 700; }

/* Formulario de postulación: tipografía y controles propios. */
.oi-detalle-wrap label, .oi-postulacion-form label {
    font-size: 14px !important; font-weight: 600 !important; font-family: inherit !important;
    color: #344054 !important; margin-bottom: 6px; display: block;
}
.oi-postulacion-form p { margin: 12px 0 !important; }
.oi-detalle-wrap input[type="text"], .oi-detalle-wrap input[type="email"],
.oi-detalle-wrap input[type="tel"], .oi-detalle-wrap input[type="file"], .oi-detalle-wrap textarea {
    font-size: 14px !important; font-family: inherit !important; padding: 10px 13px !important;
    border: 1px solid #d0d5dd !important; border-radius: 10px !important; background: #fff !important;
    color: #1f2937 !important; height: auto !important; box-shadow: none !important; max-width: 460px; width: 100%; box-sizing: border-box;
}
.oi-detalle-wrap input[type="file"] { padding: 8px 10px !important; }
.oi-detalle-wrap button, .oi-detalle-wrap input[type="submit"], .oi-detalle-wrap .oi-btn {
    font-size: 15px !important; font-weight: 600 !important; text-transform: none !important;
    letter-spacing: normal !important; padding: 11px 20px !important; border-radius: 10px !important;
    height: auto !important; box-shadow: none !important; border: none !important; cursor: pointer;
    background: var(--oi-primario) !important; color: #fff !important; font-family: inherit !important;
}
.oi-detalle-wrap button:hover, .oi-detalle-wrap .oi-btn:hover { filter: brightness(.93); }
.oi-detalle-wrap .oi-postular { margin-top: 24px; padding-top: 8px; }

/* Apretar el espaciado entre secciones del detalle (anti huecos enormes). */
.oi-detalle.oi-card > * { margin-top: 0; }
.oi-detalle-titulo { margin: 0 0 12px !important; }
.oi-detalle-meta { margin: 0 0 6px !important; }
.oi-detalle-seccion { margin: 16px 0 0 !important; padding: 0 !important; }
.oi-detalle-seccion:first-of-type { margin-top: 10px !important; }
.oi-detalle-seccion > *:last-child { margin-bottom: 0 !important; }
.oi-detalle-wrap section:empty { display: none !important; }
.oi-detalle-wrap .oi-detalle-seccion p:last-child:empty,
.oi-detalle-wrap .oi-detalle-seccion br:last-child { display: none !important; }

/* ============ Detalle de búsqueda — vista del postulante (rediseño) ============ */
html { scroll-behavior: smooth; }
.oi-jobpage { color: #1f2937; font-size: 15px; line-height: 1.6; }
.oi-jobpage *, .oi-jobpage *::before, .oi-jobpage *::after { box-sizing: border-box; }

/* Hero */
.oi-jobhero { display: flex; gap: 22px; align-items: flex-start; background: #fff; border: 1px solid #eceaf6; border-radius: 18px; padding: 26px 28px; box-shadow: 0 1px 3px rgba(16,24,40,.06); margin-bottom: 22px; }
.oi-jobhero-icon { flex: 0 0 92px; width: 92px; height: 92px; border-radius: 18px; display: flex; align-items: center; justify-content: center; background: linear-gradient(160deg, color-mix(in srgb, var(--oi-primario) 14%, #fff), color-mix(in srgb, var(--oi-primario) 28%, #fff)); }
.oi-jobhero-icon .dashicons { font-size: 44px; width: 44px; height: 44px; color: var(--oi-primario); }
.oi-jobhero-body { min-width: 0; flex: 1; }
.oi-job-titulo { margin: 0 0 12px; font-size: 30px; font-weight: 800; letter-spacing: -.02em; color: #101828; line-height: 1.15; }
.oi-jobhero-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0 0 14px; padding: 0; color: #475467; font-size: 14px; }
.oi-jobhero-meta li { display: flex; align-items: center; gap: 7px; }
.oi-jobhero-meta .dashicons { font-size: 17px; width: 17px; height: 17px; color: var(--oi-primario); }
.oi-jobhero-badges { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.oi-job-badge-activa { background: #e7f6ec; color: #067647; font-weight: 700; font-size: 13px; padding: 4px 12px; border-radius: 20px; }
.oi-job-hace { color: #98a2b3; font-size: 13px; }
.oi-jobhero-extracto { color: #475467; margin: 0; font-size: 15px; }

/* Grid */
.oi-jobgrid { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 24px; align-items: start; }

/* Columna principal */
.oi-jobmain { background: #fff; border: 1px solid #eceaf6; border-radius: 18px; padding: 8px 28px 22px; box-shadow: 0 1px 3px rgba(16,24,40,.06); }
.oi-jobsec { padding: 24px 0; border-top: 1px solid #f0eef8; }
.oi-jobsec:first-child { border-top: none; }
.oi-jobsec-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.oi-jobsec-ico { flex: 0 0 38px; width: 38px; height: 38px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--oi-primario) 12%, #fff); color: var(--oi-primario); font-size: 20px; }
.oi-jobsec-head h2 { margin: 0; font-size: 19px; font-weight: 700; color: #101828; border: none; padding: 0; }
.oi-jobsec-body { color: #475467; }
.oi-jobsec-body p { margin: 0 0 12px; }
.oi-jobsec-body ul, .oi-jobsec-body ol { padding-left: 20px; margin: 0 0 12px; }
.oi-jobsec-body li { margin: 6px 0; }

/* Sidebar */
.oi-jobside { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 20px; }
.oi-jobcta { background: linear-gradient(150deg, var(--oi-primario), #4f46e5); color: #fff; border-radius: 18px; padding: 24px; box-shadow: 0 12px 28px color-mix(in srgb, var(--oi-primario) 32%, transparent); }
.oi-jobcta h3 { margin: 0 0 8px; font-size: 20px; font-weight: 800; color: #fff; }
.oi-jobcta p { margin: 0 0 18px; color: rgba(255,255,255,.85); font-size: 14px; }
.oi-jobcta-btn { display: flex; align-items: center; justify-content: center; gap: 8px; background: #fff; color: var(--oi-primario); font-weight: 700; font-size: 15px; padding: 13px 18px; border-radius: 12px; text-decoration: none; transition: transform .12s; }
.oi-jobcta-btn:hover { transform: translateY(-1px); color: var(--oi-primario); }
.oi-jobcta-btn .dashicons { font-size: 18px; width: 18px; height: 18px; }
.oi-jobcta-fecha { display: flex; align-items: center; gap: 10px; margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.25); font-size: 13px; }
.oi-jobcta-fecha .dashicons { color: rgba(255,255,255,.85); }
.oi-jobcta-fecha span { display: block; color: rgba(255,255,255,.8); }
.oi-jobcta-fecha strong { display: block; color: #fff; font-size: 15px; }

.oi-jobcard { background: #fff; border: 1px solid #eceaf6; border-radius: 18px; padding: 22px; box-shadow: 0 1px 3px rgba(16,24,40,.06); }
.oi-jobcard h4 { margin: 0 0 16px; font-size: 16px; font-weight: 700; color: #101828; }
.oi-joblist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.oi-joblist li { display: flex; gap: 12px; align-items: flex-start; }
.oi-joblist-ico { flex: 0 0 34px; width: 34px; height: 34px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--oi-primario) 12%, #fff); color: var(--oi-primario); font-size: 18px; }
.oi-joblist-lbl { display: block; font-size: 12.5px; color: #98a2b3; }
.oi-joblist-val { display: block; font-size: 14.5px; color: #101828; font-weight: 600; }

.oi-jobshare-sub { color: #667085; font-size: 13.5px; margin: -8px 0 14px; }
.oi-jobshare-btns { display: flex; gap: 12px; }
.oi-share { width: 42px; height: 42px; border-radius: 50%; border: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; background: #f2f4f8; color: #475467; transition: transform .12s; }
.oi-share:hover { transform: translateY(-2px); }
.oi-share .dashicons { font-size: 20px; width: 20px; height: 20px; }
.oi-share-in { background: #e8f1fb; color: #0a66c2; }
.oi-share-fb { background: #e8f0fe; color: #1877f2; }
.oi-share-wa { background: #e6f7ec; color: #1faa52; }
.oi-share-copy { background: color-mix(in srgb, var(--oi-primario) 12%, #fff); color: var(--oi-primario); }
.oi-share-copy.oi-copiado { background: #e7f6ec; color: #067647; }

/* Formulario de postulación dentro de la sección */
.oi-jobsec-postular .oi-postulacion-form input[type="text"],
.oi-jobsec-postular .oi-postulacion-form input[type="email"],
.oi-jobsec-postular .oi-postulacion-form input[type="date"],
.oi-jobsec-postular .oi-postulacion-form input[type="file"],
.oi-jobsec-postular .oi-postulacion-form textarea { width: 100%; }

@media (max-width: 900px) {
  .oi-jobgrid { grid-template-columns: 1fr; }
  .oi-jobside { position: static; }
  .oi-jobhero { flex-direction: column; }
  .oi-jobhero-icon { width: 72px; height: 72px; flex-basis: 72px; }
}

/* ---- Overrides para ganar a la normalización del detalle (usa !important) ---- */
.oi-jobpage .oi-jobsec-head h2 { margin: 0 !important; border: none !important; padding: 0 !important; font-size: 19px !important; }
.oi-jobcta h3 { font-size: 20px !important; margin: 0 0 8px !important; color: #fff !important; }
.oi-jobcard h4 { font-size: 16px !important; margin: 0 0 16px !important; }
.oi-jobcta p { margin: 0 0 18px !important; }
.oi-jobhero-extracto { margin: 0 !important; }
.oi-jobshare-btns .oi-share { background: #f2f4f8 !important; padding: 0 !important; border: none !important; border-radius: 50% !important; width: 42px !important; height: 42px !important; color: #475467 !important; }
.oi-jobshare-btns .oi-share-in { background: #e8f1fb !important; color: #0a66c2 !important; }
.oi-jobshare-btns .oi-share-fb { background: #e8f0fe !important; color: #1877f2 !important; }
.oi-jobshare-btns .oi-share-wa { background: #e6f7ec !important; color: #1faa52 !important; }
.oi-jobshare-btns .oi-share-copy { background: color-mix(in srgb, var(--oi-primario) 12%, #fff) !important; color: var(--oi-primario) !important; }
.oi-jobshare-btns .oi-share-copy.oi-copiado { background: #e7f6ec !important; color: #067647 !important; }
.oi-jobpage .oi-job-titulo { font-family: inherit !important; font-size: 30px !important; font-weight: 800 !important; line-height: 1.15 !important; margin: 0 0 12px !important; color: #101828; }

/* Etiqueta destacada de visibilidad (Interna / Externa) en las cards */
.oi-job-visibilidad { margin: 0 0 10px; }
.oi-tag-visibilidad {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 5px 12px; border-radius: 20px;
    font-size: 12.5px; font-weight: 700; letter-spacing: .02em;
    border: 1px solid transparent;
}
.oi-tag-visibilidad .dashicons { font-size: 15px; width: 15px; height: 15px; }
.oi-tag-visibilidad-interna { background: #eaecfb; color: #3538cd; border-color: #c7cbf7; }
.oi-tag-visibilidad-externa { background: #e7f6ec; color: #067647; border-color: #b7e4c8; }
.oi-tag-visibilidad-promocion { background: #fef4e6; color: #b54708; border-color: #fbd9a8; }

/* Bloque "Evaluación psicotécnica" del formulario de postulación */
.oi-psico { border: 1px solid #e5e9f0; border-left: 4px solid var(--oi-primario); background: #fbfcfe; border-radius: 10px; padding: 16px 18px; margin: 20px 0; }
.oi-psico-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.oi-psico-head h3 { margin: 0 !important; font-size: 17px !important; font-weight: 700 !important; color: #101828; }
.oi-psico-head .dashicons { color: var(--oi-primario); }
.oi-psico-obligatoria { background: #fdeceb; color: #b42318; border-radius: 14px; padding: 2px 10px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.oi-psico-intro { color: #475467; font-size: 14px; line-height: 1.55; margin: 0 0 14px; }
.oi-psico-datos { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.oi-psico-dato { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.oi-psico-lbl { min-width: 88px; font-size: 13px; font-weight: 600; color: #667085; }
.oi-psico-val { background: #fff; border: 1px solid #e5e9f0; border-radius: 6px; padding: 5px 10px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13.5px; color: #101828; }
.oi-psico-ir .dashicons { font-size: 16px; width: 16px; height: 16px; }
.oi-psico-check { background: #f8fafc; border: 1px solid #e5e9f0; border-radius: 8px; padding: 12px 14px; margin: 18px 0; }
.oi-psico-check label { display: flex; align-items: flex-start; gap: 9px; font-size: 14px; color: #344054; cursor: pointer; font-weight: 500; }
