:root{
  --tc-blue:#205b8c;--tc-blue-dark:#123f65;--tc-blue-soft:#eaf2f8;
  --tc-orange:#f36c21;--tc-orange-dark:#d9570d;--tc-paper:#f7f7f4;
  --tc-ink:#18242d;--tc-muted:#6b7780;--tc-border:#dfe6e9;--tc-surface:#fff;
  --tc-shadow:0 18px 48px rgba(23,63,96,.12);--tc-radius:18px;
}
html,body,button,input,select,textarea{font-family:"Poppins","Segoe UI",Arial,sans-serif!important}
body{background:var(--tc-paper);color:var(--tc-ink);font-weight:400}
h1,h2,h3,h4,strong{font-family:"Poppins","Segoe UI",Arial,sans-serif}
h1{font-weight:800;letter-spacing:-.045em}h2{font-weight:750;letter-spacing:-.03em}h3{font-weight:700}.muted{color:var(--tc-muted)}
.topbar{background:#fff;border-bottom:1px solid #e6ecef;position:sticky;top:0;z-index:50;box-shadow:0 4px 18px rgba(14,40,58,.04)}
.header{min-height:82px}.header nav a,.actions a{font-weight:500}.brand-logo img{max-height:44px}.brand-portal{font-weight:700}
.btn,button{border-radius:10px;font-weight:650;background:var(--tc-blue);border-color:var(--tc-blue);box-shadow:none}.btn:hover,button:hover{background:var(--tc-blue-dark);border-color:var(--tc-blue-dark)}
.btn.orange,.button-orange{background:var(--tc-orange);border-color:var(--tc-orange)}.btn.orange:hover,.button-orange:hover{background:var(--tc-orange-dark);border-color:var(--tc-orange-dark)}
.overline{font-weight:700;color:var(--tc-orange);letter-spacing:.17em}

/* Hero editorial */
.tc-hero{max-width:1480px;margin:28px auto 0;padding:0 28px}.tc-hero__frame{position:relative;min-height:510px;overflow:hidden;border-radius:22px;background:linear-gradient(112deg,#153f66 0%,#205b8c 36%,#e9542d 72%,#f36c21 100%);box-shadow:var(--tc-shadow)}
.tc-hero__copy{position:relative;z-index:3;width:58%;padding:62px 34px 58px 58px;color:#fff}.tc-hero__copy .overline{color:#ffd9c2;margin-bottom:16px}.tc-hero__copy h1{max-width:760px;margin-bottom:16px;font-size:clamp(3.05rem,5.3vw,5.75rem);line-height:.98;color:#fff}.tc-hero__copy h1 span{font-weight:500}.tc-hero__copy p{max-width:690px;font-size:18px;line-height:1.65;color:#f5f9fc}.tc-hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.tc-hero__actions .btn{padding:14px 22px}.tc-hero__actions .btn.secondary{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.6);color:#fff}.tc-hero__actions .btn.secondary:hover{background:#fff;color:var(--tc-blue-dark)}
.tc-hero__photo{position:absolute;inset:0 0 0 auto;width:52%;z-index:1}.tc-hero__photo:before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,#205b8c 0%,rgba(32,91,140,.77) 12%,rgba(243,108,33,.22) 44%,rgba(243,108,33,.04) 100%)}.tc-hero__photo img{width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:saturate(.92) contrast(.98)}
.tc-search-strip{position:relative;z-index:4;display:grid;grid-template-columns:1.2fr .8fr .8fr auto;gap:0;width:min(1180px,calc(100% - 80px));margin:-42px auto 0;background:#fff;border:1px solid var(--tc-border);border-radius:14px;box-shadow:0 20px 48px rgba(24,58,84,.16);overflow:hidden}.tc-search-strip label{padding:13px 18px 10px;margin:0;border-right:1px solid var(--tc-border);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tc-blue)}.tc-search-strip input,.tc-search-strip select{border:0;margin:4px 0 0;padding:0;background:transparent;font-size:14px;font-weight:500;color:var(--tc-ink)}.tc-search-strip button{border-radius:0;min-width:150px;background:var(--tc-orange);border-color:var(--tc-orange)}

/* Dos rutas principales */
.profile-paths{padding-top:76px}.profile-paths__intro{display:grid!important;grid-template-columns:minmax(560px,1.2fr) minmax(300px,.8fr)!important;gap:16px 60px!important;align-items:end!important;margin-bottom:30px}.profile-paths__intro .overline{grid-column:1/-1;margin:0;color:var(--tc-orange)}.profile-paths__intro h2{margin:0;white-space:nowrap;font-size:clamp(2rem,3vw,3rem)!important;font-weight:800!important;color:var(--tc-blue-dark)!important;line-height:1.08}.profile-paths__intro p{max-width:560px;margin:0;font-size:15px;line-height:1.7;color:var(--color-muted)}.profile-paths__grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important}.profile-path{position:relative!important;display:block!important;min-height:350px!important;padding:38px!important;overflow:hidden!important;border:0!important;border-radius:18px!important;background:var(--path-accent)!important;color:#fff!important;box-shadow:var(--tc-shadow)!important;isolation:isolate!important;transition:transform .22s ease,box-shadow .22s ease!important}.profile-path:after{content:"";position:absolute;right:-70px;bottom:-92px;width:245px;height:245px;border:48px solid rgba(255,255,255,.10);border-radius:50%;z-index:-1}.profile-path:hover{transform:translateY(-6px);color:#fff!important;box-shadow:0 24px 55px rgba(18,74,118,.22)!important}.profile-path--blue{--path-accent:#205b8c}.profile-path--orange{--path-accent:#f37025}.profile-path__number{position:absolute;right:30px;top:25px;color:rgba(255,255,255,.82)!important;font-size:12px;font-weight:600}.profile-path__icon{display:flex!important;width:58px;height:58px;align-items:center;justify-content:center;margin-bottom:30px;border-radius:50%;background:#fff!important;color:var(--path-accent)!important;font-size:22px;font-weight:700}.profile-path h3{margin:0 0 18px!important;color:#fff!important;font-size:clamp(1.75rem,2.4vw,2.45rem)!important;line-height:1.14!important;font-weight:800!important;letter-spacing:-.03em}.profile-path p{max-width:38ch;margin:0;color:rgba(255,255,255,.92)!important;font-size:15px!important;line-height:1.75!important;font-weight:400}.profile-path strong{position:absolute;left:38px;bottom:32px;color:#fff!important;font-size:13px;font-weight:700}.profile-path strong span{color:#fff!important}

/* Vacantes públicas */
.jobs-page{padding:46px 0 80px}.jobs-hero{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:24px}.jobs-hero h1{margin:0;font-size:clamp(2.7rem,5vw,4.8rem);color:var(--tc-blue-dark)}.jobs-filter-bar{display:grid;grid-template-columns:1.25fr .85fr .85fr auto;gap:12px;padding:18px;background:#fff;border:1px solid var(--tc-border);border-radius:16px;box-shadow:0 10px 34px rgba(22,65,97,.08);margin-bottom:18px}.jobs-filter-bar label{margin:0;font-size:11px;font-weight:650;color:#4f5c65}.jobs-filter-bar input,.jobs-filter-bar select{margin:7px 0 0;border-radius:9px}.jobs-filter-bar button{align-self:end;min-height:45px;background:var(--tc-orange);border-color:var(--tc-orange)}.advanced-filters{margin:0 0 28px;background:#fff;border:1px solid var(--tc-border);border-radius:14px;padding:0 18px}.advanced-filters summary{padding:15px 0;font-weight:650;color:var(--tc-blue);cursor:pointer}.advanced-filters__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 18px;padding:0 0 16px}.jobs-results-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.jobs-results-head h2{font-size:22px;margin:0}.job-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.job-card{padding:0!important;min-height:100%!important;overflow:hidden;border:1px solid var(--tc-border)!important;border-top:1px solid var(--tc-border)!important;border-radius:16px;background:#fff;box-shadow:0 8px 30px rgba(22,65,97,.07);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.job-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(22,65,97,.13);border-color:#c7d7e2!important}.job-card__media{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,#eaf2f8,#f8e8df);overflow:hidden}.job-card__media img{width:100%;height:100%;object-fit:cover}.job-card__media-fallback{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(135deg,#dceaf4 0%,#eff5f8 52%,#fde8db 100%);color:var(--tc-blue);font-size:34px;font-weight:800}.job-card__logo{position:absolute;left:18px;bottom:14px;width:48px;height:48px;border-radius:12px;background:#fff;display:grid;place-items:center;padding:7px;box-shadow:0 7px 22px rgba(20,55,80,.16)}.job-card__logo img{max-width:100%;max-height:100%;object-fit:contain}.job-card__body{display:flex;flex-direction:column;min-height:330px;padding:22px}.job-card__company{font-size:12px;font-weight:650;color:var(--tc-orange);margin-bottom:7px}.job-card h3{font-size:21px!important;line-height:1.28;margin:0 0 10px!important;color:var(--tc-blue-dark)}.job-card__meta{font-size:12px;color:var(--tc-muted);margin-bottom:12px}.job-card__excerpt{font-size:13px;line-height:1.65;color:#58656d;margin-bottom:16px}.job-card__salary{font-weight:700;color:var(--tc-ink);margin-top:auto;margin-bottom:14px}.job-card__actions{display:flex;align-items:center;gap:10px;padding-top:14px;border-top:1px solid var(--tc-border)}.job-card__actions .btn{margin-left:auto;padding:9px 15px;background:var(--tc-orange);border-color:var(--tc-orange)}.job-share{padding:8px 4px!important;background:transparent!important;border:0!important;box-shadow:none!important;color:var(--tc-blue)!important;font-weight:600}.job-share:hover{color:var(--tc-orange)!important}.job-card__date{font-size:11px;color:var(--tc-muted)}
.job-detail-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:38px;align-items:center;padding:42px 0}.job-detail-hero__copy h1{font-size:clamp(2.7rem,5vw,4.5rem)}.job-detail-hero__media{min-height:350px;border-radius:18px;overflow:hidden;background:linear-gradient(135deg,#dceaf4,#f9e4d8)}.job-detail-hero__media img{width:100%;height:100%;object-fit:cover}

/* Admin */
.admin{background:#f5f7f8}.admin .topbar{position:sticky;top:0}.admin .subnav{gap:8px;flex-wrap:wrap;padding:12px 0}.admin .subnav a{padding:8px 12px;border-radius:8px;font-size:12px;font-weight:600}.admin .subnav a:hover{background:#fff;color:var(--tc-blue)}.admin .subnav a[aria-current=page]{background:var(--tc-blue);color:#fff;border:0}.admin .page-head{padding-top:36px}.admin .page-head h1{font-weight:800;color:var(--tc-blue-dark)}.admin .panel{border-radius:14px;border:1px solid var(--tc-border);box-shadow:0 8px 30px rgba(22,65,97,.05)}.admin table{background:#fff}.admin th{color:#64717a;font-weight:700}.admin td{vertical-align:middle}.admin tr:hover td{background:#f8fbfd}.bulk-check{width:18px;height:18px}

@media(max-width:1100px){.job-grid{grid-template-columns:repeat(2,1fr)}.advanced-filters__grid{grid-template-columns:repeat(2,1fr)}.tc-search-strip{grid-template-columns:1fr 1fr}.tc-search-strip button{border-radius:0}.tc-hero__copy{width:67%}.tc-hero__photo{width:50%}}
@media(max-width:900px){.tc-hero{padding:0 18px}.tc-hero__frame{min-height:650px}.tc-hero__copy{width:100%;padding:46px 28px 320px}.tc-hero__photo{top:auto;width:100%;height:330px}.tc-hero__photo:before{background:linear-gradient(180deg,#205b8c 0%,rgba(32,91,140,.35) 30%,rgba(243,108,33,.08) 100%)}.tc-search-strip{width:calc(100% - 36px);margin:-26px auto 0}.profile-paths__intro{grid-template-columns:1fr!important}.profile-paths__intro h2{white-space:normal}.profile-paths__grid{grid-template-columns:1fr!important}.job-detail-hero{grid-template-columns:1fr}.jobs-filter-bar{grid-template-columns:1fr 1fr}.advanced-filters__grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.tc-hero{padding:0}.tc-hero__frame{border-radius:0}.tc-hero__copy{padding:38px 20px 300px}.tc-hero__copy h1{font-size:3rem}.tc-search-strip{grid-template-columns:1fr;width:calc(100% - 28px);border-radius:12px}.tc-search-strip label{border-right:0;border-bottom:1px solid var(--tc-border)}.profile-paths{padding-top:58px}.profile-path{min-height:290px!important;padding:28px!important}.profile-path strong{left:28px}.job-grid{grid-template-columns:1fr}.jobs-filter-bar{grid-template-columns:1fr}.advanced-filters__grid{grid-template-columns:1fr}.jobs-hero{align-items:flex-start;flex-direction:column}.job-card__body{min-height:300px}}

.company-access:before{background:linear-gradient(var(--tc-blue) 0 62%,var(--tc-orange) 62% 100%)!important}.tc-step__icon{color:var(--tc-blue)!important}.tc-steps article:nth-child(2) .tc-step__icon{color:var(--tc-orange)!important}.tc-steps article:nth-child(3) .tc-step__icon{color:var(--tc-blue-dark)!important}.trust-modal__note{border-left-color:var(--tc-orange)!important}.progress span{background:var(--tc-orange)!important}.job-form-image{display:flex;align-items:center;gap:12px;margin:0 0 18px}.job-form-image img{width:160px;height:90px;object-fit:cover;border-radius:10px;border:1px solid var(--tc-border)}

.sb-sticky{position:sticky;top:0;z-index:50}



/* =========================================================
   T&C CLEAN V7 · ajustes finales de Home + administración
   ========================================================= */

/* Hero: azul corporativo limpio, sin naranja atravesando la foto */
.tc-hero__frame{
    background:#174d7d!important;
}
.tc-hero__photo:before{
    background:linear-gradient(90deg,
        #174d7d 0%,
        rgba(23,77,125,.92) 12%,
        rgba(23,77,125,.72) 26%,
        rgba(23,77,125,.34) 46%,
        rgba(23,77,125,.08) 68%,
        rgba(23,77,125,0) 82%)!important;
}

/* Tu camino: banner azul sólido y todo el contenido textual en blanco */
.tc-journey{
    margin:48px auto 68px!important;
    padding:0 28px!important;
    background:transparent!important;
}
.tc-journey__inner{
    max-width:1360px;
    margin:0 auto;
    display:grid!important;
    grid-template-columns:minmax(300px,.78fr) minmax(0,1.65fr)!important;
    gap:54px!important;
    align-items:center!important;
    padding:58px!important;
    border-radius:24px!important;
    background:#174d7d!important;
    color:#fff!important;
    box-shadow:0 20px 48px rgba(16,52,82,.16)!important;
}
.tc-journey__heading .overline{color:#ffb27f!important}
.tc-journey__heading h2,
.tc-journey__heading p,
.tc-steps h3,
.tc-steps p{color:#fff!important}
.tc-journey__heading h2{font-weight:800!important}
.tc-journey__heading p,
.tc-steps p{color:rgba(255,255,255,.9)!important}
.tc-steps{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important}
.tc-steps article{
    min-height:230px!important;
    padding:28px 24px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:16px!important;
    background:rgba(255,255,255,.075)!important;
    box-shadow:none!important;
}
.tc-step__icon{
    display:flex!important;
    width:50px!important;
    height:50px!important;
    align-items:center!important;
    justify-content:center!important;
    margin-bottom:26px!important;
    border-radius:50%!important;
    background:#fff!important;
    color:#174d7d!important;
    font-size:14px!important;
    font-weight:800!important;
}
.tc-steps article:nth-child(2) .tc-step__icon{color:#f37025!important}
.tc-steps article:nth-child(3) .tc-step__icon{color:#124a76!important}

/* T&C Empresas: banner horizontal compacto con imagen lateral y difuminado */
.company-access{
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr)!important;
    min-height:370px!important;
    max-height:420px!important;
    margin:34px auto 86px!important;
    overflow:hidden!important;
    border:1px solid #e4e9ee!important;
    border-radius:24px!important;
    background:#fff!important;
    box-shadow:0 18px 44px rgba(15,54,86,.10)!important;
}
.company-access:before{display:none!important}
.company-access__content{
    position:relative!important;
    z-index:3!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    padding:48px 54px!important;
    background:#fff!important;
}
.company-access__content h2{font-size:clamp(2rem,3.1vw,3.25rem)!important;line-height:1.08!important}
.company-access__photo{
    position:relative!important;
    min-height:370px!important;
    max-height:420px!important;
    overflow:hidden!important;
}
.company-access__photo img{
    width:100%!important;
    height:100%!important;
    min-height:370px!important;
    max-height:420px!important;
    object-fit:cover!important;
    object-position:center 35%!important;
}
.company-access__photo:after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:2!important;
    pointer-events:none!important;
    background:linear-gradient(90deg,
        #fff 0%,
        rgba(255,255,255,.94) 8%,
        rgba(255,255,255,.70) 20%,
        rgba(255,255,255,.30) 34%,
        rgba(255,255,255,0) 56%)!important;
}

/* Constructor primero dentro del panel */
.admin .subnav .subnav-builder{
    background:var(--tc-orange)!important;
    color:#fff!important;
    border-color:var(--tc-orange)!important;
    font-weight:800!important;
}
.admin .subnav .subnav-builder:hover{background:#dc5d17!important;color:#fff!important}
.builder-priority-cta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin:28px 0 4px;
    padding:22px 24px;
    border-radius:16px;
    background:#174d7d;
    color:#fff;
}
.builder-priority-cta .overline{margin:0 0 5px;color:#ffb27f}
.builder-priority-cta strong{display:block;font-size:22px;font-weight:800}
.builder-priority-cta small{display:block;margin-top:4px;color:rgba(255,255,255,.82)}

/* Eliminación integrada por módulo */
.bulk-delete-toolbar{
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
    margin:16px 0 20px;
    padding:12px 14px;
    border:1px solid #dbe4ea;
    border-radius:12px;
    background:#fff;
}
.bulk-select-all{display:flex;align-items:center;gap:8px;margin:0;font-weight:600}
.bulk-select-all .bulk-check{margin:0}
.bulk-selection-count{font-size:12px;color:#6b7780;margin-right:auto}
.bulk-delete-toolbar form{margin:0}
.bulk-delete-toolbar button:disabled{opacity:.45;cursor:not-allowed}
.message-admin-row{display:flex;align-items:flex-start;gap:10px;border-bottom:1px solid #edf0f2;padding:8px 0}
.message-admin-row p{margin:0;flex:1}

@media(max-width:1000px){
    .tc-journey__inner{grid-template-columns:1fr!important;padding:42px 30px!important}
    .tc-steps{grid-template-columns:1fr!important}
    .company-access{grid-template-columns:1fr!important;max-height:none!important}
    .company-access__photo,.company-access__photo img{min-height:290px!important;max-height:330px!important}
    .company-access__photo:after{background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.28) 22%,rgba(255,255,255,0) 52%)!important}
}
@media(max-width:650px){
    .tc-journey{padding:0 14px!important}
    .tc-journey__inner{padding:32px 22px!important;border-radius:18px!important}
    .company-access{margin-left:14px!important;margin-right:14px!important}
    .company-access__content{padding:34px 24px!important}
    .builder-priority-cta{align-items:flex-start;flex-direction:column}
    .builder-priority-cta .btn{width:100%}
}

/* =========================================================
   eCARDS DE VACANTES · VARIANTES REUTILIZABLES
   ========================================================= */
.job-card--vertical_full .job-card__actions{display:grid;grid-template-columns:auto 1fr;gap:10px 14px}.job-card--vertical_full .job-card__actions .job-card__date{grid-column:1}.job-card--vertical_full .job-card__actions .job-share{grid-column:2;justify-self:end}.job-card--vertical_full .job-card__actions .btn{grid-column:1/-1;width:100%;margin-left:0}

.job-card--horizontal{display:grid!important;grid-template-columns:minmax(210px,34%) minmax(0,1fr);min-height:260px!important}.job-card--horizontal .job-card__media{aspect-ratio:auto;height:100%;min-height:260px}.job-card--horizontal .job-card__body{min-height:260px!important;padding:24px 26px}.job-card--horizontal .job-card__logo{left:16px;bottom:16px}.job-card--horizontal h3{font-size:22px!important}.job-card--horizontal .job-card__excerpt{max-width:70ch}.job-card--horizontal .job-card__actions{margin-top:auto}

.job-card--compact{display:grid!important;grid-template-columns:92px minmax(0,1fr);min-height:118px!important;border-radius:12px}.job-card--compact .job-card__media{aspect-ratio:auto;height:92px;margin:13px 0 13px 13px;border-radius:10px}.job-card--compact .job-card__media-fallback{font-size:22px;border-radius:10px}.job-card--compact .job-card__logo{display:none}.job-card--compact .job-card__body{min-height:0!important;padding:13px 15px 13px 16px}.job-card--compact .job-card__company{font-size:10px;margin-bottom:2px}.job-card--compact h3{font-size:15px!important;line-height:1.25;margin-bottom:4px!important}.job-card--compact .job-card__meta{font-size:11px;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-card--compact .job-card__actions{border:0;padding-top:0;margin-top:auto;gap:8px}.job-card--compact .job-share{font-size:11px;padding:5px 2px!important}.job-card--compact .job-card__actions .btn{padding:7px 11px;font-size:11px;margin-left:auto}

.job-card--minimal{min-height:0!important;border-radius:12px}.job-card--minimal .job-card__body{min-height:210px!important;padding:22px}.job-card--minimal h3{font-size:20px!important}.job-card--minimal .job-card__actions{margin-top:auto}.job-card--minimal .job-card__salary{margin-top:16px}

.job-grid--listing{grid-template-columns:1fr!important;gap:18px}.job-grid--listing .job-card--horizontal{max-width:none}

/* Variantes del Site Builder */
.sb-card-variant-horizontal,.sb-card-variant-compact{grid-template-columns:1fr!important}
.sb-card-variant-minimal .job-card{box-shadow:none}

@media(max-width:850px){.job-card--horizontal{grid-template-columns:1fr}.job-card--horizontal .job-card__media{height:auto;min-height:0;aspect-ratio:16/8}.job-card--horizontal .job-card__body{min-height:280px!important}.job-card--compact{grid-template-columns:78px minmax(0,1fr)}.job-card--compact .job-card__media{height:78px}.job-card--compact .job-card__actions{flex-wrap:wrap}}
@media(max-width:520px){.job-card--compact{grid-template-columns:68px minmax(0,1fr)}.job-card--compact .job-card__media{height:68px;margin:12px 0 12px 12px}.job-card--compact .job-card__body{padding:12px}.job-card--compact .job-share{display:none}.job-card--horizontal .job-card__body{padding:20px}.job-card--vertical_full .job-card__actions{grid-template-columns:1fr}.job-card--vertical_full .job-card__actions .job-card__date,.job-card--vertical_full .job-card__actions .job-share,.job-card--vertical_full .job-card__actions .btn{grid-column:1}}


/* =========================================================
   AJUSTE GLOBAL DE ESPACIADO TIPOGRÁFICO Y BOTONES · v7.7
   ========================================================= */
body, p, li, a, label, input, select, textarea, small, .muted{line-height:1.65;letter-spacing:.01em}
h1,h2,h3,h4{line-height:1.12}
.btn,button,[type="submit"],a.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;line-height:1.2;letter-spacing:.012em;padding:12px 18px;text-wrap:balance}
.btn.orange,.button-orange{padding-inline:20px}
.topbar a,.header nav a,.actions a,.subnav a{letter-spacing:.01em}
.company-access__actions{gap:28px}
.company-access__actions > a:not(.btn){display:inline-block;line-height:1.55;letter-spacing:.01em}
.job-card__actions .btn,.tc-hero__actions .btn{gap:.45em}
.job-share{letter-spacing:.015em;line-height:1.45}
.footer-grid{align-items:start}
.footer-grid > div{min-width:0}
.footer-grid strong{display:block;line-height:1.35;letter-spacing:.015em;margin-bottom:10px}
.footer-grid a,.footer-grid .muted{display:block;line-height:1.8;letter-spacing:.01em}
.footer-grid a{padding-block:2px}
.footer-logo{display:inline-block;margin-bottom:10px}
.footer-logo img{display:block}

/* =========================================================
   FIX VISUAL v8.2 · HOME + COMO FUNCIONA
   Se aplica en redesign.css porque esta hoja SI se carga al final.
   ========================================================= */

/* HOME · T&C Empresas */
.company-access{
    max-height:none!important;
    padding:0!important;
}
.company-access__content{
    padding:48px 54px 56px!important;
}
.company-access__actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    flex-wrap:wrap!important;
    gap:18px!important;
    margin-top:26px!important;
}
.company-access__actions .btn{
    margin:0!important;
    min-height:48px;
}
.company-access__photo{
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
}
.company-access__photo:before,
.company-access__photo:after{
    content:none!important;
    display:none!important;
    background:none!important;
}
.company-access__photo img{
    display:block!important;
    margin:0!important;
    padding:0!important;
    width:100%!important;
    height:100%!important;
    border:0!important;
    border-radius:0!important;
    object-fit:cover!important;
}

/* COMO FUNCIONA · botones CTA */
.cta-panel__actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    flex-wrap:wrap!important;
    gap:18px!important;
}
.cta-panel__actions .btn{
    margin:0!important;
}

@media(max-width:900px){
    .company-access__actions{gap:14px!important}
    .cta-panel__actions{gap:14px!important}
}

@media(max-width:600px){
    .company-access__content{padding:34px 24px 38px!important}
    .company-access__actions,
    .cta-panel__actions{
        width:100%!important;
        flex-direction:column!important;
        align-items:stretch!important;
        gap:12px!important;
    }
    .company-access__actions .btn,
    .cta-panel__actions .btn{
        width:100%!important;
    }
}

/* =========================================================
   FIX VISUAL v8.2.1 · FOTO T&C EMPRESAS A ALTURA COMPLETA
   Elimina la franja blanca inferior causada por max-height:420px heredado.
   ========================================================= */
.company-access__photo{
    position:relative!important;
    align-self:stretch!important;
    height:auto!important;
    min-height:100%!important;
    max-height:none!important;
    overflow:hidden!important;
    line-height:0!important;
}
.company-access__photo img{
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    object-fit:cover!important;
    object-position:center 35%!important;
    border:0!important;
    border-radius:0!important;
}

@media(max-width:1000px){
    .company-access__photo{
        min-height:320px!important;
        height:320px!important;
    }
    .company-access__photo img{
        min-height:0!important;
        height:100%!important;
    }
}

@media(max-width:650px){
    .company-access__photo{
        min-height:280px!important;
        height:280px!important;
    }
}

/* =========================================================
   POPUP INSTITUCIONAL ANTIFRAUDE · v8.4.6
   Solo imagen + fondo real difuminado
   ========================================================= */
body.modal-open{overflow:hidden}
.trust-modal[hidden]{display:none!important}
.trust-modal{
    position:fixed;
    inset:0;
    z-index:9999;
    display:grid;
    place-items:center;
    padding:24px;
    background:transparent!important;
}
.trust-modal__backdrop{
    position:absolute;
    inset:0;
    border:0;
    padding:0;
    background:transparent!important;
    backdrop-filter:blur(10px) saturate(90%);
    -webkit-backdrop-filter:blur(10px) saturate(90%);
    cursor:pointer;
}
.trust-modal__card{
    position:relative;
    z-index:1;
    width:min(1180px,94vw);
    max-height:90vh;
    margin:0;
    padding:0;
    overflow:hidden;
    border:0!important;
    outline:0!important;
    border-radius:18px;
    background:transparent!important;
    box-shadow:none!important;
    line-height:0;
}
.trust-modal__card::before,
.trust-modal__card::after{
    content:none!important;
    display:none!important;
}
.trust-modal__image{
    display:block;
    width:100%;
    height:auto;
    max-height:90vh;
    margin:0;
    padding:0;
    border:0!important;
    outline:0!important;
    border-radius:18px;
    background:transparent!important;
    box-shadow:none!important;
    object-fit:contain;
}
.trust-modal__close{
    position:absolute;
    top:14px;
    right:14px;
    z-index:2;
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    padding:0!important;
    border:1px solid rgba(255,255,255,.72);
    border-radius:999px!important;
    background:rgba(7,32,53,.82);
    color:#fff;
    font:500 30px/1 "Poppins",Arial,sans-serif;
    cursor:pointer;
    box-shadow:0 6px 18px rgba(0,0,0,.18);
}
.trust-modal__close:hover,
.trust-modal__close:focus-visible{
    background:#f37025;
    border-color:#f37025;
    color:#fff;
    outline:3px solid rgba(255,255,255,.75);
    outline-offset:2px;
}
@media(max-width:700px){
    .trust-modal{padding:12px}
    .trust-modal__card{width:min(100%,640px);border-radius:14px}
    .trust-modal__image{border-radius:14px}
    .trust-modal__close{top:9px;right:9px;width:38px;height:38px;font-size:26px}
}

/* =========================================================
   HERO · SELECTORES DESPLEGABLES HACIA ABAJO · v8.4
   ========================================================= */
.tc-search-strip{overflow:visible}
.tc-search-strip label{position:relative}
.tc-native-select-hidden{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
    opacity:0!important;
    pointer-events:none!important;
}
.tc-select-button{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    width:100%!important;
    min-height:24px!important;
    margin:4px 0 0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    color:var(--tc-ink)!important;
    box-shadow:none!important;
    font-size:14px!important;
    font-weight:500!important;
    line-height:1.45!important;
    text-align:left!important;
}
.tc-select-button:hover,
.tc-select-button:focus-visible{
    background:transparent!important;
    color:var(--tc-ink)!important;
    outline:none!important;
}
.tc-select-button:focus-visible .tc-select-button__label{
    text-decoration:underline;
    text-decoration-color:rgba(32,91,140,.35);
    text-underline-offset:4px;
}
.tc-select-button__label{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.tc-select-button__chevron{
    flex:0 0 auto;
    color:var(--tc-blue);
    font-size:17px;
    line-height:1;
}
.tc-select-menu{
    position:absolute;
    z-index:9000;
    display:block;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:6px;
    background:#fff;
    border:1px solid #cfdbe4;
    border-radius:12px;
    box-shadow:0 18px 44px rgba(18,63,101,.20);
}
.tc-select-menu[hidden]{display:none!important}
.tc-select-option{
    display:block!important;
    width:100%!important;
    min-height:40px!important;
    margin:0!important;
    padding:9px 11px!important;
    border:0!important;
    border-radius:8px!important;
    background:#fff!important;
    color:var(--tc-ink)!important;
    box-shadow:none!important;
    font-size:14px!important;
    font-weight:500!important;
    line-height:1.4!important;
    text-align:left!important;
    cursor:pointer!important;
}
.tc-select-option:hover,
.tc-select-option:focus-visible{
    background:var(--tc-blue-soft)!important;
    color:var(--tc-blue-dark)!important;
    outline:none!important;
}
.tc-select-option.is-selected{
    background:var(--tc-blue)!important;
    color:#fff!important;
}
.tc-select-option:disabled{
    opacity:.45!important;
    cursor:not-allowed!important;
}

/* =========================================================
   FIX v8.4.1 · BOTÓN BUSCAR HERO SIN BORDES BLANCOS
   ========================================================= */
.tc-search-strip{
    gap:0!important;
    padding:0!important;
}
.tc-search-strip > button{
    align-self:stretch!important;
    justify-self:stretch!important;
    width:100%!important;
    height:100%!important;
    min-height:68px!important;
    margin:0!important;
    padding:0 32px!important;
    border:0!important;
    border-radius:0!important;
    outline:0!important;
    background:var(--tc-orange,#f37025)!important;
    color:#fff!important;
    box-shadow:none!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
}
.tc-search-strip > button:hover,
.tc-search-strip > button:focus-visible{
    background:#e7651f!important;
    color:#fff!important;
}
.tc-search-strip > button:focus-visible{
    outline:3px solid rgba(243,112,37,.35)!important;
    outline-offset:-3px!important;
}
@media(max-width:1100px){
    .tc-search-strip > button{
        min-height:64px!important;
    }
}
@media(max-width:650px){
    .tc-search-strip > button{
        min-height:58px!important;
    }
}

/* =========================================================
   HOME · VACANTES RECIENTES · 4 TARJETAS POR FILA · v8.4.5
   Solo afecta la cuadrícula del inicio. /vacantes conserva su layout.
   ========================================================= */
.job-grid--home{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
@media(max-width:1200px){
    .job-grid--home{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:900px){
    .job-grid--home{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:650px){
    .job-grid--home{grid-template-columns:1fr;}
}



/* =========================================================
   FIX v8.4.9 · HEADER DEL ACCESO ADMINISTRATIVO
   Mantiene una sola línea en escritorio sin comprimir textos.
   ========================================================= */
.admin-login-page .header{
    min-height:82px!important;
    gap:18px!important;
    flex-wrap:nowrap!important;
}
.admin-login-page .brand-logo{
    min-width:190px!important;
    flex:0 0 auto!important;
}
.admin-login-page .brand-logo img{
    width:140px!important;
    max-width:140px!important;
    height:auto!important;
}
.admin-login-page .brand-logo .brand-portal{
    white-space:nowrap!important;
}
.admin-login-page .header nav{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:1 1 auto!important;
    min-width:0!important;
    margin-left:0!important;
    gap:20px!important;
    white-space:nowrap!important;
}
.admin-login-page .header nav a{
    flex:0 0 auto!important;
    white-space:nowrap!important;
    line-height:1.2!important;
}
.admin-login-page .header .actions{
    display:flex!important;
    align-items:center!important;
    flex:0 0 auto!important;
    margin-left:auto!important;
    gap:12px!important;
    white-space:nowrap!important;
}
.admin-login-page .header .actions > a{
    flex:0 0 auto!important;
    white-space:nowrap!important;
    line-height:1.2!important;
}
.admin-login-page .header .actions .btn.secondary.small{
    min-width:auto!important;
    padding:9px 14px!important;
    font-size:12px!important;
}
.admin-login-page .header .actions .btn:not(.secondary){
    padding-left:17px!important;
    padding-right:17px!important;
}

@media(max-width:1180px){
    .admin-login-page .header{
        gap:12px!important;
    }
    .admin-login-page .brand-logo{
        min-width:165px!important;
    }
    .admin-login-page .brand-logo img{
        width:125px!important;
        max-width:125px!important;
    }
    .admin-login-page .header nav{
        gap:14px!important;
        font-size:13px!important;
    }
    .admin-login-page .header .actions{
        gap:9px!important;
        font-size:13px!important;
    }
}

@media(max-width:980px){
    .admin-login-page .header{
        flex-wrap:wrap!important;
        padding-top:14px!important;
        padding-bottom:14px!important;
    }
    .admin-login-page .header nav{
        order:3!important;
        width:100%!important;
        justify-content:flex-start!important;
        overflow-x:auto!important;
        padding-bottom:4px!important;
    }
}

/* =========================================================
   FIX v8.5.0 · HEADER PÚBLICO CON POSICIONES FIJAS
   Mantiene logo, menú y acciones en las mismas coordenadas
   en todas las pantallas públicas, incluido /admin/acceso.
   ========================================================= */
@media(min-width:1051px){
    .header:has(.actions a[href*="/admin/acceso"]){
        display:grid!important;
        grid-template-columns:235px minmax(0,1fr) 430px!important;
        align-items:center!important;
        column-gap:24px!important;
        min-height:82px!important;
        padding-top:0!important;
        padding-bottom:0!important;
        flex-wrap:nowrap!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .brand-logo{
        display:flex!important;
        align-items:center!important;
        width:235px!important;
        min-width:235px!important;
        max-width:235px!important;
        margin:0!important;
        flex:none!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .brand-logo img{
        width:145px!important;
        max-width:145px!important;
        height:52px!important;
        object-fit:contain!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .brand-portal{
        flex:0 0 auto!important;
        white-space:nowrap!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) nav{
        display:flex!important;
        align-items:center!important;
        justify-content:center!important;
        width:100%!important;
        min-width:0!important;
        margin:0!important;
        padding:0!important;
        gap:8px!important;
        white-space:nowrap!important;
        overflow:visible!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) nav > a{
        display:flex!important;
        align-items:center!important;
        justify-content:center!important;
        flex:0 0 112px!important;
        width:112px!important;
        min-width:112px!important;
        max-width:112px!important;
        margin:0!important;
        padding:8px 4px!important;
        line-height:1.2!important;
        text-align:center!important;
        white-space:nowrap!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions{
        display:grid!important;
        grid-template-columns:160px 110px 136px!important;
        align-items:center!important;
        justify-content:end!important;
        width:430px!important;
        min-width:430px!important;
        max-width:430px!important;
        margin:0!important;
        padding:0!important;
        gap:12px!important;
        white-space:nowrap!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions > *{
        min-width:0!important;
        margin:0!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions > a{
        display:flex!important;
        align-items:center!important;
        justify-content:center!important;
        width:100%!important;
        max-width:none!important;
        line-height:1.2!important;
        text-align:center!important;
        white-space:nowrap!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions > :nth-child(1){
        width:160px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions > :nth-child(2){
        width:110px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions > :nth-child(3){
        width:136px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions .btn.secondary.small{
        padding:9px 12px!important;
        font-size:12px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions .btn:not(.secondary){
        padding-left:14px!important;
        padding-right:14px!important;
    }

    /* El estado activo puede cambiar de peso, pero nunca su ancho. */
    .header:has(.actions a[href*="/admin/acceso"]) nav a[aria-current="page"]{
        width:112px!important;
        min-width:112px!important;
        max-width:112px!important;
    }
}

@media(min-width:1051px) and (max-width:1280px){
    .header:has(.actions a[href*="/admin/acceso"]){
        grid-template-columns:210px minmax(0,1fr) 398px!important;
        column-gap:16px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .brand-logo{
        width:210px!important;
        min-width:210px!important;
        max-width:210px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .brand-logo img{
        width:132px!important;
        max-width:132px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) nav{
        gap:4px!important;
        font-size:13px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) nav > a,
    .header:has(.actions a[href*="/admin/acceso"]) nav a[aria-current="page"]{
        flex-basis:100px!important;
        width:100px!important;
        min-width:100px!important;
        max-width:100px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions{
        grid-template-columns:148px 100px 126px!important;
        width:398px!important;
        min-width:398px!important;
        max-width:398px!important;
        gap:12px!important;
        font-size:13px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions > :nth-child(1){width:148px!important}
    .header:has(.actions a[href*="/admin/acceso"]) .actions > :nth-child(2){width:100px!important}
    .header:has(.actions a[href*="/admin/acceso"]) .actions > :nth-child(3){width:126px!important}
}

/* A partir de tablet el header puede reordenarse, pero lo hace igual en todas las páginas. */
@media(max-width:1050px){
    .header:has(.actions a[href*="/admin/acceso"]){
        display:flex!important;
        min-height:82px!important;
        flex-wrap:wrap!important;
        gap:14px!important;
        padding-top:14px!important;
        padding-bottom:14px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .brand-logo{
        flex:0 0 auto!important;
        min-width:190px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions{
        display:flex!important;
        align-items:center!important;
        margin-left:auto!important;
        gap:10px!important;
        white-space:nowrap!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) nav{
        order:3!important;
        display:flex!important;
        width:100%!important;
        margin:0!important;
        gap:18px!important;
        overflow-x:auto!important;
        white-space:nowrap!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) nav > a{
        flex:0 0 auto!important;
        white-space:nowrap!important;
    }
}


/* =========================================================
   FIX v8.5.1 · HEADER UNIFICADO CON ESPACIADO CORRECTO
   Mantiene posiciones estables sin comprimir textos largos.
   ========================================================= */
@media(min-width:1281px){
    .header:has(.actions a[href*="/admin/acceso"]){
        grid-template-columns:220px minmax(560px,1fr) 420px!important;
        column-gap:24px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .brand-logo{
        width:220px!important;
        min-width:220px!important;
        max-width:220px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) nav{
        display:grid!important;
        grid-template-columns:105px 105px 140px 140px!important;
        justify-content:center!important;
        align-items:center!important;
        column-gap:22px!important;
        width:100%!important;
        margin:0!important;
        padding:0!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) nav > a,
    .header:has(.actions a[href*="/admin/acceso"]) nav a[aria-current="page"]{
        width:100%!important;
        min-width:0!important;
        max-width:none!important;
        padding:8px 0!important;
        text-align:center!important;
        white-space:nowrap!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions{
        width:420px!important;
        min-width:420px!important;
        max-width:420px!important;
        grid-template-columns:156px 106px 134px!important;
        gap:12px!important;
    }
}

@media(min-width:1051px) and (max-width:1280px){
    .header:has(.actions a[href*="/admin/acceso"]){
        grid-template-columns:190px minmax(460px,1fr) 382px!important;
        column-gap:16px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .brand-logo{
        width:190px!important;
        min-width:190px!important;
        max-width:190px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .brand-logo img{
        width:124px!important;
        max-width:124px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) nav{
        display:grid!important;
        grid-template-columns:88px 92px 122px 122px!important;
        justify-content:center!important;
        align-items:center!important;
        column-gap:18px!important;
        width:100%!important;
        margin:0!important;
        padding:0!important;
        font-size:13px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) nav > a,
    .header:has(.actions a[href*="/admin/acceso"]) nav a[aria-current="page"]{
        width:100%!important;
        min-width:0!important;
        max-width:none!important;
        padding:8px 0!important;
        text-align:center!important;
        white-space:nowrap!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions{
        grid-template-columns:142px 96px 120px!important;
        width:382px!important;
        min-width:382px!important;
        max-width:382px!important;
        gap:12px!important;
        font-size:13px!important;
    }

    .header:has(.actions a[href*="/admin/acceso"]) .actions > :nth-child(1){width:142px!important}
    .header:has(.actions a[href*="/admin/acceso"]) .actions > :nth-child(2){width:96px!important}
    .header:has(.actions a[href*="/admin/acceso"]) .actions > :nth-child(3){width:120px!important}
}
