/* ICC · Formulario público de postulación */
.pub-top { background: #fff; border-bottom: 1px solid var(--borde); }
.pub-top-in { max-width: 1120px; margin: 0 auto; padding: .7rem 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.pub-top nav { display: flex; gap: 1.4rem; font: 400 .9rem var(--fuente-titulos); }
.pub-top nav a { color: #333; padding: .3rem 0; border-bottom: 2px solid transparent; }
.pub-top nav a:hover, .pub-top nav a.on { color: var(--rojo); border-bottom-color: var(--rojo); }
.pub-top nav .nav-form { display: contents; }
.pub-top nav .nav-link { font: inherit; color: #333; background: none; border: 0; border-bottom: 2px solid transparent; padding: .3rem 0; cursor: pointer; }
.pub-top nav .nav-link:hover, .pub-top nav .nav-link.on { color: var(--rojo); border-bottom-color: var(--rojo); }
@media (max-width: 640px) { .pub-top nav { display: none; } .pub-top-in { justify-content: center; } }
/* Logos institucionales ICC + FUNCACORR, uno al lado del otro */
.logos { display: inline-flex; align-items: center; gap: 1.1rem; text-decoration: none; }
.logos img { height: 78px; width: auto; display: block; }
.logos-sep { width: 1px; height: 56px; background: var(--borde-2); }
@media (max-width: 640px) { .logos img { height: 52px; } .logos { gap: .8rem; } .logos-sep { height: 38px; } }

.hero { background: linear-gradient(115deg, var(--azul-900) 0%, var(--azul) 45%, #3E8ED8 100%); color: #fff; position: relative; overflow: hidden; }
.hero::after { content: ""; position: absolute; right: -120px; top: -140px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(81, 210, 203, .28), rgba(81, 210, 203, 0) 70%); }
.hero-in { max-width: 1120px; margin: 0 auto; padding: 2.4rem 1.25rem 5.2rem; position: relative; z-index: 1; }
.hero .eyebrow { display: inline-flex; align-items: center; gap: .45rem; font: 500 .78rem var(--fuente-titulos); letter-spacing: .08em; text-transform: uppercase; color: #CFE0FF; margin-bottom: .6rem; }
.hero .eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--rojo); }
.hero h1 { color: #fff; font-size: clamp(1.6rem, 3.4vw, 2.3rem); margin-bottom: .45rem; font-weight: 600; }
.hero p { color: #E3ECFF; max-width: 620px; margin: 0; font-size: 1rem; }

.pub-main { max-width: 1120px; margin: -3.6rem auto 0; padding: 0 1.25rem 3rem; position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 1.5rem; align-items: start; }
@media (max-width: 960px) { .pub-main { grid-template-columns: 1fr; } .pub-aside { order: 2; } }
.form-card { background: #fff; border-radius: 14px; box-shadow: var(--sombra-2); border: 1px solid var(--borde); overflow: hidden; }

/* Indicador de progreso */
.steps { display: flex; padding: 1.1rem 1.5rem 0; gap: .4rem; list-style: none; margin: 0; counter-reset: paso; }
.steps li { flex: 1; display: flex; flex-direction: column; gap: .45rem; font: 500 .78rem var(--fuente-titulos); color: var(--texto-3); min-width: 0; }
.steps li .bar { height: 4px; border-radius: 4px; background: var(--borde); transition: background var(--t); }
.steps li span { display: flex; align-items: center; gap: .35rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.steps li span::before { counter-increment: paso; content: counter(paso); display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--borde); color: var(--texto-2); font-size: .7rem; flex: none; transition: background var(--t), color var(--t); }
.steps li.done .bar, .steps li.on .bar { background: var(--azul); }
.steps li.on { color: var(--azul-900); }
.steps li.on span::before { background: var(--azul); color: #fff; }
.steps li.done span::before { content: "✓"; background: var(--ok); color: #fff; }
@media (max-width: 560px) { .steps li span { font-size: 0; gap: 0; } .steps li.on span { font-size: .78rem; gap: .35rem; } }

.paso { display: none; padding: 1.5rem; }
.paso.on { display: block; animation: aparecer .25s ease; }
@keyframes aparecer { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.paso-head { margin-bottom: 1.2rem; }
.paso-head h2 { margin-bottom: .2rem; }
.paso-head p { color: var(--texto-2); margin: 0; font-size: .92rem; }
.paso-foot { display: flex; justify-content: space-between; gap: .75rem; padding: 1rem 1.5rem; background: #FAFBFE; border-top: 1px solid var(--borde); }
.paso-foot .btn-sec[hidden] { display: none; }

/* Drag & Drop */
.drop { border: 2px dashed var(--borde-2); border-radius: 12px; background: #FAFBFE; padding: 2rem 1.25rem; text-align: center; cursor: pointer; transition: border-color var(--t), background var(--t); position: relative; }
.drop:hover, .drop.over { border-color: var(--azul-medio); background: var(--azul-50); }
.drop.is-invalid { border-color: var(--danger); background: #FFFBFB; }
.drop input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.drop-ico { width: 54px; height: 54px; border-radius: 50%; background: #fff; display: grid; place-items: center; margin: 0 auto .8rem; box-shadow: var(--sombra-1); color: var(--azul); }
.drop-ico .icon { width: 26px; height: 26px; }
.drop b { font-family: var(--fuente-titulos); color: var(--azul-900); }
.drop .muted { font-size: .85rem; margin: .3rem 0 0; }
.archivo { display: flex; align-items: center; gap: .85rem; padding: .85rem 1rem; border: 1px solid var(--borde); border-radius: 12px; background: #fff; }
.archivo[hidden] { display: none; }
.archivo-ico { width: 42px; height: 42px; border-radius: 10px; background: var(--rojo-50); color: var(--rojo); display: grid; place-items: center; font: 700 .7rem var(--fuente-titulos); flex: none; }
.archivo-ico.img { background: var(--azul-50); color: var(--azul); }
.archivo-info { flex: 1; min-width: 0; }
.archivo-info b { display: block; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.archivo-info small { color: var(--texto-3); }
.archivo-acc { display: flex; gap: .35rem; }
.upload-progress { height: 6px; border-radius: 6px; background: var(--borde); overflow: hidden; margin-top: .8rem; display: none; }
.upload-progress.on { display: block; }
.upload-progress i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--azul), var(--azul-medio)); transition: width .2s; }

/* Categorías */
.opciones { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-bottom: 1.1rem; }
@media (max-width: 700px) { .opciones { grid-template-columns: 1fr; } }
.opcion { position: relative; }
.opcion input { position: absolute; opacity: 0; }
.opcion label { display: flex; flex-direction: column; gap: .2rem; height: 100%; padding: .95rem 1rem; border: 1.5px solid var(--borde); border-radius: 12px; cursor: pointer; transition: border-color var(--t), background var(--t), box-shadow var(--t); background: #fff; }
.opcion label b { font: 600 .95rem var(--fuente-titulos); color: var(--azul-900); }
.opcion label small { color: var(--texto-2); font-size: .8rem; }
.opcion input:checked + label { border-color: var(--azul); background: var(--azul-50); box-shadow: 0 0 0 3px rgba(59, 87, 157, .12); }
.opcion input:focus-visible + label { outline: 3px solid rgba(79, 109, 205, .45); }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.chip input { position: absolute; opacity: 0; }
.chip label { display: inline-block; padding: .5rem .9rem; border: 1.5px solid var(--borde); border-radius: 999px; cursor: pointer; font-size: .9rem; background: #fff; transition: all var(--t); }
.chip input:checked + label { border-color: var(--azul); background: var(--azul); color: #fff; }
.chip input:focus-visible + label { outline: 3px solid rgba(79, 109, 205, .45); }
.bloque[hidden] { display: none; }

.resumen { border: 1px solid var(--borde); border-radius: 12px; padding: .3rem 1rem; margin-bottom: 1.1rem; background: #FAFBFE; }
.resumen dl { display: grid; grid-template-columns: 150px 1fr; margin: 0; }
.resumen dt, .resumen dd { padding: .5rem 0; border-bottom: 1px solid var(--borde); margin: 0; font-size: .9rem; }
.resumen dt { color: var(--texto-2); }
.resumen dd { font-weight: 600; word-break: break-word; }
.resumen dl > :nth-last-child(-n+2) { border-bottom: 0; }
@media (max-width: 480px) { .resumen dl { grid-template-columns: 1fr; } .resumen dt { border: 0; padding-bottom: 0; } }

/* Confirmación */
.exito { padding: 2.5rem 1.5rem; text-align: center; }
.exito-ico { width: 72px; height: 72px; border-radius: 50%; background: var(--ok-50); color: var(--ok); display: grid; place-items: center; margin: 0 auto 1rem; }
.exito-ico .icon { width: 36px; height: 36px; stroke-width: 2.4; }
.exito .numero { display: inline-block; margin: .6rem 0 1rem; padding: .55rem 1.1rem; border-radius: 10px; background: var(--azul-50); font: 600 1.15rem var(--fuente-titulos); color: var(--azul-900); letter-spacing: .03em; }

/* Lateral informativo */
.pub-aside .card { margin-bottom: 1rem; }
.pub-aside h3 { font-size: .95rem; display: flex; align-items: center; gap: .45rem; }
.pub-aside ul { margin: 0; padding-left: 1.1rem; color: var(--texto-2); font-size: .88rem; }
.pub-aside li { margin-bottom: .35rem; }
.pub-aside .card-accent { border-top: 3px solid var(--rojo); }

.pub-foot { background: #242626; color: #B8BCC2; font-size: .85rem; }
.pub-foot-in { max-width: 1120px; margin: 0 auto; padding: 1.6rem 1.25rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; }
.pub-foot a { color: #fff; }
.hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.pub-simple { max-width: 640px; margin: -3.6rem auto 3rem; padding: 0 1.25rem; position: relative; z-index: 2; }
.pub-simple .form-card { padding: 1.75rem; }
.texto-legal h2 { margin-top: 1.4rem; font-size: 1.05rem; }
.texto-legal { font-size: .93rem; color: #3a404c; }

/* ---------- Lugar de residencia: buscador con lista ---------- */
.label-nota { font-weight: 400; color: var(--texto-3); font-family: var(--fuente-texto, inherit); }
.combo { position: relative; }
.combo .input { padding-right: 2.4rem; }
.combo-flecha { position: absolute; right: .7rem; top: 50%; transform: translateY(-50%); color: var(--texto-3); pointer-events: none; display: flex; }
.combo-flecha svg { width: 18px; height: 18px; }
.combo-lista { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); max-height: 270px; overflow-y: auto; margin: 0; padding: .3rem; list-style: none; background: #fff; border: 1px solid var(--borde-2); border-radius: var(--radius-sm); box-shadow: var(--sombra-2); }
.combo-lista.arriba { top: auto; bottom: calc(100% + 4px); }
.combo-lista li { padding: .5rem .65rem; border-radius: 6px; cursor: pointer; display: flex; justify-content: space-between; gap: .8rem; font-size: .93rem; }
.combo-lista li small { color: var(--texto-3); white-space: nowrap; }
.combo-lista li[aria-selected="true"], .combo-lista li:hover { background: var(--azul-50); color: var(--azul-900); }
.combo-lista li.otro { border-top: 1px solid var(--borde); margin-top: .25rem; padding-top: .6rem; color: var(--azul); font-weight: 500; }
.combo-lista li.vacio { cursor: default; color: var(--texto-3); background: none; }
.bloque-otro { margin-top: .7rem; }
.bloque-otro label { display: block; margin-bottom: .35rem; }

/* ---------- Aviso: DNI con CV ya cargado ---------- */
.aviso-existente { border: 1px solid #F5D9A8; background: var(--warn-50); border-radius: var(--radius); padding: 1rem 1.1rem; margin: 1rem 0; color: #5C3A00; }
.aviso-existente:focus { outline: 2px solid var(--warn); outline-offset: 2px; }
.aviso-cab { display: flex; align-items: center; gap: .5rem; font-family: var(--fuente-titulos); color: #7A4A00; }
.aviso-cab svg { width: 20px; height: 20px; flex: none; }
.aviso-existente p { margin: .5rem 0; }
.aviso-estado { display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .75rem; border-radius: 999px; font-weight: 600; font-size: .9rem; margin: .2rem 0 .5rem; }
.aviso-estado.ok { background: var(--ok-50); color: var(--ok); border: 1px solid #BFE5D2; }
.aviso-estado.no { background: var(--danger-50); color: var(--danger); border: 1px solid #F3C3CB; }
.aviso-postulaciones { margin: .2rem 0 .8rem; padding-left: 1.1rem; font-size: .9rem; }
.aviso-acciones { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
@media (max-width: 560px) { .aviso-acciones .btn { width: 100%; justify-content: center; } }

/* ---------- Actualizar mi CV ---------- */
.estado-cv { border: 1px solid var(--borde); border-radius: var(--radius); padding: .9rem 1rem; margin: 1rem 0; background: #fff; }
.estado-cv h3 { font-size: 1rem; margin: 0 0 .4rem; }
.drop-actualizar { display: flex; flex-direction: column; align-items: center; gap: .3rem; cursor: pointer; position: relative; }
.drop-actualizar input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.drop-actualizar:focus-within { outline: 2px solid var(--azul); outline-offset: 2px; }
.drop-actualizar.con-archivo { border-color: var(--ok); background: var(--ok-50); }
.drop-elegido { margin-top: .4rem; font-weight: 600; color: var(--ok); word-break: break-all; }

/* ---------- Política de privacidad en ventana ---------- */
.modal-priv { width: min(820px, calc(100vw - 24px)); max-height: calc(100vh - 40px); padding: 0; border: 0; border-radius: 14px; box-shadow: 0 20px 60px rgba(20, 30, 60, .35); display: none; flex-direction: column; }
.modal-priv[open] { display: flex; }
.modal-priv::backdrop { background: rgba(20, 30, 60, .5); }
.mp-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.4rem .9rem; border-bottom: 1px solid var(--borde); }
.mp-cab h2 { margin: 0; font-size: 1.1rem; }
.mp-cerrar { border: 0; background: none; font-size: 1.7rem; line-height: 1; color: var(--texto-3); cursor: pointer; padding: 0 .2rem; }
.mp-cerrar:hover { color: var(--rojo); }
.mp-cuerpo { padding: .4rem 1.4rem 1rem; overflow-y: auto; }
.mp-pie { padding: .8rem 1.4rem; border-top: 1px solid var(--borde); display: flex; justify-content: flex-end; }
