/* Vacancy detail: the approved MMO palette and an editorial reading rhythm. */
body.single-job_listing { --mmo-blue-dark:#064b79; --mmo-muted:#566b7a; --mmo-line:#d7e4eb; --mmo-paper:#fbfcfd; }
.single-job_listing .vacancy-page { padding:0; }
.single-job_listing .single_job_listing.vacancy { padding:0; border:0; border-radius:0; background:transparent; }
.vacancy-hero { padding:30px 0 38px; background:#eaf5fb; border-bottom:1px solid #d2e6f0; }
.vacancy-back { display:inline-block; margin-bottom:32px; font-size:.8rem; font-weight:700; text-decoration:none; }
.vacancy-employer { display:flex; align-items:center; gap:14px; }
.vacancy-employer img { width:64px; height:64px; padding:5px; object-fit:contain; border:1px solid #d7e4eb; border-radius:12px; background:white; }
.vacancy-employer span { color:#526f80; font-size:.75rem; }
.vacancy-employer p { margin:2px 0 0; color:#064b79; font-size:.95rem; font-weight:700; }
.vacancy-hero :is(h1,.vacancy-preview-title) { max-width:24ch; margin:24px 0; color:#064b79; font:700 clamp(2.2rem,3.6vw,3.4rem)/1.12 Georgia,serif; letter-spacing:-.025em; text-wrap:balance; }
.single_job_listing .vacancy-facts { display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; margin:0; padding:0; list-style:none; color:#355c73; font-size:.85rem; }
.vacancy-facts li { margin:0; }
.vacancy-facts .vacancy-type { padding:5px 11px; border-radius:5px; background:#d0eafa; color:#075d85; font-size:.75rem; font-weight:700; }
.vacancy-facts .job-type--estagio { background:#ddf0e8; color:#21694d; }
.vacancy-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:clamp(36px,6vw,88px); align-items:start; padding-block:42px 72px; }
.vacancy-reading { min-width:0; }
.vacancy-section-heading { padding-bottom:22px; margin-bottom:28px; border-bottom:1px solid #d7e4eb; }
.vacancy-section-heading > span { color:#064b79; font:700 1.7rem/1.2 Georgia,serif; }
.vacancy-section-heading p { margin:8px 0 0; color:#566b7a; font-size:.87rem; }
.single_job_listing .job_description { color:#304957; font-size:1rem; line-height:1.85; overflow-wrap:anywhere; }
.single_job_listing .job_description p { margin:0 0 20px; }
.single_job_listing .job_description :is(h2,h3,h4) { margin:34px 0 16px; color:#064b79; font:700 1.5rem/1.25 Georgia,serif; letter-spacing:-.015em; }
.single_job_listing .job_description ul { margin:0 0 24px; padding-left:23px; }
.single_job_listing .job_description li { padding-left:5px; margin-bottom:10px; }
.single_job_listing .job_description li::marker { color:#148cb4; }
.single_job_listing .job_description a { font-weight:700; }
.vacancy-sidebar { display:grid; gap:26px; min-width:0; }
.vacancy-summary { padding:26px; border:1px solid #c9dfe9; border-top:4px solid #18a9d6; border-radius:12px; background:#fff; }
.vacancy-summary h2 { margin:0 0 24px; color:#064b79; font:700 1.5rem/1.2 Georgia,serif; }
.vacancy-summary dl { margin:0; }
.vacancy-summary dl > div { padding:13px 0; border-top:1px solid #e1ebf0; }
.vacancy-summary dt { color:#657b89; font-size:.73rem; }
.vacancy-summary dd { margin:4px 0 0; color:#24475c; font-size:.86rem; font-weight:700; }
body.single-job_listing .vacancy-apply, .single_job_listing .vacancy-summary .application_button { display:flex; justify-content:space-between; align-items:center; gap:12px; width:100%; min-height:48px; margin:22px 0 0; padding:13px 15px; border:0; border-radius:7px; background:#006bbf; color:white; font:700 .83rem/1.4 Arial,sans-serif; text-decoration:none; cursor:pointer; }
body.single-job_listing .vacancy-apply:hover { background:#064b79; }
.vacancy-application-note { margin:12px 0 0; color:#657b89; font-size:.75rem; line-height:1.6; }
.single_job_listing .vacancy-summary .job_application { margin:0; padding:0; border:0; }
.single_job_listing .vacancy-summary .application_details { float:none; width:100%; padding:16px 0 0; border:0; background:transparent; box-shadow:none; }
.single_job_listing .vacancy-summary .application_details::before { display:none; }
.vacancy-company-note { padding:0 4px 25px; border-bottom:1px solid #d7e4eb; }
.vacancy-company-note > span { color:#657b89; font-size:.73rem; }
.vacancy-company-note h2 { margin:8px 0 16px; color:#064b79; font:700 1.25rem/1.35 Georgia,serif; }
.vacancy-company-note a { display:block; margin:10px 0; font-size:.81rem; font-weight:700; text-decoration:none; }
.vacancy-company-note p, .vacancy-safety { margin:0; color:#657b89; font-size:.78rem; line-height:1.7; }
.vacancy-status { color:#864232; font-weight:700; }
.vacancy-after { margin-top:32px; }
.vacancy-closed { padding-block:60px; }
@media(max-width:850px) { .vacancy-layout { grid-template-columns:minmax(0,1fr) 270px; gap:30px; } .vacancy-summary { padding:20px; } }
@media(max-width:680px) {
 .vacancy-hero { padding:22px 0 28px; }
 .vacancy-back { margin-bottom:24px; }
 .vacancy-employer img { width:52px; height:52px; }
 .vacancy-employer p { font-size:.85rem; }
 .vacancy-hero :is(h1,.vacancy-preview-title) { margin:22px 0; font-size:2.15rem; }
 .vacancy-layout { grid-template-columns:1fr; gap:32px; padding-block:26px 44px; }
 .vacancy-sidebar { grid-row:1; gap:22px; }
 .vacancy-summary dl { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
 .vacancy-summary h2 { margin-bottom:18px; }

 .single_job_listing .job_description { font-size:.94rem; line-height:1.8; }
 .single_job_listing .vacancy-facts { gap:10px 16px; font-size:.8rem; }
}
.vacancy-application-form { margin-top:40px; padding-top:28px; border-top:2px solid #c7e2ef; scroll-margin-top:24px; }
.vacancy-application-form h2 { margin:0 0 24px; color:#064b79; font:700 1.7rem/1.3 Georgia,serif; }
.single_job_listing .vacancy-native-application .application_details { display:block; float:none; width:100%; margin:0; padding:0; border:0; background:transparent; box-shadow:none; }
.single_job_listing .vacancy-native-application .application_details::before { display:none; }
.single_job_listing .vacancy-native-application { padding:0; margin:0; }
.vacancy-native-application fieldset { min-width:0; }
/* Focused application workspace; a full-screen sheet on smaller screens. */
.application-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.application-panel-heading h2 { margin:0 0 10px; }
.application-panel-heading p { margin:0; color:#24475c; font-size:.85rem; line-height:1.5; }
.application-panel-heading p span { color:#566b7a; }
.application-panel-intro { margin:22px 0 28px; color:#566b7a; font-size:.86rem; }
.application-panel-close:not([hidden]) { display:grid; place-items:center; flex:0 0 40px; width:40px; height:40px; padding:0; border:1px solid #c5dce8; border-radius:8px; background:#fff; color:#064b79; cursor:pointer; }
.application-panel-close:hover { background:#eaf5fb; }
.application-dialog { width:min(680px,calc(100% - 40px)); max-height:calc(100dvh - 64px); margin:auto; padding:0; border:0; border-radius:16px; background:#fbfcfd; color:#172b3a; box-shadow:0 24px 80px rgb(6 39 60 / 24%); scrollbar-color:#86b8d1 #eff6fa; }
.application-dialog::backdrop { background:rgb(8 33 50 / 65%); }
html.application-dialog-open { overflow:hidden; }
.application-dialog .vacancy-application-form { margin:0; padding:32px; border:0; }
.application-dialog .application-panel-heading { padding-bottom:24px; border-bottom:1px solid #d7e4eb; }
.application-dialog .application-panel-heading h2 { color:#064b79; font:700 1.8rem/1.2 Georgia,serif; }
.application-dialog .job-manager-form fieldset { display:block; margin:0 0 22px; padding:0; border:0; }
.application-dialog .job-manager-form fieldset > label { float:none; display:block; width:100%; margin:0 0 8px; color:#24475c; font-size:.83rem; font-weight:700; }
.application-dialog .job-manager-form fieldset div.field { float:none; width:100%; }
.application-dialog .job-manager-form :is(input[type="text"],input[type="email"],textarea,select) { width:100%; min-height:48px; padding:12px; border:1px solid #b8cdd9; border-radius:7px; background:#fff; color:#172b3a; font:400 .9rem/1.5 Arial,sans-serif; caret-color:#006bbf; }
.application-dialog .job-manager-form textarea { min-height:120px; resize:vertical; }
.application-dialog .job-manager-form input[type="file"] { width:100%; padding:14px; border:1px dashed #9bbfd3; border-radius:8px; background:#eef7fc; font-size:.8rem; }
.application-dialog .job-manager-form small, .application-dialog .job-manager-form .description { color:#566b7a; font-size:.75rem; line-height:1.5; }
.application-dialog .wp_job_manager_send_application_button { width:100%; min-height:48px; border:0; border-radius:7px; background:#006bbf; color:#fff; font:700 .9rem Arial,sans-serif; cursor:pointer; }
.application-dialog .wp_job_manager_send_application_button:disabled { opacity:.65; cursor:wait; }
.application-dialog .job-manager-application-form > p:last-child { margin-bottom:0; }
@media(max-width:680px) {
 .application-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border-radius:0; }
 .application-dialog .vacancy-application-form { padding:24px 20px max(24px,env(safe-area-inset-bottom)); }
 .application-dialog .application-panel-heading h2 { font-size:1.7rem; }
 .application-dialog .application-panel-heading { gap:16px; }
}
/* Applications may toggle this wrapper when returning validation errors. The dialog owns visibility. */
.application-dialog .application_details { display:block !important; }
