:root {
    --red:#c60027;
    --red2:#970d13;
    --navy:#082644;
    --blue:#009acb;
    --text:#0a2540;
    --muted:#63758a;
    --bg:#f2f6fb;
    --white:#fff
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth
}

body {
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    color:var(--text);
    background:#fff
}

.container {
    width:min(1180px,calc(100% - 40px));
    margin:auto
}

.topbar {
    height:32px;
    background:var(--red);
    color:#fff;
    font-size:12px
}

.topbar-inner {
    height:100%;
    display:flex;
    gap:28px;
    align-items:center
}

.topbar a {
    color:#fff;
    text-decoration:none
}

.site-header {
    position:relative;
    z-index:50;
    background:#fff;
    border-bottom:1px solid #e8edf2
}

.nav-wrap {
    height:120px;
    display:flex;
    align-items:center;
    gap:42px
}

.brand img {
    width:190px;
    height:86px;
    object-fit:contain
}

.main-nav {
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:31px;
    height:100%
}

.nav-link {
    display:flex;
    align-items:center;
    height:100%;
    color:#0a2540;
    font-weight:800;
    font-size:13px;
    text-decoration:none;
    position:relative
}

.nav-link:hover:after,.nav-link:focus:after {
    content:"";
    position:absolute;
    bottom:23px;
    left:0;
    right:0;
    height:3px;
    background:#069acb
}

.contact-btn,.primary-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    border:0;
    border-radius:7px;
    background:var(--red);
    color:#fff;
    font-weight:800;
    padding:16px 25px;
    cursor:pointer
}

.nav-toggle {
    display:none;
    margin-left:auto;
    border:0;
    background:transparent;
    font-size:28px
}

.nav-item {
    height:100%;
    position:relative;
    display:flex;
    align-items:center
}

.mega {
    position:absolute;
    top:95px;
    left:50%;
    transform:translateX(-50%);
    width:540px;
    padding:26px;
    border:1px solid #d9e5ef;
    border-radius:22px;
    background:rgba(255,255,255,.97);
    box-shadow:0 20px 50px rgba(9,37,62,.15);
    opacity:0;
    visibility:hidden;
    transition:.16s;
    line-height:1.6
}

.mega-item.show .mega {
    opacity:1;
    visibility:visible
}

.mega h3 {
    margin:0 0 12px;
    color:#b40025
}

.mega h4 {
    color:#bd0929;
    margin:12px 0 4px
}

.mega p {
    font-size:13px;
    color:#53687e
}

.mega-services {
    width:900px
}

.mega-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px
}

.mega-service {
    border:1px solid #dfe8f0;
    border-radius:16px;
    padding:17px
}

.mega-service small {
    display:block;
    color:#45627d;
    margin-top:5px
}

.mega-values {
    width:520px
}

.mega-values ul {
    padding-left:18px;
    color:#45627d
}

.eyebrow {
    font-size:12px;
    font-weight:900;
    letter-spacing:.08em;
    color:#088fb8
}

.hero {
    min-height:800px;
    position:relative;
    background-image:var(--hero);
    background-size:cover;
    background-position:center
}

.hero-shade {
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(255,255,255,.90) 7%,rgba(255,255,255,.68) 46%,rgba(255,255,255,.05) 70%)
}

.hero-grid {
    position:relative;
    display:grid;
    grid-template-columns:1.2fr .65fr;
    gap:80px;
    align-items:center;
    min-height:800px
}

.hero-copy h1 {
    font-size:65px;
    line-height:1.04;
    letter-spacing:-1.5px;
    margin:0 0 26px;
    max-width:620px
}

.hero-copy p {
    max-width:540px;
    line-height:1.7;
    font-size:17px;
    margin-bottom:28px
}

.quick-box {
    background:rgba(255,255,255,.94);
    padding:22px;
    border-radius:16px;
    box-shadow:0 18px 45px rgba(8,38,68,.12)
}

