:root{
    --bg: #f4efe5;
    --bg-soft: #fbf7f0;
    --surface: #ffffff;
    --surface-alt: #fffaf2;
    --accent: #c64623;
    --accent-700: #9f3214;
    --accent-100: #f9e1d8;
    --gold: #d4a038;
    --text: #1e1b18;
    --muted: #6c655d;
    --border: #e6d8c3;
    --success: #2d7b58;
    --radius: 16px;
    --max-w: 1180px;
    --shadow-sm: 0 12px 30px rgba(62, 35, 17, 0.08);
    --shadow-md: 0 20px 40px rgba(62, 35, 17, 0.14);
}

*{box-sizing:border-box;margin:0;padding:0}

html,body{height:100%}

body{
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    color:var(--text);
    background:
        radial-gradient(circle at top left, rgba(212,160,56,0.12), transparent 28%),
        linear-gradient(180deg, #fcf7ef 0%, #f4efe5 32%, #f7f2e8 100%);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

a{color:inherit;text-decoration:none}

header{
    position:sticky;
    top:0;
    z-index:60;
    background:rgba(252, 247, 239, 0.94);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(159, 50, 20, 0.08);
}

body.empleos-immersive header{
    transition:transform .25s ease, opacity .25s ease;
    will-change:transform;
}

body.empleos-immersive.empleos-hide-header header{
    transform:translateY(-100%);
    opacity:0;
    pointer-events:none;
}

body.empleos-no-header header{display:none}

body.empleos-no-header .container{margin:10px auto 0}
body.empleos-no-header{height:100vh;overflow:hidden}

.header-inner{
    max-width:var(--max-w);
    margin:0 auto;
    padding:0 20px;
}

.header-inner{
    min-height:68px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
}

.brand{display:flex;align-items:center;gap:14px}
.brand-logo{height:38px;object-fit:contain;display:block}
.brand-copy h1{font-size:22px;color:var(--accent);line-height:1.1}
.brand-copy span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-top:3px}

nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
nav a{color:var(--muted);font-weight:700}
nav a:hover{color:var(--accent)}
.nav-mobile-toggle{display:none}
.nav-user{color:var(--text);font-weight:700;list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px}
.nav-user::-webkit-details-marker{display:none}
.nav-user::after{content:"▾";font-size:12px;color:var(--muted)}
.nav-cta{margin-left:8px}

.nav-user-menu{position:relative}

.nav-user-dropdown{
    position:absolute;
    right:0;
    top:calc(100% + 8px);
    min-width:176px;
    background:#f4f2ef;
    border:1px solid #d9d0c3;
    border-radius:8px;
    box-shadow:0 12px 26px rgba(0,0,0,.12);
    overflow:hidden;
    z-index:100;
}

.nav-user-dropdown a{
    display:block;
    padding:10px 12px;
    color:#2a2a2a;
    font-weight:600;
    text-decoration:none;
    border-bottom:1px solid #e6e0d8;
}

.nav-user-dropdown a:last-child{border-bottom:none}
.nav-user-dropdown a:hover{background:#ece6dd;color:#222}

.container{max-width:var(--max-w);margin:30px auto;padding:0 20px}

.flash{max-width:var(--max-w);margin:14px auto;padding:12px 14px;border-radius:12px;font-weight:700}
.flash-success{background:rgba(45,123,88,0.08);color:var(--success);border:1px solid rgba(45,123,88,0.18)}
.flash-error{background:rgba(198,70,35,0.08);color:var(--accent-700);border:1px solid rgba(198,70,35,0.18)}

.auth-shell{max-width:560px;margin:22px auto}

.auth-card{
    background:#fff;
    border:1px solid #e5d8c5;
    border-radius:18px;
    padding:22px;
    box-shadow:0 18px 34px rgba(62,35,17,0.12);
}

.auth-card h2{font-size:42px;line-height:1.05;margin:0 0 16px;color:#121722}

.auth-callout{
    margin:0 0 16px;
    padding:12px 14px;
    border-radius:12px;
    background:linear-gradient(135deg,#fff3e6,#ffe7cf);
    border:1px solid #f2c58d;
    color:#4d3422;
    font-weight:700;
    line-height:1.5;
}

.auth-form{display:grid;gap:8px}

.auth-form label{font-weight:700;color:#2f2720}

.auth-form input{
    width:100%;
    padding:12px;
    margin-bottom:10px;
    border-radius:10px;
    border:1px solid #dfd6cb;
    background:#fff;
}

.auth-password-wrap{position:relative}
.auth-password-wrap input{padding-right:46px}

.auth-password-toggle{
    position:absolute;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    width:30px;
    height:30px;
    border:1px solid #ddd2c4;
    border-radius:50%;
    background:#fff9f0;
    color:#6e5a48;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    margin-top:-5px;
}

.auth-password-toggle.is-visible{border-color:#c64623;color:#c64623}

.auth-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.auth-error{
    color:#9d1f1f;
    background:#ffe9e9;
    border:1px solid #f3b6b6;
    border-radius:10px;
    padding:8px 10px;
    margin-bottom:10px;
}

.auth-success{
    color:#165c38;
    background:#e8f8ef;
    border:1px solid #b7e3c8;
    border-radius:10px;
    padding:8px 10px;
    margin-bottom:10px;
    font-weight:700;
}

.auth-account-card .auth-form input{margin-bottom:8px}

.auth-note{
    margin-top:14px;
    font-size:13px;
    line-height:1.45;
    color:#6d6255;
}

.admin-cat-panel{
    margin:0 0 18px;
    padding:18px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    box-shadow:var(--shadow-sm);
}

.admin-cat-create-form{display:grid;gap:12px}

.admin-cat-create-split{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.admin-cat-create-card{
    border:1px solid #e2d5c3;
    border-radius:12px;
    padding:14px;
    background:#fffaf2;
}

.admin-cat-create-card h4{
    margin:0 0 8px;
    font-size:17px;
    color:#2a241e;
}

.admin-cat-create-form label,
.admin-cat-inline-grid label{
    display:grid;
    gap:6px;
    font-weight:700;
    color:#342c25;
}

.admin-cat-create-form input,
.admin-cat-create-form select,
.admin-cat-inline-grid input,
.admin-cat-inline-grid select{
    width:100%;
    border:1px solid #d8c8b5;
    border-radius:10px;
    padding:10px 12px;
    background:#fffdf8;
}

.admin-cat-list{
    list-style:none;
    padding:0;
    margin:12px 0 0;
    display:grid;
    gap:8px;
}

.admin-cat-item{
    display:grid;
    grid-template-columns:1fr auto;
    gap:14px;
    padding:12px 14px;
    border:1px solid #e2d5c3;
    border-radius:10px;
    background:#fffaf2;
}

.admin-cat-left{
    display:grid;
    gap:6px;
    align-content:center;
}

.admin-cat-left strong{font-size:15px;color:#2c241d}

.admin-cat-right{
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
    justify-content:flex-end;
}

.admin-cat-inline-edit{
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
}

.admin-cat-inline-edit input,
.admin-cat-inline-edit select{
    border:1px solid #d8c8b5;
    border-radius:8px;
    padding:7px 10px;
    background:#fffdf8;
    min-height:38px;
}

.admin-cat-inline-edit input{min-width:180px}

.admin-cat-inline-edit select{min-width:190px}

.admin-cat-inline-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.admin-cat-meta{display:flex;gap:14px;flex-wrap:wrap;color:#6f665d;font-size:13px}

.admin-cat-group{margin-top:14px}

.admin-cat-group h4{
    margin:0 0 8px;
    font-size:16px;
    color:#2f2923;
}

.admin-cat-empty{color:#6f665d;font-size:14px}

.admin-cat-actions{display:flex;gap:8px;flex-wrap:wrap}

.admin-delete-btn{background:#b42318;box-shadow:none;min-height:40px;padding:0 14px}

.admin-delete-btn:hover{background:#8f1c14}

.page-hero,
.detail-hero,
.filters-panel,
.sidebar-card,
.detail-card,
.job-card,
.carousel-item,
.category-card,
.notice-strip,
.empty-state,
.search-box,
.publish-panel,
.info-card,
.hero-note{
    background:var(--surface);
    border:1px solid var(--border);
    box-shadow:var(--shadow-sm);
}

.portal-hero{
    position:relative;
    overflow:hidden;
    border-radius:28px;
    min-height:520px;
    color:#ffffff;
    background:#0f1720 url('../images/Portada.jpeg') center/cover no-repeat;
    border:none !important;
    box-shadow:var(--shadow-md);
}

.portal-hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg, rgba(10,14,20,0.28) 0%, rgba(10,14,20,0.52) 100%);
}

.portal-hero::after{
    content:"";
    position:absolute;
    inset:auto -120px -100px auto;
    width:280px;
    height:280px;
    border-radius:50%;
    background:rgba(212,160,56,0.16);
    filter:blur(8px);
    z-index:1;
}

.hero-bg{
    position:absolute;
    inset:0;
    z-index:0;
    line-height:0;
    overflow:hidden;
}

.hero-bg img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
    display:block;
}

.portal-hero-inner{
    position:relative;
    z-index:2;
    min-height:480px;
    padding:40px 34px;
    display:grid;
    grid-template-columns:minmax(0, 1.1fr) minmax(320px, .9fr);
    gap:28px;
    align-items:start;
}

.eyebrow,
.section-kicker{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.14em;
    color:var(--gold);
    margin-bottom:12px;
}

.portal-hero h2,
.page-hero h2,
.detail-hero h2{
    font-size:clamp(32px, 4vw, 54px);
    line-height:1.02;
    margin-bottom:12px;
}

.portal-hero p,
.page-hero p,
.detail-hero p{line-height:1.65;color:rgba(255,255,255,0.95)}

.hero-copy{
    display:flex;
    flex-direction:column;
    min-height:100%;
}

.hero-stats{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:24px;
}

.stat-card{
    min-width:150px;
    padding:14px 16px;
    border-radius:18px;
    background:rgba(255,255,255,0.18);
    border:1px solid rgba(255,255,255,0.32);
}

.stat-card strong{display:block;font-size:28px;line-height:1}
.stat-card span{display:block;margin-top:6px;font-size:13px;color:rgba(255,255,255,0.92)}

.hero-aside{display:grid;gap:16px;justify-items:end;align-self:stretch}

.search-box{
    width:min(100%, 440px);
    border-radius:22px;
    padding:20px;
    color:var(--text);
    background:rgba(255,255,255,0.95);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
}

.portal-search-box h3{font-size:22px;margin-bottom:14px}

.portal-search-box form,
.filters-form{display:grid;gap:12px}

.search-box input,
.search-box select,
.filters-form input,
.filters-form select,
input,
select,
textarea{
    width:100%;
    padding:13px 14px;
    border-radius:12px;
    border:1px solid #d8c8b5;
    background:#fffdf8;
    color:var(--text);
}

.quick-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.quick-links a{font-size:13px;font-weight:700;color:var(--accent)}

.hero-note{
    width:min(100%, 560px);
    margin-top:auto;
    border-radius:20px;
    padding:18px 20px;
}

.hero-note strong{display:block;font-size:20px;margin-bottom:8px;color:var(--accent)}
.hero-note p{color:var(--muted)}

.notice-strip,
.page-hero,
.filters-panel,
.detail-hero,
.detail-card,
.sidebar-card,
.empty-state,
.publish-panel{border-radius:22px}

.notice-strip,
.page-hero,
.detail-hero{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:20px 24px;
}

.publish-thanks{
    border-radius:18px;
    border:1px solid var(--border);
    padding:22px;
    background:linear-gradient(180deg, #fffdf9 0%, #fff6ea 100%);
}

.publish-thanks.featured{
    border-color:#e6c99e;
    background:linear-gradient(180deg, #fffaf2 0%, #ffefd9 100%);
}

.publish-thanks.standard{
    border-color:#d8e8dc;
    background:linear-gradient(180deg, #fcfffd 0%, #edf8f2 100%);
}

.publish-thanks-badge{
    display:inline-flex;
    align-items:center;
    padding:6px 11px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.04em;
    margin-bottom:12px;
    background:rgba(198,70,35,0.12);
    color:var(--accent-700);
}

.publish-thanks.standard .publish-thanks-badge{
    background:rgba(45,123,88,0.14);
    color:#1f6a4a;
}

.publish-thanks h3{
    margin:0 0 8px;
    font-size:30px;
    line-height:1.1;
    color:#2f241e;
}

.publish-thanks-copy{
    margin:0;
    color:#5d5145;
    line-height:1.65;
}

.publish-thanks-steps{
    margin-top:16px;
    display:grid;
    gap:10px;
}

.publish-thanks-step{
    border:1px solid #e7d5bb;
    background:#fffdf9;
    border-radius:12px;
    padding:12px 14px;
    display:grid;
    gap:3px;
}

.publish-thanks-step strong{
    font-size:14px;
    color:#42362d;
}

.publish-thanks-step span{
    font-size:13px;
    color:#766557;
}

.publish-thanks-step.is-done{
    border-color:#d8c5a3;
    background:#fff4e4;
}

.publish-thanks-step.is-active{
    border-color:#d8a45e;
    background:#ffe8c5;
}

.publish-thanks-actions{
    margin-top:16px;
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.notice-strip strong{display:block;font-size:18px;margin-bottom:4px}
.notice-strip span,
.compact-title p,
.empty-state p,
.detail-copy,
.sidebar-card p{color:var(--muted)}

.section-title{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:16px;
    margin:28px 0 16px;
}

.section-title h3{font-size:30px;line-height:1.05}
.section-title > a{font-weight:800;color:var(--accent)}

.compact-title{margin:0 0 16px}
.compact-title h3{font-size:24px}

.carousel{position:relative;margin-bottom:28px}
.carousel-track{display:flex;gap:18px;overflow-x:auto;scroll-behavior:smooth;padding-bottom:10px}
.carousel-track::-webkit-scrollbar{height:10px}
.carousel-track::-webkit-scrollbar-thumb{background:rgba(198,70,35,0.25);border-radius:99px}

.carousel-item{
    position:relative;
    min-width:300px;
    max-width:340px;
    padding:14px;
    border-radius:22px;
    transition:transform .2s ease, box-shadow .2s ease;
}

.carousel-item:hover,
.job-card:hover,
.category-card:hover,
.sidebar-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}

.carousel-media{
    overflow:hidden;
    border-radius:16px;
    margin-bottom:12px;
    position:relative;
    background:#ede2d3;
    aspect-ratio:16/10;
}

.carousel-media img,
.job-card-media img,
.job-thumb img{width:100%;height:100%;object-fit:cover;display:block}

.carousel-media.placeholder{background:linear-gradient(135deg, #f8ead6, #ead0b1)}

.media-overlay{
    position:absolute;
    inset:auto 0 0 0;
    padding:18px 14px 12px;
    background:linear-gradient(180deg, transparent, rgba(30,27,24,0.82));
    color:#fff;
}

.media-overlay h4{margin:0;font-size:18px;line-height:1.2}

.carousel-item.destacado{border:2px solid rgba(212,160,56,0.5)}

.carousel-badge{
    position:absolute;
    top:22px;
    left:22px;
    padding:7px 11px;
    border-radius:999px;
    background:var(--gold);
    color:#40231a;
    font-size:12px;
    font-weight:900;
    letter-spacing:.06em;
    z-index:2;
}

.carousel-thumb{display:none;margin-bottom:10px}
.carousel-thumb img{border-radius:12px}

.carousel-body p{font-size:14px;line-height:1.55;color:var(--muted);margin:10px 0 14px}
.job-meta-inline{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted);font-weight:700}

.carousel-item.enter-from-right{opacity:0;transform:translateX(20px) scale(.98)}
.carousel-item.enter-from-left{opacity:0;transform:translateX(-20px) scale(.98)}
.carousel-item.enter-active{opacity:1;transform:translateX(0) scale(1);transition:opacity .45s ease,transform .45s ease}

.carousel.with-nav .carousel-nav{position:absolute;inset:50% 0 auto 0;transform:translateY(-50%);display:flex;justify-content:space-between;padding:0 6px;pointer-events:none}
.carousel.with-nav .carousel-btn{pointer-events:auto;background:#fff8ef;border:1px solid var(--border);color:var(--accent);border-radius:50%;width:44px;height:44px;cursor:pointer;font-size:22px;box-shadow:var(--shadow-sm)}

.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}

.category-card{
    display:flex;
    flex-direction:column;
    gap:6px;
    min-height:118px;
    padding:20px;
    border-radius:20px;
    background:linear-gradient(180deg, #fffdf9, #fff5e9);
}

.category-card strong{font-size:18px;color:var(--text)}
.category-card span{font-size:13px;color:var(--accent);font-weight:800}

.market-layout,
.detail-layout{display:grid;grid-template-columns:minmax(0, 1.7fr) 320px;gap:22px;margin-top:10px}

.market-layout{align-items:start}

.market-sidebar{
    display:grid;
    gap:16px;
    margin-top:56px;
    align-self:start;
    align-content:start;
    grid-auto-rows:max-content;
}

.jobs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.portal-jobs-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.latest-jobs-more-wrap{display:flex;justify-content:flex-end;margin-top:14px}
.latest-jobs-more-link{font-weight:800;color:var(--accent)}
.latest-jobs-more-link:hover{color:var(--accent-700)}

.job-card{
    display:flex;
    gap:14px;
    align-items:flex-start;
    padding:16px;
    border-radius:20px;
}

.portal-job-card{background:linear-gradient(180deg, #fffdf9, #fff7ec)}

.portal-job-card.is-highlighted{
    border:2px solid rgba(212,160,56,0.78);
    box-shadow:0 12px 26px rgba(121,82,19,0.12);
}

.portal-job-card.is-highlighted .job-thumb{
    box-shadow:0 0 0 2px rgba(212,160,56,0.44) inset;
}

.job-card-media{width:150px;flex:0 0 150px;height:124px;border-radius:16px;overflow:hidden;background:#ead0b1}
.job-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, #d86a48, #f2c178);color:#fff;font-size:32px;font-weight:900}

.job-thumb{width:116px;height:88px;overflow:hidden;border-radius:14px;flex:0 0 116px}
.job-body,
.job-card-body{flex:1}

.job-meta,
.detail-meta{display:flex;flex-wrap:wrap;gap:10px 14px;color:var(--muted);font-size:13px;margin-bottom:10px}

.job-title{font-size:20px;font-weight:900;line-height:1.2;margin-bottom:10px}
.job-title a:hover{color:var(--accent)}

.job-desc{font-size:14px;line-height:1.6;color:var(--muted)}

.job-tags,
.detail-tags{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}

.tag{
    display:inline-flex;
    align-items:center;
    padding:7px 10px;
    border-radius:999px;
    background:#f7ede1;
    color:#7a4a2d;
    font-size:12px;
    font-weight:800;
}

.tag.is-accent{background:var(--accent-100);color:var(--accent)}

.job-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}
.salary,
.salary-badge{font-weight:900;color:var(--accent-700)}

.salary-badge{display:inline-flex;padding:9px 14px;border-radius:999px;background:var(--accent-100)}

.btn-primary,
.btn-outline{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:0 16px;
    border-radius:12px;
    font-weight:800;
    cursor:pointer;
    border:1px solid transparent;
}

.btn-primary{background:var(--accent);color:#fff;box-shadow:0 10px 24px rgba(198,70,35,0.22)}
.btn-primary:hover{background:var(--accent-700)}
.btn-outline{background:#fffaf2;color:var(--text);border-color:var(--border)}
.btn-outline:hover{border-color:var(--accent);color:var(--accent)}

.listing-grid{margin-top:20px}
.filters-panel{padding:22px}
.pagination-wrap{margin-top:20px;display:flex;justify-content:center}
.pagination{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

.empty-state{padding:28px}
.empty-state h3{font-size:26px;margin-bottom:10px}

.detail-hero{
    align-items:flex-start;
    background:linear-gradient(135deg, #fffaf3, #fff1df);
}

.detail-hero p{color:var(--muted)}
.detail-hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}

.detail-card,
.sidebar-card{padding:22px}
.detail-card h3,
.sidebar-card h4{font-size:22px;margin-bottom:14px}
.detail-copy{line-height:1.7;white-space:normal}

.detail-list{display:grid;gap:14px}
.detail-list div{padding-bottom:12px;border-bottom:1px solid var(--border)}
.detail-list dt{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px}
.detail-list dd{font-weight:700}

.emphasis-card{
    background:linear-gradient(180deg, #fff3e2, #fffdf8);
    border-color:#edc18e;
}

.info-card ul{padding-left:18px;color:var(--muted);display:grid;gap:8px}

.footer-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:22px;
    padding:28px 0;
}

footer{
    margin-top:48px;
    background:#2f1e18;
    color:#f7eadb;
    border-top:4px solid #c98c2a;
}

footer .container{margin:0 auto;padding-top:10px;padding-bottom:26px}
footer h4{font-size:18px;margin-bottom:12px;color:#fff7ef}
footer p{line-height:1.6;color:#dec8b5}
footer a{display:block;margin-bottom:8px;color:#f2dac7}

.footer-bottom{
    padding-top:18px;
    border-top:1px solid rgba(255,255,255,0.12);
    display:flex;
    justify-content:space-between;
    gap:12px;
    color:#cdb4a0;
    font-size:14px;
}

.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .6s ease}
.reveal.in-view{opacity:1;transform:translateY(0)}

/* ── Detalle de anuncio ── */
.detail-breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-bottom:20px;flex-wrap:wrap}
.detail-breadcrumb a{color:var(--accent);font-weight:700}
.detail-breadcrumb span{color:var(--muted)}

.detail-portada{border-radius:24px;overflow:hidden;margin-bottom:24px;max-height:420px;box-shadow:var(--shadow-md)}
.detail-portada img{width:100%;height:420px;object-fit:cover;display:block}

.detail-layout{display:grid;grid-template-columns:minmax(0,1.7fr) 320px;gap:22px;align-items:start}

.detail-main{display:grid;gap:18px}

.detail-head{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:24px 28px;box-shadow:var(--shadow-sm)}
.detail-head-top{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.detail-title{font-size:clamp(26px,3vw,40px);line-height:1.1;margin-bottom:14px}
.detail-badges{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.badge-empresa{font-size:16px;font-weight:900;color:var(--text)}
.detail-fecha{font-size:13px;color:var(--muted);margin-left:auto}

.detail-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:28px;box-shadow:var(--shadow-sm)}
.detail-card h2{font-size:22px;margin-bottom:18px;color:var(--text)}
.detail-copy{line-height:1.8;color:var(--muted);white-space:pre-line}

.detail-sidebar{display:grid;gap:16px;position:sticky;top:100px}

/* ── Empleos tipo bolsa (lista + detalle) ── */
.jobs-board-search{margin-bottom:16px}

.jobs-board-search-form{
    display:grid;
    grid-template-columns:1fr 240px auto;
    gap:10px;
    background:#edf2f8;
    border:1px solid #d3deea;
    border-radius:999px;
    padding:6px;
}

.search-input-wrap input,
.search-input-wrap select{
    border:none;
    background:transparent;
    border-radius:999px;
    min-height:44px;
    padding:0 16px;
    box-shadow:none;
}

.jobs-board-search-btn{min-width:120px;border-radius:999px}

.jobs-board-filters{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:16px;
}

.ctj-search-wrap{margin-bottom:14px}
.ctj-search-row{display:block}
.ctj-mobile-menu-btn{display:none}

.ctj-top-controls{
    position:fixed;
    left:50%;
    transform:translateX(-50%);
    width:min(calc(100% - 40px), var(--max-w));
    top:82px;
    z-index:55;
    background:#f6f1e8;
    border:1px solid #d7c8ae;
    border-radius:16px;
    padding:6px 8px;
    box-shadow:0 10px 24px rgba(62,35,17,.08);
    transition:top .22s ease;
}

body.empleos-immersive.empleos-hide-header .ctj-top-controls{top:8px}

body.empleos-no-header .ctj-top-controls{top:14px}

.ctj-top-controls-spacer{height:120px}

.ctj-search-form{
    display:grid;
    grid-template-columns:1fr 260px auto;
    gap:8px;
    align-items:center;
    padding:4px;
    background:#f3eadb;
    border:1px solid var(--border);
    border-radius:999px;
    box-shadow:var(--shadow-sm);
}

.ctj-search-field input,
.ctj-search-field select{
    width:100%;
    border:none;
    background:#fff;
    border-radius:999px;
    min-height:36px;
    padding:0 16px 0 42px;
    box-shadow:none;
}

.ctj-search-field select{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    color:#574a3d;
    padding-right:34px;
}

.ctj-search-field{position:relative;min-width:0}

.ctj-search-field input::placeholder{
    color:#857058;
    font-size:14px;
}

.ctj-search-field input:focus,
.ctj-search-field select:focus{
    outline:none;
    box-shadow:0 0 0 2px rgba(198,70,35,.2);
}

.ctj-icon{
    position:absolute;
    left:14px;
    top:50%;
    transform:translateY(-50%);
    color:#836447;
    font-size:15px;
    pointer-events:none;
}

.ctj-search-btn{min-width:56px;border-radius:999px;font-size:18px;padding:0}

.ctj-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:8px;
    padding:8px 10px;
    border-radius:14px;
    border:1px solid var(--border);
    background:var(--surface);
    box-shadow:var(--shadow-sm);
}

.ctj-toolbar-left{font-size:15px;color:#6f604f;font-weight:800}

.ctj-toolbar-right{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:nowrap;
    overflow-x:auto;
    white-space:nowrap;
    max-width:100%;
}

.ctj-toolbar-right::-webkit-scrollbar{height:6px}
.ctj-toolbar-right::-webkit-scrollbar-thumb{background:rgba(198,70,35,.25);border-radius:99px}

.ctj-post-link{min-height:42px}

.ctj-layout{
    display:grid;
    grid-template-columns:minmax(0, 0.95fr) minmax(0, 1.4fr);
    gap:6px;
    align-items:stretch;
}

.ctj-layout-board{
    height:calc(100dvh - 340px);
    min-height:340px;
}

body.empleos-no-header .ctj-layout-board{height:calc(100dvh - 278px)}

.ctj-list-pane{
    border:1px solid #e8dbc7;
    border-radius:16px;
    background:#fbf7f0;
    box-shadow:var(--shadow-sm);
    padding:10px;
    display:flex;
    flex-direction:column;
    min-height:0;
    overflow:hidden;
}

.ctj-result-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px;
    padding:6px 8px;
    border-radius:12px;
    border:1px solid #e5d8c5;
    background:#fff;
    margin-bottom:8px;
}

.ctj-result-head p{font-size:14px;color:#4f453c}
.ctj-result-head strong{font-size:22px;color:var(--accent-700)}

.ctj-alert-btn{
    border:1px solid #f0be5e;
    background:#ffd87b;
    color:#6d4300;
    border-radius:999px;
    min-height:32px;
    padding:0 12px;
    font-weight:800;
    cursor:pointer;
    font-size:12px;
}

.ctj-card-link{display:block;color:inherit;text-decoration:none}

.ctj-list{
    display:grid;
    gap:8px;
    overflow:auto;
    padding-right:4px;
}

.ctj-list::-webkit-scrollbar,
.ctj-detail-pane::-webkit-scrollbar{width:8px}

.ctj-list::-webkit-scrollbar-thumb,
.ctj-detail-pane::-webkit-scrollbar-thumb{background:rgba(198,70,35,.24);border-radius:99px}

.ctj-card{
    border:1px solid #e4d5bf;
    border-radius:12px;
    background:#fff;
    padding:8px;
    transition:border-color .2s ease, box-shadow .2s ease;
}

.ctj-card:hover{
    border-color:#c99064;
    box-shadow:0 10px 18px rgba(90,50,26,.1);
}

.ctj-card.is-active{
    border-color:#c9b79f;
    box-shadow:0 0 0 2px rgba(140,112,80,.14);
}

.ctj-card.is-featured{
    border-color:#c64623;
    box-shadow:0 0 0 2px rgba(198,70,35,.14);
}

.ctj-card.is-featured .ctj-logo{
    border-color:#d76a46;
}

.ctj-card-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-bottom:8px;
}

.ctj-badge{
    display:inline-flex;
    align-items:center;
    padding:4px 8px;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.05em;
    background:#fdeacc;
    color:#8f4f09;
}

.ctj-head-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap}

.ctj-tag-danger{
    display:inline-flex;
    align-items:center;
    padding:4px 8px;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
    background:#fde6de;
    color:#b23a1e;
}

.ctj-date{font-size:12px;color:#847466}

.ctj-card-body{
    display:grid;
    grid-template-columns:72px minmax(0,1fr) 170px;
    gap:10px;
    align-items:start;
}

.ctj-logo{
    width:72px;
    height:72px;
    border-radius:12px;
    border:1px solid #eadcca;
    object-fit:cover;
    background:#f7f0e4;
}

.ctj-logo-fallback{
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    font-size:28px;
    color:var(--accent);
}

.ctj-main h3{font-size:18px;line-height:1.2;margin-bottom:4px}
.ctj-main h3 a{color:#21334d}
.ctj-main h3 a:hover{color:var(--accent)}

.ctj-company{font-size:15px;font-weight:700;color:#3a4d66;margin-bottom:3px}
.ctj-location{font-size:12px;color:#7c6653;margin-bottom:3px;text-transform:capitalize}
.ctj-excerpt{font-size:14px;line-height:1.45;color:#6a645f}

.ctj-time{font-size:11px;color:#6f665d}

.ctj-side{display:grid;justify-items:end;gap:10px}
.ctj-salary{font-size:18px;font-weight:900;color:var(--accent-700)}

.ctj-inline-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:72px;
    min-height:30px;
    border-radius:999px;
    border:1px solid #c8b8a3;
    color:#8a7560;
    font-weight:700;
    font-size:13px;
}

.ctj-detail-pane{
    position:relative;
    top:0;
    min-height:0;
    overflow:hidden;
    padding:0 28px 0 2px;
}

.ctj-mobile-overlay{display:none}

.ctj-detail-close{display:none}

.ctj-detail-card{
    border:1px solid #e2d5c3;
    border-radius:12px;
    background:#fff;
    box-shadow:var(--shadow-sm);
    padding:10px;
    min-height:100%;
    height:100%;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}

.ctj-detail-head{
    display:grid;
    grid-template-columns:1fr 100px;
    gap:12px;
    align-items:center;
    padding-bottom:10px;
    margin-bottom:10px;
    border-bottom:1px solid #ece2d3;
}

.ctj-detail-head h3{
    font-size:28px;
    line-height:1.08;
    margin-bottom:6px;
    color:#1f2a36;
}

.ctj-detail-company{font-size:20px;font-weight:800;color:#24384f;margin-bottom:4px}
.ctj-detail-location{font-size:14px;color:#6f665d}

.ctj-detail-head img,
.ctj-detail-fallback{
    width:100px;
    height:100px;
    border-radius:12px;
    border:1px solid #e6d9c7;
    background:#f8efe1;
    display:flex;
    align-items:center;
    justify-content:center;
    justify-self:center;
}

.ctj-detail-head img{object-fit:contain}

.ctj-detail-fallback{
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:36px;
    font-weight:900;
    color:var(--accent);
}

.ctj-detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}

.ctj-icon-btn{
    width:44px;
    height:44px;
    border-radius:50%;
    border:1px solid #dccfbd;
    background:#fff7ed;
    color:#805f42;
    font-size:20px;
    cursor:pointer;
}

.ctj-icon-btn:hover{border-color:var(--accent);color:var(--accent)}

.ctj-detail-meta{
    list-style:none;
    margin:0 0 14px;
    padding:14px 0;
    border-top:1px solid #eadfce;
    border-bottom:1px solid #eadfce;
    display:grid;
    gap:8px;
    color:#4f453c;
}

.ctj-detail-meta strong{color:#2f2822}

.ctj-detail-scroll{
    overflow-y:auto;
    overflow-x:hidden;
    min-height:0;
    flex:1;
    padding-right:6px;
    scrollbar-gutter:stable;
}

.ctj-detail-scroll::-webkit-scrollbar{width:8px}
.ctj-detail-scroll::-webkit-scrollbar-thumb{background:rgba(198,70,35,.24);border-radius:99px}

.ctj-detail-copy{
    color:#2d2722;
    font-size:17px;
    line-height:1.7;
    overflow:visible;
}

.ctj-sidebar{display:grid;gap:12px;position:sticky;top:94px}

.ctj-side-card{
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    box-shadow:var(--shadow-sm);
    padding:16px;
}

.ctj-side-card h4{font-size:20px;color:#2f3948;margin-bottom:8px}
.ctj-side-card p{font-size:14px;color:#6d6660;line-height:1.45}

.ctj-side-summary ul{margin-top:10px;padding-left:18px;display:grid;gap:6px;color:#564c43}

.ctj-side-ads{display:grid;gap:8px}
.ctj-side-ads a{color:#1f5ea8;font-weight:800}
.ctj-side-ads a:hover{color:var(--accent)}

.ctj-side-cta{background:linear-gradient(180deg,#fffdf9,#fff4e8)}
.ctj-side-cta .btn-primary{width:100%;text-align:center;margin-top:10px}

.home-sponsor-banner{
    position:relative;
    margin:20px 0 24px;
    border:1px solid rgba(0,0,0,0.14);
    border-radius:14px;
    background:#0f2f2f;
    overflow:hidden;
    box-shadow:0 16px 30px rgba(0,0,0,.14);
}

.home-sponsor-hero{
    position:relative;
    display:flex;
    align-items:center;
    gap:18px;
    min-height:178px;
    padding:24px 26px;
    color:#fff;
    text-decoration:none;
    background:
        linear-gradient(180deg, rgba(0,0,0,.24), rgba(0,0,0,.62)),
        var(--ad-bg, url('../images/Portada.jpeg')) center/cover no-repeat;
}

.home-sponsor-icon{
    width:68px;
    height:68px;
    border-radius:50%;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#ff205f;
    border:3px solid #0f1720;
    box-shadow:0 12px 26px rgba(0,0,0,.34);
    font-size:14px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.home-sponsor-copy h3{
    margin:0 0 8px;
    font-size:36px;
    line-height:1.04;
    color:#fff;
}

.home-sponsor-copy p{
    margin:0;
    max-width:900px;
    font-size:22px;
    line-height:1.45;
    color:rgba(255,255,255,.92);
}

.home-sponsor-links{
    width:100%;
    min-height:56px;
    display:flex;
    align-items:center;
    gap:14px;
    padding:10px 14px;
    overflow-x:auto;
    white-space:nowrap;
    background:#eef4fb;
}

.home-sponsor-label{
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#1f5ea8;
    margin-right:6px;
}

.home-sponsor-links a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:9px 14px;
    border-radius:999px;
    border:1px solid #c7d5e7;
    background:#fff;
    color:#1f5ea8;
    font-weight:800;
    text-decoration:none;
}

.home-sponsor-links a:hover{border-color:#1f5ea8;background:#f7fbff}

.home-sponsor-more-wrap{margin:6px 0 10px;display:flex;justify-content:flex-end}
.home-sponsor-more-btn{font-weight:800}

.home-sponsor-add-btn{
    position:absolute;
    top:10px;
    right:10px;
    z-index:3;
    width:42px;
    height:42px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.35);
    background:rgba(15,23,32,.84);
    color:#fff;
    font-size:28px;
    line-height:1;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    box-shadow:0 8px 16px rgba(0,0,0,.25);
}

.home-sponsor-add-btn:hover{background:var(--accent);border-color:transparent}

.home-sponsor-older{margin:0 0 24px}

.home-sponsor-older-card{margin:0 0 12px}
.home-sponsor-older-card:last-child{margin-bottom:0}

.home-sponsor-hero-stacked{
    border-radius:14px;
    margin:0;
    min-height:170px;
}

.home-sponsor-hero-stacked:last-child{margin-bottom:0}

.home-sponsor-admin-actions{
    display:flex;
    gap:8px;
    align-items:center;
    justify-content:flex-end;
    margin-top:8px;
}

.home-sponsor-admin-actions form{margin:0}

.home-sponsor-admin-actions .btn-outline,
.home-sponsor-admin-actions .btn-primary{
    min-height:36px;
    padding:0 12px;
}

.home-sponsor-older-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}

.section-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.categories-toggle-btn{display:inline-flex}
.categories-collapsible.is-mobile-collapsed .category-grid{display:none}

.home-sponsor-older-item{
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:14px;
    overflow:hidden;
    box-shadow:var(--shadow-sm);
}

.older-media img{
    width:100%;
    height:120px;
    display:block;
    object-fit:cover;
}

.older-body{padding:12px}
.older-body h4{font-size:18px;line-height:1.2;margin:0 0 6px;color:#253345}
.older-body p{margin:0 0 10px;color:#6a635a;line-height:1.4}
.older-body a{color:#1f5ea8;font-weight:800}

.older-actions{
    margin-top:10px;
    display:flex;
    gap:8px;
    align-items:center;
}

.older-actions form{margin:0}

.older-actions .btn-outline,
.older-actions .btn-primary{
    min-height:36px;
    padding:0 12px;
}

.admin-pub-page,
.admin-pub-list{
    margin:0 0 20px;
    padding:18px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    box-shadow:var(--shadow-sm);
}

.home-sponsor-admin{
    margin:0 0 24px;
    padding:18px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    box-shadow:var(--shadow-sm);
}

.home-sponsor-admin h3{
    margin:0 0 8px;
    font-size:24px;
    color:var(--accent-700);
}

.home-sponsor-admin p{
    margin:0 0 14px;
    color:var(--muted);
    line-height:1.45;
}

.home-sponsor-admin-form{display:grid;gap:12px}

.home-sponsor-admin-form label{
    display:grid;
    gap:6px;
    font-weight:700;
    color:#3a322a;
}

.home-sponsor-admin-form input,
.home-sponsor-admin-form textarea{
    width:100%;
    border:1px solid #d8c8b5;
    border-radius:10px;
    padding:10px 12px;
    background:#fffdf8;
}

.home-sponsor-admin-form textarea{resize:vertical}

.home-sponsor-admin-form .admin-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.ads-horizontal-bar{
    margin:0 0 16px;
    border:1px dashed #b4c4d8;
    border-radius:12px;
    background:#eef4fb;
    overflow:hidden;
}

.ads-horizontal-track{
    width:100%;
    min-height:54px;
    display:flex;
    align-items:center;
    gap:14px;
    padding:8px 14px;
    overflow-x:auto;
    white-space:nowrap;
}

.ads-label{
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#1f5ea8;
    margin-right:6px;
}

.ads-horizontal-track a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 14px;
    border-radius:999px;
    border:1px solid #c7d5e7;
    background:#fff;
    color:#1f5ea8;
    font-weight:800;
    text-decoration:none;
}

.ads-horizontal-track a:hover{border-color:#1f5ea8;background:#f7fbff}

.filter-chip{
    min-height:42px;
    border-radius:12px;
    border:1px solid #ced7e3;
    background:#f5f8fc;
    padding:0 14px;
    font-weight:700;
    color:#24354f;
    width:auto;
    min-width:142px;
    flex:0 0 auto;
}

.ctj-post-link{flex:0 0 auto}

.jobs-board-cta{margin-left:auto}

.jobs-board-layout{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
    align-items:start;
}

.jobs-board-list-pane,
.jobs-board-detail-pane{
    background:#f8fbff;
    border:1px solid #d7e1ee;
    border-radius:16px;
    box-shadow:0 10px 24px rgba(36,53,79,.08);
}

.jobs-board-list-pane{padding:12px}

.jobs-board-detail-pane{display:none}

.jobs-board-result-head{
    background:#eef4fb;
    border:1px solid #d7e1ee;
    border-radius:12px;
    padding:12px 14px;
    margin-bottom:10px;
    color:#1c2d44;
    font-weight:700;
}

.jobs-board-list{
    display:grid;
    gap:10px;
    max-height:640px;
    overflow:auto;
    padding-right:4px;
}

.jobs-list-item{
    display:block;
    background:#fff;
    border:1px solid #d9e3f0;
    border-radius:12px;
    padding:12px;
    color:inherit;
    text-decoration:none;
    transition:border-color .18s ease, box-shadow .18s ease;
}

.jobs-list-item.active{border-color:#1f5ea8;box-shadow:0 0 0 2px rgba(31,94,168,.08)}
.jobs-list-item:hover{border-color:#1f5ea8;box-shadow:0 8px 18px rgba(31,94,168,.10)}

.jobs-list-item-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:8px;
    gap:10px;
}

.list-label{font-size:12px;font-weight:800;color:#8b6408}
.list-time{font-size:12px;color:#61748f}

.jobs-list-item-body{
    display:grid;
    grid-template-columns:72px 1fr;
    gap:12px;
    align-items:start;
}

.jobs-list-item-body img,
.jobs-list-avatar{
    width:72px;
    height:72px;
    border-radius:10px;
    object-fit:cover;
    background:#e8eef7;
}

.jobs-list-avatar{
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    color:#1f5ea8;
}

.jobs-list-item h4{font-size:28px;line-height:1.2;margin-bottom:6px;color:#12233b;font-weight:900}
.jobs-list-item .company{font-size:19px;color:#213852;font-weight:700;margin-bottom:4px}
.jobs-list-item .location{font-size:17px;color:#2a4766;margin-bottom:4px}
.jobs-list-item .excerpt{font-size:16px;color:#62748a;line-height:1.35}

.jobs-board-detail-pane{padding:20px;position:sticky;top:92px}

.jobs-detail-head{
    display:grid;
    grid-template-columns:1fr 80px;
    gap:16px;
    align-items:start;
    padding-bottom:14px;
    border-bottom:1px solid #d8e1ee;
    margin-bottom:14px;
}

.jobs-detail-head h3{font-size:32px;line-height:1.15;margin-bottom:8px;color:#15263f}
.jobs-detail-company{font-size:20px;font-weight:800;color:#1f5ea8;margin-bottom:8px}

.jobs-detail-rating{display:flex;gap:10px;flex-wrap:wrap;color:#4d627e;font-size:16px;font-weight:700}

.jobs-detail-head img{
    width:80px;
    height:80px;
    border-radius:12px;
    object-fit:cover;
    border:1px solid #d7e1ee;
}

.jobs-detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}

.jobs-detail-meta-list{display:grid;gap:8px;margin-bottom:14px;color:#2c4260}
.jobs-detail-meta-list strong{color:#132842}

.jobs-detail-copy{
    border-top:1px solid #d8e1ee;
    padding-top:14px;
    color:#2a415e;
    line-height:1.7;
    font-size:17px;
}

.salary-card{background:linear-gradient(135deg,#fff8ef,#fff3e0) !important}
.salary-display{font-size:36px;font-weight:900;color:var(--accent-700);margin-top:6px}

.contact-card{background:linear-gradient(180deg,#fffdf9,#fff5e9) !important}
.contact-empresa-name{font-size:18px;font-weight:900;color:var(--text);margin-bottom:16px}
.contact-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:#fff8ef;border:1px solid var(--border);margin-bottom:10px;font-weight:700;color:var(--text)}
.contact-row:hover{border-color:var(--accent);color:var(--accent)}
.contact-icon{font-size:20px;flex:0 0 auto}

@media(max-width:720px){
    .detail-layout{grid-template-columns:1fr}
    .detail-sidebar{position:static}
    .detail-portada img{height:260px}

    .jobs-board-search-form{grid-template-columns:1fr}
    .jobs-board-layout{grid-template-columns:1fr}
    .jobs-board-detail-pane{position:static}
    .jobs-board-cta{margin-left:0}

    .ctj-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}
    .ctj-search-form{grid-template-columns:1fr;gap:6px;padding:6px;border-radius:14px}
    .ctj-search-field input,
    .ctj-search-field select{min-height:38px;border-radius:10px;padding-left:36px}
    .ctj-search-field:last-child input,
    .ctj-search-field:last-child select{padding-right:42px}
    .ctj-search-btn{position:absolute;right:4px;top:4px;min-width:34px;min-height:30px;height:30px;width:34px;border-radius:999px;font-size:14px;padding:0}
    .ctj-mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border-radius:10px;border:1px solid #d8c9b7;background:#fff;color:#5e4f40;font-weight:900;letter-spacing:.04em;cursor:pointer}
    .ctj-toolbar{display:none;flex-direction:column;align-items:flex-start}
    .ctj-toolbar.is-open{display:flex}
    .ctj-toolbar-right{width:100%;flex-wrap:wrap;overflow:visible;white-space:normal}
    .filter-chip{width:100%;min-width:0}
    .ctj-top-controls{top:8px;padding:8px;width:calc(100% - 12px);border-radius:12px}
    body.empleos-immersive.empleos-hide-header .ctj-top-controls{top:8px}
    body.empleos-no-header .ctj-top-controls{top:8px}
    .ctj-top-controls-spacer{height:96px}
    .ctj-layout{grid-template-columns:1fr}
    .ctj-layout-board{height:auto;min-height:0}
    body.empleos-no-header .ctj-layout-board{height:auto}
    body.empleos-no-header{height:auto;overflow:auto}
    .ctj-list-pane{overflow:visible}
    .ctj-list{overflow:visible;max-height:none}
    .ctj-mobile-overlay{display:block;position:fixed;inset:0;background:rgba(24,20,18,.45);backdrop-filter:blur(1px);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:76}
    .ctj-mobile-overlay.is-open{opacity:1;pointer-events:auto}
    .ctj-detail-pane{position:fixed;left:0;right:0;bottom:0;z-index:82;padding:0 8px 8px;transform:translateY(104%);transition:transform .24s ease;pointer-events:none;max-height:92vh;overflow:visible}
    .ctj-detail-pane.is-mobile-open{transform:translateY(0);pointer-events:auto}
    .ctj-detail-card{height:auto;display:flex;overflow:hidden;border-radius:16px 16px 0 0;max-height:calc(92vh - 8px);padding-top:42px;position:relative}
    .ctj-detail-close{display:inline-flex;position:absolute;right:10px;top:8px;width:28px;height:28px;border-radius:50%;border:1px solid #d9cebf;background:#f8efe1;color:#5f5143;align-items:center;justify-content:center;font-size:22px;line-height:1;cursor:pointer;z-index:2}
    .ctj-detail-scroll{overflow:auto;flex:1;padding-right:2px}
    .ctj-detail-copy{overflow:visible}
    .ctj-sidebar{position:static}
    .ctj-card-body{grid-template-columns:72px minmax(0,1fr)}
    .ctj-side{justify-items:start;grid-column:1/-1;grid-template-columns:1fr auto;align-items:center}
    .ctj-detail-head{grid-template-columns:1fr}
    .ctj-detail-head h3{font-size:30px}
    .ctj-detail-company{font-size:24px}

    .home-sponsor-hero{min-height:148px;padding:18px}
    .home-sponsor-icon{width:56px;height:56px;font-size:12px}
    .home-sponsor-copy h3{font-size:24px}
    .home-sponsor-copy p{font-size:16px}
    .home-sponsor-banner{margin:14px 0 18px}
    .home-sponsor-hero-stacked{min-height:140px}
    .home-sponsor-older-grid{grid-template-columns:1fr 1fr}

    .home-sponsor-admin-form .admin-grid{grid-template-columns:1fr}

    .publish-review-terms{font-size:16px}
    .publish-review-buttons{justify-content:flex-start}
}

.wizard{max-width:var(--max-w);margin:18px auto 8px;padding:0 20px}
.wizard .steps{display:flex;justify-content:space-between;align-items:center;gap:8px}
.wizard .step{flex:1;text-align:center;position:relative;z-index:2;padding:8px 6px}
.wizard .step .circle{width:38px;height:38px;border-radius:50%;background:#f3e5d0;color:var(--accent);margin:0 auto;display:flex;align-items:center;justify-content:center;font-weight:700;transition:transform .28s ease,background .28s ease,color .28s ease,box-shadow .28s ease}
.wizard .step.active .circle{background:var(--accent);color:#fff;box-shadow:0 10px 30px rgba(198,70,35,0.18);transform:scale(1.06)}
.wizard .step.completed .circle{background:#ba7e34;color:#fff;box-shadow:0 10px 24px rgba(186,126,52,0.18);transform:scale(1.02)}
.wizard .step .label{margin-top:8px;font-size:12px;color:var(--muted);font-weight:700}
.wizard .progress-line{position:absolute;left:10%;right:10%;height:4px;background:#eadac4;top:20px;z-index:0;border-radius:4px}
.wizard .progress-filled{position:absolute;left:10%;height:4px;background:var(--accent);top:20px;z-index:0;border-radius:4px;transition:width .45s ease}
.wizard .step .badge{position:absolute;top:-10px;right:8px;background:#ba7e34;color:#fff;padding:3px 6px;border-radius:12px;font-size:11px;display:none}
.wizard .step .badge.current{background:var(--accent)}
.wizard .step.completed .badge,
.wizard .step.active .badge{display:block}
.wizard .step .tooltip{position:absolute;bottom:-28px;left:50%;transform:translateX(-50%);background:rgba(30,27,24,0.92);color:#fff;padding:6px 8px;border-radius:6px;font-size:12px;display:none;white-space:nowrap}
.wizard .step:hover .tooltip{display:block}

.publish-panel{max-width:820px;margin:18px auto;padding:18px}
.publish-panel .card{background:transparent;box-shadow:none;border-radius:8px}

.publish-review-form{display:grid;gap:10px}

.publish-review-actions-row{
    display:flex;
    align-items:center;
    min-height:44px;
}

.publish-review-terms{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    font-size:17px;
}

.publish-review-terms input{
    width:16px;
    height:16px;
    margin:0;
}

.publish-review-terms span{line-height:1.15}

.publish-review-buttons{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.publish-review-turnstile{
    margin:4px 0 6px;
}

.publish-review-turnstile .cf-turnstile{
    display:inline-block;
    max-width:100%;
}

.publish-turnstile-hint{
    display:block;
    margin-top:8px;
    color:#6c655d;
    font-size:13px;
}

.publish-turnstile-hint.is-error{
    color:#9d1f1f;
    font-weight:700;
}

@media (max-width:980px){
    .portal-hero-inner,
    .market-layout,
    .detail-layout{grid-template-columns:1fr}

    .market-sidebar{margin-top:0}

    .header-inner,
    .notice-strip,
    .page-hero,
    .detail-hero{align-items:flex-start;flex-direction:column}

    .header-inner{align-items:center;flex-direction:row;flex-wrap:wrap}
    .brand-copy span{display:none}

    .nav-mobile-toggle{
        margin-left:auto;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:42px;
        padding:0 16px;
        border-radius:10px;
        border:1px solid #d6c9b8;
        background:#fff;
        color:var(--muted);
        font-weight:900;
        letter-spacing:.04em;
        cursor:pointer;
    }

    .site-nav{
        display:none;
        width:100%;
        flex-direction:column;
        align-items:flex-start;
        gap:10px;
        padding-top:12px;
        border-top:1px solid #e6ddd2;
    }

    .site-nav.is-open{display:flex}
    .site-nav .nav-cta{margin-left:0}
    .site-nav .nav-user-menu{width:100%}
    .site-nav .nav-user-dropdown{position:static;margin-top:8px;min-width:0}

    .hero-aside{justify-items:stretch}
    .search-box{width:100%}
    .hero-copy{min-height:0}
    .hero-note{margin-top:16px}

    .portal-hero,
    .portal-hero-inner{min-height:0}
}

@media (max-width:720px){
    .container,
    .header-inner,
    .wizard{padding-left:14px;padding-right:14px}

    .portal-hero{padding:22px}
    .section-title{align-items:flex-start;flex-direction:column}
    .section-title h3{font-size:24px}
    .carousel-item{min-width:250px}
    .job-card,
    .footer-bottom{flex-direction:column}
    .job-card-media,
    .job-thumb{width:100%;height:180px;flex-basis:auto}
    .carousel-thumb{display:block}
    .carousel-item .carousel-media{display:none}
    .job-actions{align-items:flex-start;flex-direction:column}
    .wizard .label{display:none}

    .home-sponsor-hero{align-items:flex-start;gap:12px}
    .home-sponsor-copy h3{font-size:20px}
    .home-sponsor-copy p{font-size:14px}
    .home-sponsor-more-wrap{justify-content:flex-start}
    .home-sponsor-older-grid{grid-template-columns:1fr}
    .latest-jobs-more-wrap{justify-content:flex-start}

    .categories-toggle-btn{display:inline-flex}
}

@media (max-width:520px){
    .brand-copy h1{font-size:18px}
    .portal-hero h2,
    .page-hero h2,
    .detail-hero h2{font-size:30px}

    .auth-card{padding:16px}
    .auth-card h2{font-size:34px}

    .admin-cat-inline-grid{grid-template-columns:1fr}
    .admin-cat-item{grid-template-columns:1fr}
    .admin-cat-right{justify-content:flex-start}
    .admin-cat-inline-edit input,
    .admin-cat-inline-edit select{width:100%;min-width:0}
    .admin-cat-create-split{grid-template-columns:1fr}

    .filters-panel,
    .detail-card,
    .sidebar-card,
    .notice-strip,
    .page-hero,
    .detail-hero{padding:18px}
    .wizard .circle{width:34px;height:34px;font-size:13px}
    .wizard .progress-line{left:8%;right:8%}
    .wizard .progress-filled{left:8%}
}