:root {
    --brand-950: #0b2442;
    --brand-900: #123b6d;
    --brand-800: #174d89;
    --brand-700: #1d5fa7;
    --brand-100: #e9f2fb;
    --accent-700: #16734b;
    --accent-100: #e9f7f0;
    --surface: #ffffff;
    --surface-soft: #f5f8fb;
    --border: #dbe4ee;
    --text: #172337;
    --muted: #5f6f82;
    --shadow-soft: 0 12px 34px rgba(16, 43, 73, 0.08);
}

html { scroll-behavior: smooth; }

.site-body {
    color: var(--text);
    background: var(--surface-soft);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}

.site-navbar {
    display: block;
    border-bottom: 1px solid rgba(219, 228, 238, 0.9);
    box-shadow: 0 4px 20px rgba(11, 36, 66, 0.06);
}

.site-logo { object-fit: contain; }

.mobile-menu { width: 100%; }
.mobile-nav-link {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 44px;
    padding: .65rem .8rem;
    border-radius: .75rem;
    font-weight: 600;
}
.mobile-nav-link:hover { background: var(--brand-100); color: var(--brand-900); }
.mobile-nav-link svg { width: 1.2rem; height: 1.2rem; }

.btn-primary {
    background-color: var(--brand-800) !important;
    border-color: var(--brand-800) !important;
}
.btn-primary:hover { background-color: var(--brand-900) !important; border-color: var(--brand-900) !important; }
.btn-outline.btn-primary { background: transparent !important; color: var(--brand-800) !important; }
.btn-outline.btn-primary:hover { background: var(--brand-900) !important; color: #fff !important; }

.card { border: 1px solid var(--border); box-shadow: var(--shadow-soft); }
.site-card { border-radius: 1rem; background: var(--surface); }

.home-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 22%, rgba(70, 170, 135, .26), transparent 27%),
        linear-gradient(125deg, var(--brand-950), var(--brand-800));
}
.home-hero::after {
    content: "";
    position: absolute;
    width: 25rem;
    height: 25rem;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    right: -8rem;
    bottom: -15rem;
}
.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .45rem .75rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    font-size: .875rem;
    font-weight: 700;
}
.search-panel { border: 0; border-radius: 1rem; box-shadow: 0 22px 50px rgba(6, 24, 46, .28); }
.metric-card { box-shadow: none; border: 1px solid var(--border); }
.metric-icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .85rem; background: var(--brand-100); color: var(--brand-800); }

.section-kicker { color: var(--brand-700); font-size: .82rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.section-title { color: var(--brand-950); letter-spacing: -.025em; }

.job-card {
    height: 100%;
    border: 1px solid var(--border);
    border-radius: 1rem;
    background: var(--surface);
    box-shadow: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.job-card:hover { transform: translateY(-3px); border-color: #a9c7e5; box-shadow: var(--shadow-soft); }
.company-mark { display: grid; place-items: center; flex: 0 0 auto; width: 3rem; height: 3rem; border-radius: .85rem; background: var(--brand-100); color: var(--brand-900); font-weight: 800; font-size: 1.1rem; }
.job-meta { display: inline-flex; align-items: center; gap: .35rem; color: var(--muted); font-size: .85rem; }
.job-meta svg { width: .95rem; height: .95rem; }
.salary-label { color: var(--accent-700); font-weight: 750; }

.filter-shell { border: 1px solid var(--border); border-radius: 1rem; background: #fff; box-shadow: none; }
.filter-label { display: block; margin-bottom: .4rem; color: #33445a; font-size: .82rem; font-weight: 700; }
.filter-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .4rem .65rem; border-radius: 999px; background: var(--brand-100); color: var(--brand-900); font-size: .8rem; font-weight: 700; }
.pagination-link { min-width: 2.6rem; min-height: 2.6rem; }

.site-footer { background: #eaf0f6; border-top: 1px solid var(--border); }
.cookie-notice {
    position: fixed;
    z-index: 80;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    max-width: 52rem;
    margin: auto;
    padding: 1rem 1.15rem;
    border: 1px solid #b8c8d8;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 20px 55px rgba(11, 36, 66, .22);
}
.cookie-notice:not(.hidden) { display: flex; }

.legal-content h2 { margin-top: 2rem; margin-bottom: .65rem; color: var(--brand-950); font-size: 1.35rem; font-weight: 800; }
.legal-content p, .legal-content li { color: #46576b; line-height: 1.75; }
.legal-content ul { margin: .5rem 0 0 1.2rem; list-style: disc; }

:focus-visible { outline: 3px solid #71aee8 !important; outline-offset: 2px !important; }

@media (max-width: 767px) {
    .home-hero h1 { font-size: 2.35rem; line-height: 1.08; }
    .cookie-notice:not(.hidden) { align-items: stretch; flex-direction: column; }
    .cookie-notice .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

@media print {
    .site-navbar, .site-footer, .cookie-notice { display: none !important; }
    .site-body { background: #fff !important; }
    #curriculo-preview { border: 0 !important; box-shadow: none !important; }
}