.quick-box h2 {
    margin:0 0 10px;
    font-size:24px
}

.quick-item {
    display:grid;
    grid-template-columns:50px 1fr 20px;
    gap:12px;
    align-items:center;
    background:#fff;
    border:1px solid #dbe6f0;
    border-radius:13px;
    padding:12px;
    margin:10px 0;
    text-decoration:none
}

.quick-icon {
    font-size:31px
}

.quick-item strong {
    display:block;
    font-size:13px;
    color:#007bad
}

.quick-item small {
    display:block;
    margin-top:4px;
    font-size:11px;
    line-height:1.35;
    color:#526b81
}

.quick-item b {
    font-size:24px;
    color:#087ea9
}

.services-section {
    padding:58px 0 70px
}

.section-center {
    text-align:center
}

.section-center h2 {
    font-size:29px;
    margin-bottom:8px
}

.section-center p {
    color:var(--muted);
    margin:0
}

.service-row {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:35px;
    margin-top:56px
}

.service-home {
    text-align:center
}

.service-icon {
    font-size:35px
}

.service-home h3 {
    font-size:16px;
    margin:12px 0 8px
}

.service-home p {
    font-size:14px;
    line-height:1.5;
    color:#60768d
}

.jobs-intro,.since,.blog-cta {
    background:linear-gradient(90deg,#9c0c10,#333034);
    color:#fff;
    padding:72px 0
}

.jobs-intro h2,.since h2 {
    max-width:930px;
    font-size:48px;
    line-height:1.08;
    margin:0 0 24px
}

.jobs-intro p,.since p {
    max-width:780px;
    font-size:17px;
    line-height:1.65;
    margin:0
}

.jobs-area {
    background:var(--bg);
    padding:70px 0
}

.job-panel {
    background:var(--red);
    border-radius:15px;
    padding:15px 15px 18px;
    color:#fff;
    box-shadow:0 18px 40px rgba(10,37,64,.10)
}

.job-panel>h2 {
    text-align:center;
    font-size:27px;
    font-weight:500;
    margin:3px 0 18px
}

.job-filters {
    display:grid;
    grid-template-columns:1.2fr 1.2fr .8fr .8fr auto;
    gap:20px;
    align-items:end;
    margin-bottom:38px
}

.job-filters label {
    font-size:12px
}

.job-filters input,.job-filters select {
    width:100%;
    display:block;
    margin-top:8px;
    height:40px;
    border:0;
    border-radius:5px;
    padding:0 12px;
    background:#fff;
    color:#263d55
}

.job-filters button {
    height:40px;
    border:0;
    border-radius:5px;
    background:#0878e8;
    color:#fff;
    padding:0 22px;
    cursor:pointer
}

.job-table-wrap {
    overflow:auto;
    background:#fff
}

.job-table {
    width:100%;
    border-collapse:collapse;
    color:#17324e;
    font-size:12px;
    min-width:1040px
}

.job-table th,.job-table td {
    border-bottom:1px solid #d9dde1;
    padding:10px 9px;
    text-align:left;
    vertical-align:top
}

.job-table th {
    background:#f7f7f7;
    font-weight:800
}

.apply-btn {
    display:inline-block;
    background:#096caf;
    color:#fff;
    text-decoration:none;
    border-radius:5px;
    padding:9px 12px
}

.empty {
    text-align:center!important;
    padding:25px!important
}

.blog-cards,.blog-list {
    background:var(--bg);
    padding:70px 0
}

.cards-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px
}

.blog-card {
    overflow:hidden;
    background:#fff;
    border-radius:20px;
    box-shadow:0 16px 35px rgba(10,37,64,.10)
}

.blog-card>img {
    width:100%;
    height:220px;
    object-fit:cover;
    display:block
}

.blog-body {
    padding:24px 25px 28px
}

.blog-body>span,.article-cat {
    display:inline-block;
    background:#fff0f2;
    color:#c40021;
    border-radius:30px;
    padding:7px 12px;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase
}

