/* Vacancy detail: the approved MMO palette and an editorial reading rhythm. */
body.single-job_listing { --mmo-blue-dark:var(--mr-green); --mmo-muted:var(--mr-muted); --mmo-line:var(--mr-line); --mmo-paper:var(--mr-white); }
.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:var(--mr-paper); border-bottom:1px solid var(--mr-soft); }
.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 var(--mr-line); border-radius:12px; background:white; }
.vacancy-employer span { color:var(--mr-muted); font-size:.75rem; }
.vacancy-employer p { margin:2px 0 0; color:var(--mr-green); font-size:.95rem; font-weight:700; }
.vacancy-hero :is(h1,.vacancy-preview-title) { max-width:24ch; margin:24px 0; color:var(--mr-green); 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:var(--mr-green); font-size:.85rem; }
.vacancy-facts li { margin:0; }
.vacancy-facts .vacancy-type { padding:5px 11px; border-radius:5px; background:var(--mr-soft); color:var(--mr-green); font-size:.75rem; font-weight:700; }
.vacancy-facts .job-type--estagio { background:var(--mr-paper); color:var(--mr-deep); }
.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 var(--mr-line); }
.vacancy-section-heading > span { color:var(--mr-green); font:700 1.7rem/1.2 Georgia,serif; }
.vacancy-section-heading p { margin:8px 0 0; color:var(--mr-muted); font-size:.87rem; }
.single_job_listing .job_description { color:var(--mr-deep); 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:var(--mr-green); 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:var(--mr-green); }
.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 var(--mr-soft); border-top:4px solid var(--mr-green); border-radius:12px; background:var(--mr-white); }
.vacancy-summary h2 { margin:0 0 24px; color:var(--mr-green); font:700 1.5rem/1.2 Georgia,serif; }
.vacancy-summary dl { margin:0; }
.vacancy-summary dl > div { padding:13px 0; border-top:1px solid var(--mr-line); }
.vacancy-summary dt { color:var(--mr-muted); font-size:.73rem; }
.vacancy-summary dd { margin:4px 0 0; color:var(--mr-green); 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:var(--mr-green); color:white; font:700 .83rem/1.4 Arial,sans-serif; text-decoration:none; cursor:pointer; }
body.single-job_listing .vacancy-apply:hover { background:var(--mr-green); }
.vacancy-application-note { margin:12px 0 0; color:var(--mr-muted); 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 var(--mr-line); }
.vacancy-company-note > span { color:var(--mr-muted); font-size:.73rem; }
.vacancy-company-note h2 { margin:8px 0 16px; color:var(--mr-green); 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:var(--mr-muted); 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 var(--mr-soft); scroll-margin-top:24px; }
.vacancy-application-form h2 { margin:0 0 24px; color:var(--mr-green); 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:var(--mr-green); font-size:.85rem; line-height:1.5; }
.application-panel-heading p span { color:var(--mr-muted); }
.application-panel-intro { margin:22px 0 28px; color:var(--mr-muted); 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 var(--mr-soft); border-radius:8px; background:var(--mr-white); color:var(--mr-green); cursor:pointer; }
.application-panel-close:hover { background:var(--mr-paper); }
.application-dialog { width:min(680px,calc(100% - 40px)); max-height:calc(100dvh - 64px); margin:auto; padding:0; border:0; border-radius:16px; background:var(--mr-white); color:var(--mr-deep); box-shadow:0 24px 80px rgb(var(--mr-shadow-rgb) / 24%); scrollbar-color:var(--mr-line) var(--mr-paper); }
.application-dialog::backdrop { background:rgb(var(--mr-shadow-rgb) / 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 var(--mr-line); }
.application-dialog .application-panel-heading h2 { color:var(--mr-green); 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:var(--mr-green); 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 var(--mr-line); border-radius:7px; background:var(--mr-white); color:var(--mr-deep); font:400 .9rem/1.5 Arial,sans-serif; caret-color:var(--mr-green); }
.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 var(--mr-line); border-radius:8px; background:var(--mr-paper); font-size:.8rem; }
.application-dialog .job-manager-form small, .application-dialog .job-manager-form .description { color:var(--mr-muted); 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:var(--mr-green); color:var(--mr-white); 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; }

/* MMO guest application account flow */
.mmo-application-account { margin:24px 0; padding:18px; border:1px solid var(--mr-soft); border-radius:10px; background:var(--mr-paper); }
.mmo-application-account__login { margin:0 0 16px; color:var(--mr-green); font-size:.82rem; line-height:1.55; }
.mmo-application-account__login a { color:var(--mr-green); font-weight:700; }
.mmo-application-account__fields { min-width:0; margin:0; padding:0; border:0; }
.mmo-application-account__fields legend { margin:0 0 7px; padding:0; color:var(--mr-green); font:700 1.15rem/1.3 Georgia,serif; }
.mmo-application-account__fields p { margin:14px 0 0; }
.mmo-application-account__fields label { float:none; display:block; clear:both; width:100%; margin:0 0 7px; color:var(--mr-green); font-size:.82rem; font-weight:700; }
.mmo-application-account__fields input[type="password"] { width:100%; min-height:48px; padding:12px; border:1px solid var(--mr-line); border-radius:7px; background:var(--mr-white); color:var(--mr-deep); font:400 .9rem/1.5 Arial,sans-serif; }
.mmo-application-account__fields small,.mmo-application-account__hint,.mmo-application-account__notice { color:var(--mr-muted); font-size:.75rem; line-height:1.55; }
.mmo-application-account__hint,.mmo-application-account__notice { margin:0; }
.job-manager-message.mmo-application-success { display:grid; gap:10px; }
.job-manager-message.mmo-application-success p { margin:0; }
.job-manager-message.mmo-application-success a { width:max-content; color:var(--mr-green); font-weight:700; }

.vacancy-related { margin-block:2rem 3rem; }
.vacancy-related > h2 { margin:0 0 .85rem; color:var(--mr-green); font-size:1.35rem; }
.vacancy-related .mmo-loc-jobs { grid-template-columns:minmax(0,1fr); }
.vacancy-related .directory-job-card > a { height:100%; }
.vacancy-related .directory-job-bottom { flex-direction:column; align-items:flex-start; }
.vacancy-related .directory-job-tail { justify-content:flex-start; }
@media (min-width:560px) {
 .vacancy-related .mmo-loc-jobs { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:960px) {
 .vacancy-related .mmo-loc-jobs { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
