:root{--green:#174e43;--green-deep:#103c35;--mint:#e8f4ef;--gold:#e4bf6c;--ink:#172d2b;--muted:#63726e;--line:#e6eae8;--bg:#f7f9f8;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);line-height:1.65}a{color:inherit}button,input{font:inherit}.container{width:min(1200px,calc(100% - 40px));margin:auto}.skip-link{position:absolute;top:-100px;left:12px;z-index:1000;background:white;padding:10px}.skip-link:focus{top:10px}.topbar{background:var(--green-deep);color:#d8eee4;font-size:12px}.topbar-inner{display:flex;justify-content:space-between;gap:10px;padding:7px 0}.site-header{background:#fff;position:relative;z-index:2;border-bottom:1px solid var(--line)}.nav-row{min-height:86px;display:flex;align-items:center;gap:30px;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;flex-shrink:0}.brand-mark{width:46px;height:46px;border-radius:13px;background:var(--green);color:#fff;font-size:27px;display:grid;place-items:center;font-weight:800}.brand-logo{max-width:260px;max-height:65px;width:auto;height:auto;object-fit:contain}.brand-name{font-size:23px;letter-spacing:-.6px;line-height:1.1}.brand-name strong{color:var(--green)}.brand-name small{display:block;font-size:11px;color:var(--muted);font-weight:500;letter-spacing:1px;text-transform:uppercase;margin-top:4px}.navigation{display:flex;gap:32px}.navigation a{text-decoration:none;font-size:14px;font-weight:650;white-space:nowrap}.navigation a[aria-current],.navigation a:hover{color:var(--green);text-decoration:underline;text-underline-offset:8px}.btn{border:0;display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:14px 22px;font-weight:750;font-size:14px;border-radius:11px;text-decoration:none;cursor:pointer;min-height:49px}.btn:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #e1a944;outline-offset:3px}.btn-outline{background:#e8f4ee;color:var(--green)}.btn-primary{background:var(--green);color:white}.btn-light{background:#fff;color:var(--green)}.hero{background:linear-gradient(130deg,#f1f8f4 0%,#edf5f0 56%,#e4f0e9 100%);overflow:hidden}.hero-layout{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr);align-items:center;gap:34px;min-height:550px;padding:65px 0}.eyebrow{display:inline-flex;align-items:center;gap:9px;color:var(--green);font-weight:750;font-size:13px;letter-spacing:.4px}.eyebrow-dot{display:inline-block;background:#3ba77b;width:9px;height:9px;border-radius:50%}.hero h1{font-size:clamp(40px,5vw,66px);line-height:1.1;letter-spacing:-2.5px;margin:18px 0}.hero h1 em{font-style:normal;color:var(--green)}.hero-copy>p{color:var(--muted);max-width:565px;font-size:17px;margin-bottom:28px}.hero-search{display:flex;background:#fff;border-radius:15px;padding:9px;box-shadow:0 18px 55px #1b42311f;gap:5px;align-items:stretch;max-width:800px}.hero-search label{padding:5px 9px;flex:1;min-width:0}.hero-search label+label{border-left:1px solid var(--line)}.search-label{display:block;color:var(--ink);font-size:12px;font-weight:750;margin-bottom:2px}.input-shell{display:flex;gap:8px;align-items:center;color:var(--green);font-size:22px}.input-shell input{border:0;width:100%;min-width:0;padding:4px 0;color:var(--ink);font-size:13px;background:transparent;outline-offset:2px}.hero-search .btn{white-space:nowrap}.hero-notes{display:flex;flex-wrap:wrap;gap:20px;color:var(--muted);font-size:12px;margin-top:25px}.hero-visual{height:415px;position:relative;display:grid;place-items:center}.visual-orbit{position:absolute;width:340px;height:340px;border-radius:50%;background:#d6e8db}.visual-orbit:after{content:"";position:absolute;inset:25px;border:1px dashed #a2c4b0;border-radius:50%}.illustration-card{z-index:1;position:relative;background:white;width:280px;min-height:317px;border-radius:22px;padding:25px;box-shadow:0 35px 75px #194d3840;transform:rotate(-4deg)}.illus-overline{font-size:11px;font-weight:800;color:var(--green);letter-spacing:2px}.illus-graphic{height:105px;margin:20px 0 7px;background:linear-gradient(120deg,#dcefe4,#a5d1ba);border-radius:14px;display:flex;align-items:center;justify-content:space-around;color:var(--green);font-size:38px}.illus-graphic span:nth-child(2){font-size:64px}.illus-heading{font-weight:800;font-size:19px;line-height:1.3}.illus-lines{display:grid;gap:7px;margin-top:16px}.illus-lines i{height:8px;width:95%;background:#edf3ef;border-radius:6px}.illus-lines i:nth-child(2){width:75%}.illus-lines i:nth-child(3){width:58%}.illus-tag{margin-top:20px;color:var(--green);font-size:12px;font-weight:750}.floating-stamp{position:absolute;z-index:1;background:var(--green);color:#fff;padding:10px 17px;border-radius:13px;box-shadow:0 12px 28px #214d3e30;font-size:13px;font-weight:750}.stamp-a{top:30px;right:10px;transform:rotate(6deg)}.stamp-b{bottom:35px;left:0;background:#fff;color:var(--green);transform:rotate(-5deg)}.section{padding:78px 0}.section-top{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:31px}.section-kicker{font-size:12px;letter-spacing:2px;color:#258060;font-weight:800}.section-top h2,.employer-banner h2{font-size:clamp(26px,3vw,37px);margin:9px 0;line-height:1.2;letter-spacing:-.8px}.section-top p{color:var(--muted);margin:0}.text-link{color:var(--green);text-decoration:none;font-weight:750;font-size:14px;white-space:nowrap}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.category-card{padding:25px;border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;gap:7px;text-decoration:none;transition:transform .2s,border-color .2s;background:white}.category-card:hover,.job-card:hover{transform:translateY(-3px);border-color:#9bc5b0}.category-icon{background:var(--mint);border-radius:14px;display:grid;place-items:center;width:50px;height:50px;color:var(--green);font-size:27px;margin-bottom:8px}.category-card strong{font-size:17px}.category-card>span:last-child{color:var(--muted);font-size:13px}.jobs-section{background:var(--bg)}.jobs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.job-card{padding:25px;background:#fff;border:1px solid var(--line);border-radius:16px;transition:transform .2s,border-color .2s}.job-card-head{display:flex;justify-content:space-between;align-items:center}.job-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--mint);color:var(--green);font-size:27px}.job-pill{background:#edf8f2;color:var(--green);padding:5px 10px;border-radius:100px;font-size:12px;font-weight:700}.job-card h3{margin:18px 0 3px;font-size:19px}.job-card h3 a{text-decoration:none}.job-company{margin:0 0 17px;color:var(--muted);font-size:14px}.job-details{border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:13px;padding-top:16px;font-size:13px;color:var(--muted)}.job-bottom{display:flex;justify-content:space-between;color:var(--green);text-decoration:none;font-weight:750;padding-top:21px}.empty-notice{border:1px dashed #b7cfc1;background:#f5faf7;padding:24px;border-radius:15px;color:var(--muted)}.empty-notice a{color:var(--green)}.process-section{background:#fff}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.steps-grid>div{border-top:2px solid #dcebe3;padding-top:18px}.steps-grid span{color:#26946c;font-size:28px;font-weight:800}.steps-grid h3{margin:4px 0;font-size:20px}.steps-grid p{color:var(--muted);margin:0}.employer-banner{background:var(--green);color:#fff;padding:44px;border-radius:20px;display:flex;justify-content:space-between;align-items:center;gap:35px}.employer-banner h2{max-width:650px}.employer-banner p{max-width:550px;color:#d9f1e6}.employer-banner .eyebrow{color:var(--gold)}.site-footer{background:#0f302b;color:#eef8f1;padding:55px 0 22px}.footer-grid{display:grid;grid-template-columns:2fr 1fr;gap:40px}.footer-grid h2{font-size:23px;margin:0}.footer-grid h3{margin-top:0}.footer-grid p{color:#bdd2c7;max-width:480px;font-size:14px}.footer-grid a{display:block;color:#e1eee7;text-decoration:none;margin:11px 0;font-size:14px}.footer-bottom{border-top:1px solid #ffffff29;padding-top:20px;margin-top:40px;color:#b6d2c4;font-size:12px}.inner-page{padding-top:55px;padding-bottom:90px;min-height:50vh}.page-heading{padding:15px 0 22px}.page-heading h1{font-size:clamp(30px,4vw,46px);margin:10px 0;letter-spacing:-1.1px}.page-body{background:#fff;border-radius:16px}.page-body .job_filters{padding:20px;border:1px solid var(--line);border-radius:14px}.page-body input,.page-body select{max-width:100%}.job-detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,1fr);gap:40px}.detail-side{align-self:start;border:1px solid var(--line);padding:24px;border-radius:16px}.detail-side h2{margin-top:0;font-size:21px}@media(max-width:1000px){.nav-row{gap:15px}.navigation{gap:15px}.hero-layout{grid-template-columns:1.1fr .7fr}.hero-visual{transform:scale(.85)}.jobs-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:740px){.container{width:min(100% - 30px,1200px)}.topbar-inner span:last-child,.nav-cta,.hero-visual{display:none}.nav-row{flex-wrap:wrap;padding:15px 0;gap:14px}.brand-name{font-size:20px}.navigation{width:100%;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:13px}.navigation a{font-size:13px}.hero-layout{display:block;min-height:0;padding:56px 0}.hero h1{font-size:42px;letter-spacing:-1.6px}.hero-search{display:grid;padding:15px;gap:12px}.hero-search label{padding:0}.hero-search label+label{border-left:0;border-top:1px solid var(--line);padding-top:10px}.hero-notes{gap:10px}.section{padding:52px 0}.section-top{align-items:start;flex-direction:column}.category-grid,.jobs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.category-card,.job-card{padding:18px}.steps-grid,.footer-grid,.job-detail-layout{grid-template-columns:1fr}.employer-banner{padding:30px;flex-direction:column;align-items:start}}@media(max-width:460px){.category-grid,.jobs-grid{grid-template-columns:1fr}.hero h1{font-size:36px}.brand-mark{width:40px;height:40px}.navigation a{font-size:12px}}


/* ===== Tala Empleo 0.2.1 | Paleta institucional basada en el logotipo aportado =====
   Gris #79858B · Verde #94CE1D · Turquesa #10B298 · Naranja #FF8000
   Tonos oscuros derivados para contraste y accesibilidad. */
:root {
  --tala-gris:#79858B;
  --tala-verde:#94CE1D;
  --tala-turquesa:#10B298;
  --tala-naranja:#FF8000;
  --green:#087E6C;
  --green-deep:#35444B;
  --mint:#E6F6F2;
  --gold:#FF8000;
  --ink:#243238;
  --muted:#596970;
  --line:#D7DEE1;
  --bg:#F5F7F7;
}
/* Área institucional */
.topbar { background:var(--tala-gris); color:#132A30; }
.site-header { border-bottom:2px solid var(--tala-verde); }
.brand-mark { background:var(--tala-gris); color:#fff; }
.brand-name strong { color:var(--green); }
.navigation a:hover,.navigation a[aria-current] { color:var(--green); text-decoration-color:var(--tala-naranja); }
/* Acciones con contraste; el turquesa literal del logo se usa en bordes y detalles. */
.btn-primary { background:var(--green); color:#fff; }
.btn-primary:hover,.btn-primary:focus-visible { background:#065E52; color:#fff; }
.btn-outline { background:#E6F6F2; color:var(--green); }
.btn-outline:hover { background:#CDECE3; }
/* Portada, búsqueda y motivos gráficos */
.hero { background:linear-gradient(125deg,#F5F7F7 0%,#E7F7F2 60%,#EFF4F1 100%); }
.hero h1 em { color:var(--green); }
.eyebrow,.section-kicker { color:var(--green); }
.eyebrow-dot { background:var(--tala-verde); }
.input-shell { color:var(--green); }
.hero-search { box-shadow:0 18px 55px #35444B1F; }
.visual-orbit { background:#E1F1E8; }
.visual-orbit:after { border-color:var(--tala-turquesa); }
.illus-graphic { background:linear-gradient(120deg,#E7F7F2,#B8EBD8); color:var(--green); }
.floating-stamp { background:var(--tala-gris); color:#fff; box-shadow:0 12px 28px #35444B30; }
.stamp-b { background:#fff; color:var(--green); }
.illus-overline,.illus-tag { color:var(--green); }
/* Categorías y ofertas */
.category-icon,.job-symbol { background:#E6F6F2; color:var(--green); }
.category-card:hover,.job-card:hover { border-color:var(--tala-turquesa); }
.job-pill { background:#EEF6DC; color:#47630E; }
.job-bottom,.text-link { color:var(--green); }
.steps-grid>div { border-top-color:var(--tala-verde); }
.steps-grid span { color:var(--green); }
.empty-notice { border-color:#A5D3C6; background:#F4FAF8; }
/* Llamado para empleadores y pie institucional */
.employer-banner { background:var(--green-deep); border-top:5px solid var(--tala-verde); }
.employer-banner .eyebrow { color:#C6EA80; }
.employer-banner p { color:#E5EDED; }
.site-footer { background:var(--green-deep); color:#fff; }
.footer-grid p,.footer-bottom { color:#DBE4E4; }
.footer-grid a { color:#F4F8F8; }
.footer-grid a:hover { color:#C6EA80; }
.footer-bottom { border-top-color:#79858B; }
/* Legibilidad y enfoque de teclado */
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--tala-naranja); outline-offset:3px; }
.page-body .job_filters { border-color:var(--line); }

/* 0.2.2 | Naranja institucional visible y equilibrado */
.eyebrow-dot { background:var(--tala-naranja); box-shadow:0 0 0 4px #FF80001F; }
.hero-search { border-bottom:4px solid var(--tala-naranja); }
.section-kicker::after { content:""; display:block; width:32px; height:3px; margin-top:9px; border-radius:2px; background:var(--tala-naranja); }
.floating-stamp.stamp-a { background:var(--tala-naranja); color:#252B30; }
.illustration-card { border-top:4px solid var(--tala-naranja); }
.job-card { border-top:3px solid var(--tala-naranja); }
.employer-banner { border-top-color:var(--tala-naranja); }
.category-card:hover { box-shadow:0 7px 20px #FF800012; }
/* El naranja se reserva para señales visuales; botones principales siguen turquesa oscuro. */


/* 0.2.3 | Identidad municipal: naranja protagonista sin perder legibilidad */
:root { --tala-naranja:#FF8000; --tala-naranja-texto:#8F4100; --tala-naranja-suave:#FFF3E5; }
/* Barra institucional neutra y acento visible sobre toda la navegación */
.site-header { border-bottom:4px solid var(--tala-naranja); }
.topbar { border-bottom:3px solid var(--tala-verde); }
/* CTA principal con naranja oficial, texto muy oscuro para contraste */
.btn-primary, .hero-search .btn-primary { background:var(--tala-naranja); color:#1C2529; }
.btn-primary:hover, .hero-search .btn-primary:hover { background:#DE6C00; color:#11191C; }
.btn-primary:focus-visible { outline:3px solid #35444B; outline-offset:3px; }
/* Titular con énfasis en naranja y subrayado de navegación */
.hero h1 em { color:var(--tala-naranja-texto); }
.navigation a:hover, .navigation a[aria-current] { text-decoration-color:var(--tala-naranja); text-decoration-thickness:3px; }
/* Elementos naranjas notorios sin convertir toda la página en un bloque de color */
.eyebrow-dot { background:var(--tala-naranja); }
.hero-search { border-bottom:5px solid var(--tala-naranja); }
.section-kicker { color:var(--tala-naranja-texto); }
.section-kicker::after { background:var(--tala-naranja); height:4px; width:45px; }
.floating-stamp.stamp-a { background:var(--tala-naranja); color:#1C2529; }
.illustration-card { border-top:5px solid var(--tala-naranja); }
.category-card { border-top:3px solid transparent; }
.category-card:hover, .category-card:focus-within { border-top-color:var(--tala-naranja); }
.job-card { border-top:4px solid var(--tala-naranja); }
.job-pill { background:var(--tala-naranja-suave); color:var(--tala-naranja-texto); }
.employer-banner { border-top:6px solid var(--tala-naranja); }
.employer-banner .btn-light { background:var(--tala-naranja); color:#1C2529; }
.employer-banner .btn-light:hover { background:#FFAD52; }
.site-footer { border-top:6px solid var(--tala-naranja); }
/* Contraste de campos de WordPress Job Manager */
.page-body input:focus-visible,.page-body select:focus-visible { outline:3px solid var(--tala-naranja); outline-offset:2px; }
@media (prefers-reduced-motion:reduce) { .category-card,.job-card { transition:none; } }

/* Tala Empleo 0.2.4: categorias con iconos SVG institucionales */
.category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.category-card { position:relative; gap:10px; min-height:195px; padding:26px; border:1px solid var(--line); border-top:4px solid var(--tala-naranja); border-radius:17px; box-shadow:0 5px 22px rgba(36,50,56,.045); }
.category-card:hover, .category-card:focus-visible { border-color:var(--tala-naranja); transform:translateY(-3px); box-shadow:0 14px 30px rgba(36,50,56,.11); }
.category-card .category-icon { width:66px;height:66px; border-radius:18px; display:grid;place-items:center; margin-bottom:5px; background:#fff0e2; color:#ad5200; }
.category-icon svg {width:35px;height:35px;stroke:currentColor;flex:none;}
.category-card strong {font-size:18px;color:var(--ink);line-height:1.25;}
.category-card .category-card-action {font-size:13px;color:#53616a;margin-top:auto;font-weight:650;}
.category-card:nth-child(4n+2) {border-top-color:var(--tala-turquesa);}
.category-card:nth-child(4n+2) .category-icon {background:#e5f6f2;color:#087e6c;}
.category-card:nth-child(4n+3) {border-top-color:var(--tala-gris);}
.category-card:nth-child(4n+3) .category-icon {background:#ecf0f2;color:#526168;}
.category-card:nth-child(4n+4) {border-top-color:var(--tala-verde);}
.category-card:nth-child(4n+4) .category-icon {background:#f2f8df;color:#526f0b;}
@media(max-width:740px){.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.category-card{min-height:173px;padding:17px}.category-card .category-icon{width:54px;height:54px}.category-icon svg{width:29px;height:29px}}
@media(max-width:460px){.category-grid{grid-template-columns:1fr}.category-card{min-height:0;}}

/* Tala Empleo 0.2.5 - tarjetas y detalles de vacantes. */
.jobs-grid--enhanced .job-card--enhanced {
  position: relative; overflow: hidden; display: flex; flex-direction: column;
  border: 1px solid var(--line); border-top: 4px solid #FF8000;
  box-shadow: 0 7px 28px rgba(36,50,56,.045);
}
.job-card--enhanced:hover { box-shadow: 0 14px 38px rgba(36,50,56,.12); }
.job-card--enhanced .job-symbol { color: #087E6C; background: #e7f7f2; }
.job-card--enhanced .job-symbol svg { width: 29px; height: 29px; }
.job-card-category { color: #087E6C; text-transform: uppercase; font-size: 11px; letter-spacing: .09em; font-weight: 800; margin: 19px 0 0; }
.job-card--enhanced h3 { margin-top: 6px; line-height: 1.32; }
.job-card--enhanced h3 a:hover { color: #bd5800; }
.job-card--enhanced .job-company { display: flex; align-items: center; gap: 7px; }
.job-card--enhanced .job-details { display: grid; gap: 10px; }
.job-card--enhanced .job-details span { display: flex; align-items: center; gap: 8px; }
.job-card--enhanced .job-details svg, .job-card--enhanced .job-company svg { color: #087E6C; flex: 0 0 auto; }
.job-card--enhanced .job-bottom { margin-top: auto; align-items: center; color: #a44a00; }
.job-card--enhanced .job-pill { color: #35444B; background: #eaf5db; }
.vacancy-header { background: linear-gradient(125deg,#f5f7f7,#e7f7f2); border: 1px solid #d7dee1; border-top: 5px solid #FF8000; border-radius: 18px; padding: clamp(24px,4vw,45px); margin: 22px 0 30px; }
.vacancy-header h1 { font-size: clamp(32px,4.2vw,49px); line-height: 1.18; margin: 12px 0 22px; letter-spacing: -.035em; }
.vacancy-meta { display: flex; flex-wrap: wrap; gap: 11px; }
.vacancy-meta span { display: inline-flex; gap: 7px; align-items: center; background: white; border: 1px solid #d7dee1; border-radius: 28px; padding: 7px 12px; color: #35444B; font-size: 13px; }
.vacancy-meta svg { color: #087E6C; }
.vacancy-description { padding: clamp(18px,3vw,34px); min-width: 0; }
.vacancy-description h2 { margin-top: 0; font-size: 23px; }
.vacancy-description a { color: #087E6C; }
.vacancy-aside { background: #fff; border-top: 4px solid #FF8000; }
.vacancy-aside > p { display: grid; gap: 3px; padding: 12px 0; border-bottom: 1px solid #e6eae8; margin: 0; }
.vacancy-aside > p strong { color: #35444B; font-size: 13px; }
.vacancy-aside > p span { color: #637177; overflow-wrap: anywhere; }
.application-pending { background: #fff8ee; border: 1px solid #ffdfb8; border-left: 4px solid #FF8000; border-radius: 10px; padding: 17px; margin-top: 24px; }
.application-pending strong { color: #844000; }
.application-pending p { font-size: 13px; margin-bottom: 0; }
@media (max-width: 740px) {
 .vacancy-header { padding: 24px 18px; }
 .vacancy-meta { gap: 8px; }
 .vacancy-meta span { font-size: 12px; }
}