.blog-body h3 {
    font-size:23px;
    line-height:1.15;
    margin:16px 0
}

.blog-body p {
    color:#64778c;
    font-size:14px;
    line-height:1.6;
    min-height:68px
}

.blog-body a {
    color:#c40021;
    font-weight:800;
    text-decoration:none;
    font-size:13px
}

.since {
    padding:78px 0
}

.footer {
    background:#050505;
    color:#fff;
    padding:27px 0
}

.footer-inner {
    display:flex;
    justify-content:space-between;
    gap:30px;
    align-items:center;
    font-size:12px
}

.footer strong {
    display:block;
    font-size:14px
}

.footer small {
    display:block;
    margin-top:5px;
    color:#cbd6df
}

.footer-social {
    display:flex;
    gap:12px
}

.footer-social a {
    color:#fff
}

.blog-hero {
    position:relative;
    background-image:linear-gradient(90deg,rgba(155,0,0,.92),rgba(27,38,49,.88)),var(--bloghero);
    background-size:cover;
    background-position:center;
    padding:78px 0;
    color:#fff
}

.blog-hero h1 {
    font-size:52px;
    margin:0 0 20px
}

.blog-hero p {
    max-width:760px;
    font-size:17px;
    line-height:1.6
}

.blog-cta {
    text-align:center
}

.blog-cta h2 {
    font-size:34px;
    margin:0 0 15px
}

.blog-cta p {
    max-width:760px;
    margin:auto;
    line-height:1.7
}

.article-page,.simple-page {
    background:#f5f8fc;
    padding:65px 0;
    min-height:600px
}

.article-wrap {
    max-width:900px
}

.article-wrap h1 {
    font-size:48px;
    line-height:1.06;
    margin:18px 0
}

.article-subtitle {
    font-size:20px;
    color:#53687e
}

.article-meta {
    color:#75869a;
    font-size:13px;
    margin:20px 0
}

.article-cover {
    width:100%;
    max-height:520px;
    object-fit:cover;
    border-radius:20px
}

.article-content {
    background:#fff;
    border-radius:20px;
    padding:38px;
    margin-top:30px;
    font-size:17px;
    line-height:1.8
}

.article-content img {
    max-width:100%
}

.source {
    font-size:13px;
    color:#6b7d8f
}

.form-page {
    max-width:900px
}

.public-form {
    margin-top:30px;
    background:#fff;
    padding:30px;
    border-radius:20px;
    box-shadow:0 18px 45px rgba(10,37,64,.08)
}

.public-form label {
    display:block;
    font-size:13px;
    font-weight:800;
    margin-bottom:18px
}

.public-form input,.public-form select,.public-form textarea {
    width:100%;
    display:block;
    margin-top:8px;
    border:1px solid #d8e1e8;
    border-radius:9px;
    padding:12px;
    font:inherit
}

.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 20px
}

.public-alert {
    padding:18px;
    border-radius:12px;
    margin:25px 0
}

.public-alert.success {
    background:#e8f8ee;
    color:#166534
}

.public-alert.error {
    background:#fff0f1;
    color:#8f1f2c
}

@media(max-width:980px) {
    .nav-wrap {
        height:auto;
        min-height:92px
    }
    .brand img {
        width:150px;
        height:70px
    }
    .nav-toggle {
        display:block
    }
    .main-nav {
        display:none;
        position:absolute;
        top:92px;
        left:0;
        right:0;
        background:#fff;
        flex-direction:column;
        height:auto;
        padding:20px;
        box-shadow:0 15px 30px #0002
    }
    .main-nav.open {
        display:flex
    }
    .nav-item,.nav-link {
        height:auto;
        width:100%;
        padding:8px
    }
    .mega {
        display:none!important
    }
    .contact-btn {
        margin-left:0
    }
    .hero-grid {
        grid-template-columns:1fr;
        gap:20px;
        padding:60px 0
    }
    .hero-copy h1 {
        font-size:42px
    }
    .quick-box {
        max-width:520px
    }
    .service-row,.cards-grid {
        grid-template-columns:1fr 1fr
    }
    .job-filters {
        grid-template-columns:1fr 1fr
    }
    .jobs-intro h2 {
        font-size:38px
    }
}

