/*
 * Autor: Sergio Martinez de Unlockers Cloud | URL: https://1lockers.net
 * Trabaja con nosotros (marca v2): navy, esmeralda, azul rey, oliva, papel.
 * Clases propias (tc-*) para no depender del Tailwind compilado.
 */
.tc { --navy:#0B1F3A; --esm:#0B5A43; --esm-claro:#4CC79A; --rey:#1E40AF; --oliva:#5C6A2C; --papel:#F5F7F4; --blanco:#fff;
  --linea:#D5DCD6; --suave:#4A5B6C; --error:#B42318; --mono:'IBM Plex Mono',ui-monospace,monospace; --display:'Archivo',Arial,sans-serif;
  color:var(--navy); background:var(--papel); font-size:16px; line-height:1.6; }
.tc *, .tc *::before, .tc *::after { box-sizing:border-box; }
.tc-wrap { width:100%; max-width:1080px; margin-inline:auto; padding-inline:20px; }
.tc-narrow { max-width:820px; }
:where(.tc) :is(h1,h2,h3) { color:var(--navy); margin:0; text-wrap:balance; }
:where(.tc) p { margin:0; }
:where(.tc) a { color:var(--rey); text-underline-offset:3px; }

/* Hero */
.tc-hero { background-color:var(--navy); background-image:radial-gradient(#1C3150 1px,transparent 1px); background-size:24px 24px; color:var(--papel); padding-block:64px 56px; }
.tc-hero h1 { color:var(--papel); font-size:clamp(34px,5.4vw,60px); line-height:1.05; font-weight:700; max-width:18ch; }
.tc-hero__lead { margin-top:22px; font-size:clamp(17px,1.8vw,20px); line-height:1.55; color:#C9D2CE; max-width:56ch; }
.tc-hero__back { display:inline-block; margin-bottom:20px; font:500 14px/20px var(--mono); color:var(--esm-claro) !important; text-decoration:none; }
.tc-hero__back:hover { text-decoration:underline; }
.tc-facts { display:flex; flex-wrap:wrap; gap:12px 32px; margin:28px 0 0; padding:20px 0 0; border-top:1px solid #24405F; list-style:none; }
.tc-facts li { font-size:15px; color:#C9D2CE; }
.tc-facts b { display:block; font:500 12px/18px var(--mono); letter-spacing:.06em; color:var(--esm-claro); }
.tc-preview { background:#FFF4D6; color:#5B4300; font-size:14px; padding:10px 0; border-bottom:1px solid #E8D28A; }

/* Secciones */
.tc-sec { padding-block:64px; border-bottom:1px solid var(--linea); }
.tc-sec--blanco { background:var(--blanco); }
.tc-sec h2 { font-size:clamp(26px,3.2vw,36px); line-height:1.15; font-weight:700; }
.tc-sec__lead { margin-top:12px; color:var(--suave); font-size:18px; max-width:60ch; }
.tc-sec__body { margin-top:36px; }

/* Vacantes */
.tc-jobs { list-style:none; margin:0; padding:0; border-top:2px solid var(--navy); }
.tc-job { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px 32px; align-items:center; padding:28px 0; border-bottom:1px solid var(--linea); }
.tc-job h3 { font-size:clamp(20px,2.2vw,26px); line-height:1.2; font-weight:600; }
.tc-job h3 a { color:var(--navy); text-decoration:none; }
.tc-job h3 a:hover { color:var(--rey); }
.tc-job p { margin-top:8px; color:var(--suave); max-width:62ch; }
.tc-job__meta { display:flex; flex-wrap:wrap; gap:6px 20px; margin-top:14px; font:500 13px/20px var(--mono); color:var(--esm); }
.tc-empty { border:1px dashed var(--linea); border-radius:8px; padding:32px; background:var(--blanco); color:var(--suave); }
.tc-empty b { display:block; color:var(--navy); font:600 20px/1.3 var(--display); font-stretch:112%; margin-bottom:6px; }

/* Botones */
.tc-btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 24px; border-radius:4px; border:1px solid var(--rey); background:var(--rey); color:#fff !important; font:600 16px/1 inherit; text-decoration:none; cursor:pointer; white-space:nowrap; transition:background-color .15s; }
.tc-btn:hover { background:#19379A; }
.tc-btn:focus-visible, .tc a:focus-visible, .tc-file__pick:focus-within, .tc input:focus-visible, .tc select:focus-visible, .tc textarea:focus-visible { outline:3px solid #8EA8FF; outline-offset:2px; }
.tc-btn[disabled] { opacity:.55; cursor:not-allowed; }
.tc-btn--sec { background:var(--blanco); color:var(--navy) !important; border-color:#9AA8A0; }
.tc-btn--sec:hover { background:var(--papel); }

/* Pasos del proceso */
.tc-steps { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; counter-reset:paso; border-top:2px solid var(--esm); }
.tc-steps li { counter-increment:paso; padding:20px 24px 0 0; }
.tc-steps li::before { content:counter(paso,decimal-leading-zero); display:block; font:500 14px/20px var(--mono); color:var(--esm); margin-bottom:10px; }
.tc-steps b { display:block; font:600 19px/1.25 var(--display); font-stretch:112%; margin-bottom:6px; }
.tc-steps span { color:var(--suave); font-size:15px; line-height:1.5; display:block; }

/* Quiénes somos */
.tc-mv { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 48px; }
.tc-mv dt { font:500 13px/20px var(--mono); letter-spacing:.08em; color:var(--esm); padding-top:10px; border-top:2px solid var(--esm); display:inline-block; margin-bottom:12px; }
.tc-mv dd { margin:0; font:500 clamp(18px,1.9vw,22px)/1.4 var(--display); font-stretch:112%; color:var(--navy); }
.tc-meta { margin-top:40px; display:grid; grid-template-columns:auto minmax(0,1fr); gap:28px; align-items:center; background:var(--navy); color:var(--papel); border-radius:8px; padding:28px 32px; }
.tc-meta .n { font:500 clamp(48px,7vw,80px)/1 var(--mono); letter-spacing:-.02em; color:#fff; }
.tc-meta p { color:#C9D2CE; max-width:44ch; }
.tc-meta p b { display:block; color:#fff; font:600 20px/1.3 var(--display); font-stretch:112%; }
.tc-vals { list-style:none; margin:40px 0 0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.tc-vals li { background:var(--blanco); border:1px solid var(--linea); border-radius:8px; overflow:hidden; }
.tc-vals i { display:block; height:8px; }
.tc-vals div { padding:16px; }
.tc-vals b { display:block; font:600 18px/1.25 var(--display); font-stretch:112%; }
.tc-vals span { display:block; margin-top:6px; font-size:14px; line-height:1.45; color:var(--suave); }

/* Detalle */
.tc-prose p + p { margin-top:14px; }
.tc-prose { font-size:17px; max-width:66ch; }
.tc-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--linea); }
.tc-list li { position:relative; padding:14px 0 14px 28px; border-bottom:1px solid var(--linea); }
.tc-list li::before { content:""; position:absolute; left:2px; top:23px; width:10px; height:10px; background:var(--esm); border-radius:2px; }
.tc-block + .tc-block { margin-top:36px; }
.tc-block h3 { font-size:20px; font-weight:600; margin-bottom:12px; }

/* Formulario */
.tc-form fieldset { margin:0; min-width:0; }
.tc-step { background:var(--blanco); border:1px solid var(--linea); border-radius:8px; padding:28px; }
.tc-step + .tc-step { margin-top:20px; }
.tc-step legend { float:left; width:100%; padding:0; margin-bottom:4px; font:600 22px/1.25 var(--display); font-stretch:112%; color:var(--navy); }
.tc-step legend small { display:block; font:500 13px/20px var(--mono); color:var(--esm); letter-spacing:.06em; margin-bottom:4px; }
.tc-step__hint { clear:both; color:var(--suave); font-size:15px; margin-bottom:20px; }
.tc-grid { clear:both; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px; }
.tc-field--full { grid-column:1/-1; }
.tc-field label, .tc-q > span { display:block; font-weight:600; font-size:15px; margin-bottom:6px; }
.tc-field small, .tc-q small { display:block; color:var(--suave); font-size:14px; margin-top:4px; font-weight:400; }
.tc input[type=text], .tc input[type=email], .tc input[type=tel], .tc input[type=number], .tc input[type=url], .tc select, .tc textarea {
  width:100%; min-height:48px; padding:10px 12px; border:1px solid #9AA8A0; border-radius:4px; background:#fff; color:var(--navy); font:400 16px/1.4 inherit; }
.tc textarea { min-height:110px; resize:vertical; }
.tc-opt { font-weight:400; color:var(--suave); }
.tc-err { color:var(--error); font-size:14px; font-weight:500; margin-top:6px; }
.tc .tc-has-err :is(input, select, textarea) { border-color:var(--error); box-shadow:0 0 0 1px var(--error); }
.tc .tc-check.tc-has-err input { box-shadow:none; outline:2px solid var(--error); outline-offset:1px; }
.tc-alert { border:1px solid #F0B4AE; background:#FDECEA; color:#7A1A12; border-radius:8px; padding:14px 16px; margin-bottom:20px; font-size:15px; }
.tc-checks { clear:both; list-style:none; margin:0; padding:0; }
.tc-check { display:grid; grid-template-columns:24px minmax(0,1fr); gap:12px; padding:14px 0; border-top:1px solid var(--linea); cursor:pointer; }
.tc-check input { width:22px; height:22px; margin:2px 0 0; accent-color:var(--esm); }
.tc-radios { display:flex; flex-wrap:wrap; gap:10px; }
.tc-radio { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 14px; border:1px solid #9AA8A0; border-radius:4px; background:#fff; cursor:pointer; font-size:15px; }
.tc-radio:has(input:checked) { border-color:var(--esm); background:#E8F3EE; font-weight:600; }
.tc-radio input { accent-color:var(--esm); width:18px; height:18px; margin:0; }
.tc-q + .tc-q { margin-top:22px; }
.tc-qs { clear:both; }

/* Documentos */
.tc-docs { clear:both; list-style:none; margin:0; padding:0; }
.tc-doc { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 20px; padding:18px 0; border-top:1px solid var(--linea); align-items:start; }
.tc-doc__name { font-weight:600; }
.tc-doc__help { color:var(--suave); font-size:14px; margin-top:2px; }
.tc-file__pick { position:relative; display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border:1px solid var(--navy); border-radius:4px; background:#fff; font-weight:600; font-size:15px; cursor:pointer; white-space:nowrap; }
.tc-file__pick:hover { background:var(--papel); }
.tc-file__pick input { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
.tc-doc__files { grid-column:1/-1; list-style:none; margin:0; padding:0; }
.tc-doc__files li { display:flex; align-items:center; gap:10px; padding:8px 12px; margin-top:8px; background:#E8F3EE; border-radius:4px; font-size:14px; }
.tc-doc__files li.is-up { background:#EEF1F6; }
.tc-doc__files li.is-bad { background:#FDECEA; color:#7A1A12; }
.tc-doc__files .nm { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:500; }
.tc-doc__files .sz { font:400 13px/1 var(--mono); color:var(--suave); white-space:nowrap; }
.tc-doc__files button { border:0; background:none; color:var(--navy); text-decoration:underline; cursor:pointer; font-size:14px; padding:4px; }
.tc-doc.is-done .tc-doc__name::after { content:" · listo"; color:var(--esm); font-weight:500; }
.tc-send { margin-top:24px; display:flex; flex-wrap:wrap; gap:16px 24px; align-items:center; }
.tc-send p { color:var(--suave); font-size:14px; max-width:46ch; }

.tc-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.tc-doc { transition:background-color .12s; }
.tc-doc.is-over { background:#E8F3EE; outline:2px dashed var(--esm); outline-offset:4px; border-radius:4px; }
.tc-progress { margin-top:20px; padding:12px 14px; border-radius:4px; background:var(--papel); font-size:15px; }
.tc-progress:empty { display:none; }
.tc-progress.is-ok { background:#E8F3EE; color:var(--esm); font-weight:600; }
.tc-progress b { font-family:var(--mono); font-weight:500; }
.tc-field .tc-err[hidden], .tc-q .tc-err[hidden] { display:none; }

/* Gracias */
.tc-code { display:inline-block; margin-top:24px; padding:14px 20px; border:1px solid #24405F; border-radius:4px; font:500 24px/1 var(--mono); color:#fff; letter-spacing:.04em; }

@media (max-width:860px) {
  .tc-steps { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:24px; }
  .tc-vals { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .tc-hero { padding-block:44px 40px; }
  .tc-sec { padding-block:44px; }
  .tc-job, .tc-mv, .tc-grid, .tc-meta, .tc-doc { grid-template-columns:1fr; }
  .tc-steps, .tc-vals { grid-template-columns:1fr; }
  .tc-step { padding:20px 16px; }
  .tc-meta { gap:10px; padding:24px; }
  .tc-btn { width:100%; }
}
@media (prefers-reduced-motion:reduce) { .tc-btn { transition:none; } }
