:root {
    --boica-navy: #132240;
    --boica-navy-deep: #031333;
    --boica-accent: #f6d2a1;
    --boica-paper: #f8f8f8;
    --boica-border: #e6e8ec;
    --boica-text: #4f5968;
}

body.recruitment-public {
    margin: 0;
    background: #fff;
    color: var(--boica-text);
    font-family: "Open Sans", Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.7;
}

.recruitment-public h1,
.recruitment-public h2,
.recruitment-public h3,
.recruitment-public h4,
.recruitment-public h5,
.recruitment-public .btn,
.recruitment-public label {
    color: var(--boica-navy);
    font-family: "Figtree", "Open Sans", sans-serif;
    letter-spacing: 0;
}

.recruitment-public .public-header {
    background: #fff;
    border-bottom: 1px solid var(--boica-border);
}

.recruitment-public .public-header-logo {
    display: block;
    width: 190px;
    max-width: 52vw;
    height: auto;
}

.recruitment-public .btn {
    border-radius: 4px;
    font-weight: 700;
}

.recruitment-public .btn-primary {
    color: var(--boica-navy);
    background: var(--boica-accent);
    border-color: var(--boica-accent);
}

.recruitment-public .btn-primary:hover,
.recruitment-public .btn-primary:focus {
    color: #fff;
    background: var(--boica-navy);
    border-color: var(--boica-navy);
}

.recruitment-public .btn-white {
    color: var(--boica-navy);
    background: #fff;
    border-color: #d9dde4;
}

.recruitment-public .public-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: min(58vh, 540px);
    background-image: url("../img/recruitment/boica-atendimento.jpg");
    background-position: center 38%;
    background-size: cover;
    isolation: isolate;
}

.recruitment-public .public-hero::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: rgba(3, 19, 51, .68);
    content: "";
}

.recruitment-public .public-hero-content {
    max-width: 720px;
    padding: 72px 0;
}

.recruitment-public .public-hero h1,
.recruitment-public .public-hero p,
.recruitment-public .public-hero a {
    color: #fff;
}

.recruitment-public .public-hero .btn-primary {
    color: var(--boica-navy);
}

.recruitment-public .public-hero .btn-primary:hover,
.recruitment-public .public-hero .btn-primary:focus {
    color: #fff;
}

.recruitment-public .public-eyebrow {
    display: inline-block;
    margin-bottom: 14px;
    color: var(--boica-accent);
    font-family: "Figtree", sans-serif;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.recruitment-public .public-main {
    padding-top: 54px;
    padding-bottom: 64px;
}

.recruitment-public .public-section-heading {
    margin-bottom: 28px;
}

.recruitment-public .job-card {
    border: 1px solid var(--boica-border);
    border-radius: 6px;
    box-shadow: none;
}

.recruitment-public .job-card:hover {
    border-color: #bdc4cf;
    box-shadow: 0 10px 26px rgba(19, 34, 64, .08);
}

.recruitment-public .job-card .card-body {
    min-height: 260px;
    padding: 28px;
}

.recruitment-public .public-share-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
}

.recruitment-public .public-share-actions .btn-icon {
    width: 34px;
    height: 34px;
    padding: 0;
}

.recruitment-public .public-share-panel {
    padding-top: 18px;
    border-top: 1px solid var(--boica-border);
}

.recruitment-public .public-detail-band {
    background: var(--boica-navy);
    color: #fff;
}

.recruitment-public .public-detail-band h1,
.recruitment-public .public-detail-band p,
.recruitment-public .public-detail-band strong {
    color: #fff;
}

.recruitment-public .public-detail-band .text-muted {
    color: rgba(255, 255, 255, .7) !important;
}

.recruitment-public .public-detail-section {
    padding: 8px 0 30px;
    margin-bottom: 26px;
    border-bottom: 1px solid var(--boica-border);
}

.recruitment-public .public-apply-panel,
.recruitment-public .public-form {
    border: 1px solid var(--boica-border);
    border-radius: 6px;
    box-shadow: 0 12px 34px rgba(19, 34, 64, .06);
}

.recruitment-public .public-form .card-body {
    padding: clamp(24px, 4vw, 44px);
}

.recruitment-public .public-form-section + .public-form-section {
    padding-top: 34px;
    margin-top: 34px;
    border-top: 1px solid var(--boica-border);
}

.recruitment-public .form-control,
.recruitment-public .form-select {
    min-height: 48px;
    border-color: #ccd1d9;
    border-radius: 4px;
}

.recruitment-public textarea.form-control {
    min-height: 120px;
}

.recruitment-public .recruitment-scale-options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(44px, 1fr));
    gap: 8px;
}

.recruitment-public .recruitment-scale-options .btn {
    min-height: 44px;
    padding: 9px 8px;
    border-color: #ccd1d9;
}

.recruitment-public .recruitment-scale-options .btn-check:checked + .btn {
    color: var(--boica-navy);
    background: var(--boica-accent);
    border-color: var(--boica-accent);
}

.recruitment-public .form-control:focus,
.recruitment-public .form-select:focus,
.recruitment-public .form-check-input:focus {
    border-color: var(--boica-navy);
    box-shadow: 0 0 0 .2rem rgba(246, 210, 161, .45);
}

.recruitment-public .public-footer {
    padding: 28px 0;
    background: var(--boica-navy-deep);
    color: rgba(255, 255, 255, .78);
}

.recruitment-public .public-footer a {
    color: #fff;
}

@media (max-width: 767.98px) {
    .recruitment-public .public-header .container {
        gap: 16px;
    }

    .recruitment-public .public-hero {
        min-height: 500px;
        background-position: 57% center;
    }

    .recruitment-public .public-hero-content {
        padding: 56px 0;
    }

    .recruitment-public .public-main {
        padding-top: 38px;
        padding-bottom: 48px;
    }

    .recruitment-public .job-card .card-body {
        min-height: auto;
    }
}