@media(max-width:620px) {
    .container {
        width:min(100% - 24px,1180px)
    }
    .topbar {
        height:auto;
        padding:8px 0
    }
    .topbar-inner {
        flex-wrap:wrap;
        gap:8px 18px
    }
    .nav-wrap {
        gap:10px
    }
    .contact-btn {
        display:none
    }
    .hero-copy h1,.blog-hero h1,.article-wrap h1 {
        font-size:36px
    }
    .service-row,.cards-grid,.form-grid {
        grid-template-columns:1fr
    }
    .job-filters {
        grid-template-columns:1fr
    }
    .jobs-intro h2,.since h2 {
        font-size:34px
    }
    .footer-inner {
        flex-direction:column;
        align-items:flex-start
    }
    .blog-card>img {
        height:200px
    }
    .article-content {
        padding:22px
    }
}

/* =========================================================
   JPTUR V1.2 - Empregos no Japão
   ========================================================= */
.secondary-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    border:1px solid #cbd8e4;
    border-radius:7px;
    background:#fff;
    color:var(--navy);
    font-weight:800;
    padding:15px 24px
}

.hero-actions {
    display:flex;
    gap:12px;
    flex-wrap:wrap
}

.jobs-kicker {
    display:block;
    font-size:12px;
    font-weight:900;
    letter-spacing:.13em;
    margin-bottom:13px;
    color:#ffd8de
}

.jobs-home-head {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:18px
}

.jobs-home-head div {
    font-size:18px
}

.jobs-home-head strong {
    font-size:34px;
    color:var(--red)
}

.jobs-home-head a {
    font-weight:800;
    color:var(--red);
    text-decoration:none
}

.modern-job-search {
    background:#fff;
    border:1px solid #dce5ed;
    border-radius:18px;
    padding:18px;
    display:grid;
    grid-template-columns:1.6fr 1fr 1fr auto;
    gap:14px;
    align-items:end;
    box-shadow:0 14px 35px rgba(10,37,64,.06);
    margin-bottom:25px
}

.modern-job-search label,.jobs-filter-panel label {
    font-size:12px;
    font-weight:800;
    color:#475d72
}

.modern-job-search label span,.jobs-filter-panel label span {
    display:block;
    margin-bottom:7px
}

.modern-job-search input,.modern-job-search select,.jobs-filter-panel input,.jobs-filter-panel select {
    width:100%;
    height:44px;
    border:1px solid #d7e1e9;
    border-radius:9px;
    background:#fff;
    padding:0 12px;
    color:#243b50;
    font:inherit
}

.modern-job-search button,.filter-submit {
    height:44px;
    border:0;
    border-radius:9px;
    background:var(--red);
    color:#fff;
    padding:0 21px;
    font-weight:800;
    cursor:pointer
}

.job-category-strip {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
    margin:24px 0
}

.job-category-strip a,.category-cards a {
    display:flex;
    align-items:center;
    gap:11px;
    text-decoration:none;
    background:#fff;
    color:var(--text);
    border:1px solid #dce5ed;
    border-radius:14px;
    padding:14px
}

.job-category-strip b,.category-cards b {
    width:40px;
    height:40px;
    border-radius:11px;
    display:grid;
    place-items:center;
    background:#fff1f3;
    color:var(--red);
    font-size:20px
}

.job-category-strip span,.category-cards span {
    font-weight:850
}

.job-category-strip small,.category-cards small {
    display:block;
    margin-left:auto;
    color:#6a7d90;
    font-size:11px
}

.province-pills {
    display:flex;
    gap:9px;
    flex-wrap:wrap;
    margin:18px 0 28px
}

.province-pills a {
    min-width:126px;
    background:#0d5f99;
    color:#fff;
    text-decoration:none;
    border-radius:11px;
    overflow:hidden;
    text-align:center
}

.province-pills strong,.province-pills span {
    display:block;
    padding:8px 10px
}

.province-pills span {
    background:#f0c928;
    color:#172b3f;
    font-size:11px
}

.job-card-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px
}

.job-card {
    background:#fff;
    border:1px solid #dce5ed;
    border-radius:18px;
    padding:21px;
    box-shadow:0 14px 34px rgba(10,37,64,.06);
    display:flex;
    flex-direction:column;
    min-width:0
}

.job-card-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px
}

.job-card-top>div {
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    justify-content:flex-end
}

.job-code,.job-category,.job-featured {
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:6px 9px;
    font-size:10px;
    font-weight:900
}

.job-code {
    background:#eef4f9;
    color:#526b81
}

.job-category {
    background:#edf7fb;
    color:#08799f
}

.job-featured {
    background:#fff0f1;
    color:#b00024
}

.job-card h3 {
    font-size:22px;
    line-height:1.15;
    margin:15px 0 9px
}

.job-card h3 a {
    color:var(--navy);
    text-decoration:none
}

.job-card h3 a:hover {
    color:var(--red)
}

.job-location {
    font-size:12px;
    color:#65798d;
    margin:0 0 13px;
    line-height:1.45
}

.job-service {
    color:#455d73;
    font-size:13px;
    line-height:1.55;
    margin:0 0 17px;
    min-height:40px
}

.job-facts {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    margin-top:auto
}

.job-facts span {
    border:1px solid #e0e7ed;
    background:#fafcfe;
    border-radius:10px;
    padding:9px;
    font-size:12px;
    line-height:1.35;
    overflow-wrap:anywhere
}

.job-facts b {
    display:block;
    color:#718497;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.05em;
    margin-bottom:4px
}

.job-card-actions {
    display:flex;
    gap:8px;
    margin-top:17px
}

.job-detail-btn,.apply-btn-modern {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    border-radius:9px;
    padding:10px 12px;
    font-weight:850;
    font-size:12px
}

.job-detail-btn {
    border:1px solid #d2dee8;
    color:#244760;
    background:#fff
}

.apply-btn-modern {
    background:var(--red);
    color:#fff;
    flex:1
}

.center-cta {
    text-align:center;
    margin-top:30px
}

.jobs-page-hero {
    background:linear-gradient(100deg,#9b0c13,#2f2f34);
    color:#fff;
    padding:58px 0
}

.jobs-page-hero span {
    font-size:11px;
    font-weight:900;
    letter-spacing:.13em;
    color:#ffd2d7
}

.jobs-page-hero h1 {
    font-size:50px;
    margin:9px 0 12px;
    letter-spacing:-1px
}

.jobs-page-hero p {
    max-width:760px;
    line-height:1.65;
    margin:0;
    color:#f2edf0
}

.jobs-total {
    margin-top:22px;
    font-size:14px
}

.jobs-total strong {
    font-size:26px;
    margin-right:5px
}

.jobs-catalog {
    background:#f2f6fb;
    padding:38px 0 70px
}

.jobs-filter-panel {
    background:#fff;
    border:1px solid #dae4ec;
    border-radius:20px;
    padding:21px;
    box-shadow:0 16px 38px rgba(10,37,64,.06)
}

.filter-title {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:18px
}

.filter-title small,.catalog-heading span {
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
    color:var(--red)
}

.filter-title h2,.catalog-heading h2 {
    margin:4px 0 0;
    font-size:25px
}

.filter-title a {
    color:#6b7e91;
    font-weight:800;
    font-size:12px
}

.jobs-filter-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px
}

.filter-wide {
    grid-column:span 2
}

.filter-submit {
    align-self:end
}

.catalog-section,.province-section {
    margin-top:34px
}

.catalog-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:16px
}

.active-filter {
    background:#fff0f2;
    color:#a60022;
    padding:8px 12px;
    border-radius:999px;
    font-size:12px;
    font-weight:800
}

.category-cards {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:10px;
    margin-bottom:18px
}

.category-cards a.active {
    border-color:var(--red);
    box-shadow:inset 0 0 0 1px var(--red)
}

.public-pagination {
    display:flex;
    justify-content:center;
    gap:7px;
    margin-top:26px
}

.public-pagination a {
    min-width:38px;
    height:38px;
    display:grid;
    place-items:center;
    background:#fff;
    color:#243d54;
    border:1px solid #d8e2ea;
    border-radius:8px;
    text-decoration:none;
    font-weight:800
}

.public-pagination a.active {
    background:var(--red);
    color:#fff;
    border-color:var(--red)
}

.jobs-empty {
    background:#fff;
    border:1px dashed #cfdce7;
    border-radius:17px;
    padding:38px;
    text-align:center
}

.jobs-empty h3 {
    margin-top:0
}

.province-grid {
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:12px
}

.province-grid a {
    display:flex;
    flex-direction:column;
    text-decoration:none;
    color:#14314b;
    background:#fff;
    border:1px solid #dbe5ed;
    border-radius:14px;
    overflow:hidden
}

.province-grid strong {
    padding:13px 13px 2px;
    font-size:15px
}

.province-grid small {
    padding:0 13px 10px;
    color:#748699
}

.province-grid b {
    margin-top:auto;
    background:#f1c92c;
    padding:8px 13px;
    font-size:11px
}

.province-grid a.active {
    box-shadow:inset 0 0 0 2px var(--red)
}

.job-detail-page {
    background:#f3f6fa
}

.job-detail-hero {
    background:linear-gradient(105deg,#8f0b12,#323238);
    color:#fff;
    padding:42px 0
}

.breadcrumb {
    font-size:12px;
    color:#e8dfe2;
    margin-bottom:18px
}

.breadcrumb a {
    color:#fff;
    text-decoration:none
}

.breadcrumb span {
    margin:0 7px;
    color:#d7c1c7
}

.job-detail-title {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:28px
}

.job-detail-title h1 {
    font-size:43px;
    line-height:1.08;
    margin:10px 0
}

.job-detail-title p {
    margin:0;
    color:#e7dee1
}

.detail-badges {
    display:flex;
    gap:8px
}

.detail-badges span {
    background:#ffffff1c;
    border:1px solid #ffffff30;
    border-radius:999px;
    padding:6px 10px;
    font-size:11px;
    font-weight:850
}

.detail-badges .highlight {
    background:#fff;
    color:#a80022
}

.detail-apply {
    background:#fff;
    color:#a90022;
    text-decoration:none;
    border-radius:10px;
    padding:14px 19px;
    font-weight:900;
    white-space:nowrap
}

.job-detail-content {
    padding:34px 0 52px
}

.detail-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 310px;
    gap:22px;
    align-items:start
}

.detail-card {
    background:#fff;
    border:1px solid #dce5ed;
    border-radius:18px;
    padding:23px;
    box-shadow:0 12px 28px rgba(10,37,64,.05)
}

.detail-card h2,.detail-card h3 {
    margin-top:0
}

.detail-table {
    border:1px solid #e1e7ed;
    border-radius:13px;
    overflow:hidden
}

.detail-table>div {
    display:grid;
    grid-template-columns:190px 1fr;
    border-bottom:1px solid #e4e9ee
}

.detail-table>div:last-child {
    border-bottom:0
}

.detail-table strong,.detail-table span {
    padding:13px 14px;
    line-height:1.5
}

.detail-table strong {
    background:#f7f9fb;
    font-size:12px
}

.detail-table span {
    font-size:13px
}

.detail-text {
    border-top:1px solid #e3e9ee;
    margin-top:22px;
    padding-top:20px
}

.detail-text p {
    color:#4d6579;
    line-height:1.7
}

.detail-bottom-apply {
    margin-top:25px;
    background:#f6f9fc;
    border-radius:13px;
    padding:16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px
}

.detail-bottom-apply strong,.detail-bottom-apply small {
    display:block
}

.detail-bottom-apply small {
    color:#6f8295;
    margin-top:4px
}

.detail-side {
    display:grid;
    gap:15px
}

.summary-card>div {
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:11px 0;
    border-bottom:1px solid #edf0f3;
    font-size:12px
}

.summary-card>div:last-child {
    border-bottom:0
}

.summary-card span {
    color:#748699
}

.summary-card b {
    text-align:right
}

.notice-card {
    background:#fff9e7;
    border-color:#f2dc9c
}

.notice-card strong {
    color:#805d00
}

.notice-card p {
    font-size:12px;
    line-height:1.55;
    color:#6a5a2d;
    margin-bottom:0
}

.related-jobs {
    padding:0 0 65px
}

.job-card.compact .job-service {
    display:none
}

.application-page .application-head {
    margin-bottom:20px
}

.application-head h1 {
    font-size:38px;
    margin:10px 0
}

.back-link {
    display:inline-block;
    margin-bottom:18px;
    color:#5d7489;
    text-decoration:none;
    font-weight:800;
    font-size:12px
}

.form-section-title {
    display:flex;
    gap:10px;
    align-items:center;
    border-bottom:1px solid #e7edf2;
    padding-bottom:12px;
    margin:6px 0 18px
}

.form-section-title>span {
    width:31px;
    height:31px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--red);
    color:#fff;
    font-weight:900
}

.form-section-title strong,.form-section-title small {
    display:block
}

.form-section-title small {
    color:#7b8c9d;
    margin-top:3px;
    font-weight:400
}

@media(max-width:1080px) {
    .job-card-grid {
        grid-template-columns:1fr 1fr
    }
    .province-grid {
        grid-template-columns:repeat(4,1fr)
    }
    .jobs-filter-grid {
        grid-template-columns:repeat(3,1fr)
    }
    .filter-wide {
        grid-column:span 2
    }
    .category-cards,.job-category-strip {
        grid-template-columns:repeat(2,1fr)
    }
}

@media(max-width:760px) {
    .modern-job-search,.jobs-filter-grid {
        grid-template-columns:1fr
    }
    .filter-wide {
        grid-column:auto
    }
    .job-card-grid {
        grid-template-columns:1fr
    }
    .province-grid {
        grid-template-columns:1fr 1fr
    }
    .job-detail-title {
        align-items:flex-start;
        flex-direction:column
    }
    .job-detail-title h1 {
        font-size:34px
    }
    .detail-layout {
        grid-template-columns:1fr
    }
    .detail-table>div {
        grid-template-columns:1fr
    }
    .detail-table strong {
        padding-bottom:4px
    }
    .detail-table span {
        padding-top:4px
    }
    .detail-bottom-apply {
        align-items:flex-start;
        flex-direction:column
    }
    .jobs-page-hero h1 {
        font-size:39px
    }
    .category-cards,.job-category-strip {
        grid-template-columns:1fr
    }
    .catalog-heading,.filter-title,.jobs-home-head {
        align-items:flex-start;
        flex-direction:column
    }
    .job-card-actions {
        flex-direction:column
    }
    .apply-btn-modern {
        flex:auto
    }
    .province-pills a {
        flex:1 1 130px
    }
}

@media(max-width:480px) {
    .province-grid {
        grid-template-columns:1fr
    }
    .jobs-page-hero {
        padding:42px 0
    }
    .job-detail-hero {
        padding:31px 0
    }
    .job-card {
        padding:17px
    }
    .public-form {
        padding:20px
    }
}