/* Doxa Careers — front end
   Colors, radii and spacing arrive as custom properties written inline by PHP. */

.dc-careers {
  --dc-brand: #2F6B57;
  --dc-brand-dark: #245243;
  --dc-accent: #C08A2E;
  --dc-bg: #F7F8F7;
  --dc-masthead: #FFFFFF;
  --dc-surface: #FFFFFF;
  --dc-band: #F3F1EB;
  --dc-line: #E2E6E3;
  --dc-heading: #17322A;
  --dc-text: #46534E;
  --dc-muted: #77857F;
  --dc-cta-bg: #17322A;
  --dc-cta-text: #FFFFFF;

  --dc-radius: 10px;
  --dc-radius-input: 8px;
  --dc-radius-pill: 999px;
  --dc-border: 1px;
  --dc-shadow: 0 8px 24px -12px rgba(16,32,26,.14);
  --dc-shadow-lift: 0 14px 40px -14px rgba(16,32,26,.2);
  --dc-container: 1180px;
  --dc-space: 64px;
  --dc-sticky: 24px;
  --dc-h-scale: 1;
  --dc-h-weight: 600;

  --dc-display: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --dc-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;

  font-family: var(--dc-sans);
  color: var(--dc-text);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow: visible;
}

.dc-careers *,
.dc-careers *::before,
.dc-careers *::after { box-sizing: border-box; }

.dc-careers h1,
.dc-careers h2,
.dc-careers h3,
.dc-careers h4,
.dc-careers h5 { font-family: var(--dc-display); color: var(--dc-heading); margin: 0 0 .5em; letter-spacing: -.018em; }
.dc-careers h1,
.dc-careers h2 { font-weight: var(--dc-h-weight); letter-spacing: -.022em; }
.dc-careers h3, .dc-careers h4 { font-weight: 600; }
.dc-careers p { margin: 0 0 1em; }
.dc-careers a { color: inherit; }
.dc-careers ul { margin: 0; padding: 0; }

.dc-wrap { max-width: var(--dc-container); margin: 0 auto; padding: 0 24px; }
.dc-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.dc-careers :focus-visible { outline: 3px solid var(--dc-accent); outline-offset: 3px; border-radius: 4px; }

/* ---- Buttons: shared mechanics only, appearance comes from settings ---- */
.dc-careers .dc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: var(--dc-sans); line-height: 1.2; text-decoration: none; cursor: pointer;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.dc-careers .dc-btn:hover { transform: translateY(-1px); }
.dc-btn-arrow { width: 1.05em; height: 1.05em; flex-shrink: 0; transition: transform .18s ease; }
.dc-careers .dc-btn:hover .dc-btn-arrow { transform: translateX(3px); }
.dc-careers .dc-btn--compact { padding-top: 11px; padding-bottom: 11px; }

/* ---- Top bar ---- */
.dc-nav { background: var(--dc-brand); color: #fff; }
.dc-nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 16px; padding-bottom: 16px; }
.dc-brand { font-family: var(--dc-display); font-weight: 700; font-size: 1rem; letter-spacing: -.01em; color: #fff; }

/* ---- Masthead ---- */
.dc-masthead { background: var(--dc-masthead); padding: clamp(44px, 7vw, 84px) 0 calc(var(--dc-space) * .8); border-bottom: var(--dc-border) solid var(--dc-line); }
.dc-masthead-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.dc-kicker { font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--dc-accent); margin-bottom: 16px; }
.dc-masthead h1 { font-size: calc(clamp(1.7rem, 3.9vw, 2.5rem) * var(--dc-h-scale)); line-height: 1.14; max-width: 19ch; margin-bottom: 16px; }
.dc-lede { font-size: clamp(1rem, 1.6vw, 1.12rem); max-width: 54ch; color: var(--dc-muted); }
.dc-masthead-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }

.dc-stats { display: grid; gap: 12px; }
.dc-stat { background: var(--dc-bg); border: var(--dc-border) solid var(--dc-line); border-radius: var(--dc-radius); padding: 18px 20px; }
.dc-stat-num { font-family: var(--dc-display); font-weight: 700; font-size: 1.5rem; color: var(--dc-heading); line-height: 1; }
.dc-stat-lbl { font-size: .82rem; color: var(--dc-muted); margin-top: 6px; }

/* ---- Shell ---- */
.dc-doc-layout { background: var(--dc-bg); padding: var(--dc-space) 0; }

/* ---- Toolbar ---- */
.dc-toolbar {
  display: flex; gap: 14px; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  background: var(--dc-surface); border: var(--dc-border) solid var(--dc-line);
  border-radius: var(--dc-radius); padding: 16px 18px; box-shadow: var(--dc-shadow);
}
.dc-search { position: relative; display: flex; align-items: center; flex: 0 1 320px; min-width: 200px; }
.dc-search svg { position: absolute; left: 12px; width: 16px; height: 16px; color: var(--dc-muted); pointer-events: none; }
.dc-search input {
  width: 100%; height: 40px; padding: 0 12px 0 36px; font: inherit; font-size: .9rem;
  color: var(--dc-text); background: var(--dc-bg);
  border: var(--dc-border) solid var(--dc-line); border-radius: var(--dc-radius-input);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.dc-search input::placeholder { color: var(--dc-muted); }
.dc-search input:focus { border-color: var(--dc-brand); box-shadow: 0 0 0 3px rgba(47,107,87,.12); outline: none; }
.dc-search input::-webkit-search-cancel-button { cursor: pointer; }

.dc-controls { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; }
.dc-control { position: relative; display: flex; flex-direction: column; gap: 4px; }
.dc-control-label { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--dc-muted); padding-left: 2px; }
.dc-control select {
  appearance: none; -webkit-appearance: none;
  height: 40px; padding: 0 34px 0 13px; font: inherit; font-size: .88rem; font-weight: 500;
  color: var(--dc-heading); background: var(--dc-bg); cursor: pointer;
  border: var(--dc-border) solid var(--dc-line); border-radius: var(--dc-radius-input);
}
.dc-control select:focus { border-color: var(--dc-brand); outline: none; }
.dc-control-caret { position: absolute; right: 12px; bottom: 13px; width: 14px; height: 14px; color: var(--dc-muted); pointer-events: none; }
.dc-clear { align-self: flex-end; height: 40px; background: none; border: none; padding: 0 6px; cursor: pointer; font: inherit; font-size: .85rem; font-weight: 600; color: var(--dc-accent); }
.dc-clear:hover { text-decoration: underline; }

.dc-count { font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--dc-muted); margin: 26px 0 16px; }

.dc-no-results { text-align: center; padding: 56px 20px; background: var(--dc-surface); border: var(--dc-border) dashed var(--dc-line); border-radius: var(--dc-radius); color: var(--dc-muted); }
.dc-clear-inline { background: none; border: none; cursor: pointer; font: inherit; font-weight: 600; color: var(--dc-brand); text-decoration: underline; }

/* ---- Cards ---- */
.dc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 18px; }
.dc-card {
  position: relative; display: flex; flex-direction: column;
  background: var(--dc-surface); border: var(--dc-border) solid var(--dc-line);
  border-radius: var(--dc-radius); padding: 24px 24px 20px; box-shadow: var(--dc-shadow);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.dc-card::before {
  content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 3px;
  background: var(--dc-brand); border-radius: 0 3px 3px 0; opacity: 0; transition: opacity .2s ease;
}
.dc-card:hover { transform: translateY(-3px); box-shadow: var(--dc-shadow-lift); border-color: var(--dc-brand); }
.dc-card:hover::before { opacity: 1; }
.dc-card[hidden] { display: none; }

.dc-card-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.dc-tag {
  display: inline-flex; align-items: center; font-size: .68rem; font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase; padding: 5px 11px; border-radius: var(--dc-radius-pill);
}
.dc-tag--type { background: rgba(47,107,87,.1); color: var(--dc-brand); }
.dc-tag--featured { background: rgba(192,138,46,.14); color: #8A5F14; }
.dc-tag--urgent { background: #FCE9E7; color: #A8332B; }
.dc-tag--new { background: rgba(23,50,42,.08); color: var(--dc-heading); }

.dc-card-title { font-size: 1.14rem; line-height: 1.35; margin-bottom: 12px; }
.dc-card-meta { list-style: none; display: grid; gap: 7px; margin-bottom: 14px; }
.dc-card-meta li { display: flex; align-items: flex-start; gap: 8px; font-size: .87rem; color: var(--dc-muted); }
.dc-card-meta svg { width: 15px; height: 15px; margin-top: 3px; flex-shrink: 0; color: var(--dc-brand); }
.dc-card-summary { font-size: .93rem; margin-bottom: 18px; }
.dc-card-foot { margin-top: auto; padding-top: 4px; }

/* ---- Detail ---- */
.dc-back {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 22px;
  background: none; border: none; padding: 8px 0; cursor: pointer;
  font: inherit; font-weight: 600; font-size: .9rem; color: var(--dc-brand);
}
.dc-back svg { width: 16px; height: 16px; transition: transform .18s ease; }
.dc-back:hover svg { transform: translateX(-3px); }
.dc-job[hidden] { display: none; }

.dc-job-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  background: var(--dc-surface); border: var(--dc-border) solid var(--dc-line);
  border-radius: var(--dc-radius); padding: 30px 32px; box-shadow: var(--dc-shadow); margin-bottom: 20px;
}
.dc-job-head-main { flex: 1 1 340px; min-width: 0; }
.dc-job-head-cta { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.dc-role-tag { font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--dc-accent); margin-bottom: 10px; }
.dc-job-head h2 { font-size: calc(clamp(1.35rem, 2.7vw, 1.8rem) * var(--dc-h-scale)); line-height: 1.2; margin-bottom: 12px; }
.dc-job-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.dc-job-loc { display: inline-flex; align-items: center; gap: 7px; font-size: .9rem; color: var(--dc-muted); }
.dc-job-loc svg { width: 15px; height: 15px; flex-shrink: 0; color: var(--dc-brand); }
.dc-edit-job { font-size: .8rem; color: var(--dc-accent); }

.dc-doc-grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 24px; align-items: start; }

/* ---- Sticky rail ---- */
.dc-rail {
  position: -webkit-sticky; position: sticky; top: var(--dc-sticky);
  align-self: start; display: grid; gap: 14px;
  max-height: calc(100vh - var(--dc-sticky) - 20px); overflow-y: auto; overscroll-behavior: contain;
  scrollbar-width: thin; padding-right: 2px;
}
.dc-rail::-webkit-scrollbar { width: 6px; }
.dc-rail::-webkit-scrollbar-thumb { background: var(--dc-line); border-radius: 3px; }
.dc-rail-label { font-size: .68rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--dc-accent); margin-bottom: 12px; }

.dc-facts, .dc-toc, .dc-share { background: var(--dc-surface); border: var(--dc-border) solid var(--dc-line); border-radius: var(--dc-radius); padding: 20px 22px; box-shadow: var(--dc-shadow); }
.dc-facts dl { margin: 0; display: grid; gap: 12px; }
.dc-fact dt { font-size: .74rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--dc-muted); margin-bottom: 2px; }
.dc-fact dd { margin: 0; font-size: .95rem; font-weight: 600; color: var(--dc-heading); }

.dc-toc ul { list-style: none; }
.dc-toc li + li { margin-top: 2px; }
.dc-toc a {
  display: block; padding: 8px 12px; font-size: .89rem; font-weight: 500; color: var(--dc-text);
  text-decoration: none; border-left: 2px solid var(--dc-line); border-radius: 0 var(--dc-radius-input) var(--dc-radius-input) 0;
  transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}
.dc-toc a:hover { color: var(--dc-heading); background: var(--dc-bg); }
.dc-toc a.is-active { color: var(--dc-brand); background: var(--dc-bg); border-left-color: var(--dc-brand); font-weight: 600; }

.dc-share-row { display: flex; flex-wrap: wrap; gap: 8px; }
.dc-share-btn {
  display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px;
  background: var(--dc-bg); border: var(--dc-border) solid var(--dc-line); border-radius: var(--dc-radius-input);
  font: inherit; font-size: .82rem; font-weight: 500; color: var(--dc-text); text-decoration: none; cursor: pointer;
  transition: border-color .15s ease, color .15s ease;
}
.dc-share-btn svg { width: 14px; height: 14px; }
.dc-share-btn:hover { border-color: var(--dc-brand); color: var(--dc-brand); }
.dc-share-btn.is-done { border-color: var(--dc-brand); color: var(--dc-brand); }

/* ---- Document body ---- */
.dc-doc-body { min-width: 0; display: grid; gap: 16px; }
.dc-doc-section {
  background: var(--dc-surface); border: var(--dc-border) solid var(--dc-line);
  border-radius: var(--dc-radius); padding: 30px 32px; box-shadow: var(--dc-shadow);
  scroll-margin-top: calc(var(--dc-sticky) + 12px);
}
.dc-doc-section h3 {
  font-size: .76rem; text-transform: uppercase; letter-spacing: .13em; color: var(--dc-accent);
  margin-bottom: 20px; display: flex; align-items: center; gap: 10px;
}
.dc-doc-section h3::before { content: ""; width: 18px; height: 2px; background: var(--dc-accent); flex-shrink: 0; border-radius: 2px; }

.dc-prose h4 { font-size: 1.04rem; margin: 26px 0 12px; }
.dc-prose > h4:first-child { margin-top: 0; }
.dc-prose p { font-size: .98rem; }
.dc-prose > p:last-child { margin-bottom: 0; }
.dc-prose ul { margin: 0 0 14px; padding-left: 22px; list-style: disc; }
.dc-prose > ul:last-child { margin-bottom: 0; }
.dc-prose li { margin-bottom: 9px; font-size: .97rem; }
.dc-prose li::marker { color: var(--dc-accent); }
.dc-lead p { font-size: 1.05rem; color: var(--dc-text); }

.dc-benefits ul { list-style: none; padding-left: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.dc-benefits li { position: relative; padding: 10px 12px 10px 34px; margin: 0; background: var(--dc-bg); border-radius: var(--dc-radius-input); font-size: .94rem; }
.dc-benefits li::marker { content: none; }
.dc-benefits li::before {
  content: ""; position: absolute; left: 13px; top: 17px; width: 9px; height: 5px;
  border-left: 2px solid var(--dc-brand); border-bottom: 2px solid var(--dc-brand); transform: rotate(-45deg);
}

.dc-comp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.dc-comp { background: var(--dc-bg); border-radius: var(--dc-radius-input); padding: 20px 22px; }
.dc-comp h4 { font-size: .95rem; margin-bottom: 8px; }
.dc-comp p { font-size: .92rem; margin: 0; color: var(--dc-muted); }

.dc-apply-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
  background: var(--dc-brand); color: #fff; border-radius: var(--dc-radius); padding: 24px 30px;
}
.dc-apply-note { font-size: .9rem; opacity: .92; }
.dc-eeo { font-size: .82rem; color: var(--dc-muted); margin: 4px 4px 0; }

/* ---- Sticky apply on phones ---- */
.dc-sticky-apply {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  display: none; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: var(--dc-surface); border-top: var(--dc-border) solid var(--dc-line);
  box-shadow: 0 -8px 24px -14px rgba(16,32,26,.35);
}
.dc-sticky-title { font-family: var(--dc-display); font-weight: 600; font-size: .9rem; color: var(--dc-heading); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dc-sticky-apply .dc-btn { width: auto !important; flex-shrink: 0; }

/* ---- Callout band ---- */
.dc-band { background: var(--dc-band); padding: var(--dc-space) 0; }
.dc-band-box {
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
  background: var(--dc-surface); border: var(--dc-border) solid var(--dc-line);
  border-radius: var(--dc-radius); padding: 28px 30px; box-shadow: var(--dc-shadow);
}
.dc-band-ic { width: 46px; height: 46px; border-radius: var(--dc-radius-pill); background: var(--dc-band); color: var(--dc-brand); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dc-band-ic svg { width: 22px; height: 22px; }
.dc-band-box > div:nth-child(2) { flex: 1 1 320px; }
.dc-band h3 { font-size: 1.1rem; margin-bottom: 4px; }
.dc-band p { margin: 0; font-size: .94rem; color: var(--dc-muted); }
.dc-band-link { font-weight: 600; font-size: .9rem; color: var(--dc-brand); white-space: nowrap; }

/* ---- Closing ---- */
.dc-closing { background: var(--dc-cta-bg); text-align: center; padding: calc(var(--dc-space) * 1.2) 0; }
.dc-closing h2 { color: var(--dc-cta-text); font-size: calc(clamp(1.35rem, 2.7vw, 1.85rem) * var(--dc-h-scale)); }
.dc-closing p { color: var(--dc-cta-text); opacity: .8; max-width: 52ch; margin: 0 auto 28px; }
.dc-closing-cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.dc-contact { margin-top: 24px; font-size: .9rem; color: var(--dc-cta-text); opacity: .85; display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }
.dc-contact a { text-decoration: underline; }

.dc-footer { padding: 26px 0; text-align: center; font-size: .82rem; color: var(--dc-muted); background: var(--dc-masthead); }

/* ---- Empty state ---- */
.dc-empty { background: var(--dc-surface); border: var(--dc-border) solid var(--dc-line); border-radius: var(--dc-radius); padding: 60px 30px; text-align: center; box-shadow: var(--dc-shadow); }
.dc-empty h2 { font-size: calc(1.35rem * var(--dc-h-scale)); }
.dc-empty p { max-width: 46ch; margin: 0 auto 26px; color: var(--dc-muted); }

/* ---- Front-end editor ---- */
.dc-edit-toggle {
  position: fixed; right: 18px; bottom: 18px; z-index: 9998;
  display: inline-flex; align-items: center; gap: 8px; padding: 11px 17px;
  background: var(--dc-heading); color: #fff; border: none; border-radius: var(--dc-radius-pill); cursor: pointer;
  font-family: var(--dc-sans); font-weight: 600; font-size: .85rem; box-shadow: 0 12px 30px -12px rgba(0,0,0,.55);
}
.dc-edit-toggle svg { width: 15px; height: 15px; }

.dc-editor {
  position: fixed; top: 0; right: 0; bottom: 0; width: min(380px, 100%); z-index: 9999;
  background: #fff; display: flex; flex-direction: column;
  box-shadow: -14px 0 50px -24px rgba(0,0,0,.55); font-family: var(--dc-sans);
}
.dc-editor[hidden] { display: none; }
.dc-editor-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; background: var(--dc-heading); color: #fff; }
.dc-editor-close { background: none; border: none; color: #fff; font-size: 1.5rem; line-height: 1; cursor: pointer; padding: 0 4px; }
.dc-editor-tabs { display: flex; border-bottom: 1px solid var(--dc-line); }
.dc-editor-tab { flex: 1; background: none; border: none; border-bottom: 2px solid transparent; padding: 11px 6px; cursor: pointer; font: inherit; font-size: .82rem; font-weight: 600; color: var(--dc-muted); }
.dc-editor-tab.is-active { color: var(--dc-brand); border-bottom-color: var(--dc-brand); }
.dc-editor-body { flex: 1; overflow-y: auto; padding: 18px 20px; }
.dc-editor-hint { font-size: .8rem; color: var(--dc-muted); margin-bottom: 16px; }
.dc-editor-group { border-top: 1px solid var(--dc-line); padding-top: 14px; margin-top: 14px; }
.dc-editor-group:first-child { border-top: none; padding-top: 0; margin-top: 0; }
.dc-editor-group h5 { font-size: .8rem; font-weight: 700; margin-bottom: 10px; }

.dc-field { display: block; margin-bottom: 13px; }
.dc-field > span { display: block; font-size: .76rem; font-weight: 600; color: var(--dc-muted); margin-bottom: 5px; }
.dc-field input[type="text"], .dc-field textarea {
  width: 100%; padding: 9px 11px; font: inherit; font-size: .88rem;
  border: 1px solid var(--dc-line); border-radius: var(--dc-radius-input); background: #fff; color: var(--dc-text);
}
.dc-field-inline { display: flex; align-items: center; gap: 10px; }
.dc-field-inline > span { flex: 1; margin-bottom: 0; }
.dc-field-inline input[type="color"] { width: 42px; height: 28px; padding: 0; border: 1px solid var(--dc-line); border-radius: 6px; background: none; cursor: pointer; }
.dc-field-inline input[type="range"] { width: 120px; }
.dc-field-inline output { font-size: .74rem; color: var(--dc-muted); min-width: 44px; text-align: right; }

.dc-editor-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 20px; border-top: 1px solid var(--dc-line); }
.dc-editor-status { font-size: .8rem; color: var(--dc-muted); }
.dc-editor-save { padding: 10px 20px; background: var(--dc-brand); color: #fff; border: none; border-radius: var(--dc-radius-input); font: inherit; font-weight: 600; font-size: .86rem; cursor: pointer; }
.dc-editor-save:disabled { opacity: .6; cursor: default; }

/* ---- Responsive ---- */
@media (max-width: 1024px) {
  .dc-doc-grid { grid-template-columns: 1fr; }
  .dc-rail { position: static; max-height: none; overflow: visible; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); display: grid; }
  .dc-toc { display: none; }
}

@media (max-width: 860px) {
  .dc-masthead-grid { grid-template-columns: 1fr; }
  .dc-stats { grid-template-columns: repeat(3, 1fr); }
  .dc-stat { padding: 14px 16px; }
  .dc-stat-num { font-size: 1.4rem; }
  .dc-job-head-cta { align-items: stretch; width: 100%; }
  .dc-job-head-cta .dc-edit-job { text-align: left; }
}

@media (max-width: 700px) {
  .dc-wrap { padding: 0 16px; }
  .dc-careers { --dc-space: 40px; }
  .dc-toolbar { flex-direction: column; align-items: stretch; gap: 12px; padding: 14px; }
  .dc-search { flex: 1 1 auto; }
  .dc-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .dc-control select { width: 100%; }
  .dc-clear { grid-column: 1 / -1; justify-self: start; height: auto; padding: 4px 0; }
  .dc-cards { grid-template-columns: 1fr; }
  .dc-stats { grid-template-columns: 1fr; }
  .dc-stat { display: flex; align-items: baseline; gap: 10px; }
  .dc-stat-lbl { margin-top: 0; }
  .dc-job-head, .dc-doc-section { padding: 22px 20px; }
  .dc-apply-bar { padding: 20px; }
  .dc-benefits ul, .dc-comp-grid { grid-template-columns: 1fr; }
  .dc-editor { width: 100%; }
  .dc-sticky-apply { display: flex; }
  .dc-detail-view, .dc-is-single .dc-doc-layout { padding-bottom: 84px; }
  .dc-edit-toggle { bottom: 76px; }
}

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

@media print {
  .dc-nav, .dc-toolbar, .dc-back, .dc-edit-toggle, .dc-editor, .dc-closing,
  .dc-band, .dc-share, .dc-sticky-apply, .dc-job-head-cta, .dc-count { display: none !important; }
  .dc-job[hidden] { display: block !important; }
  .dc-doc-grid { grid-template-columns: 1fr; }
  .dc-doc-section, .dc-job-head, .dc-facts { box-shadow: none; break-inside: avoid; }
}

/* ==================================================================
   Application form
   ================================================================== */

.dc-application-wrap { background: var(--dc-bg); padding: var(--dc-space) 0; }
.dc-app {
  max-width: 860px; margin: 0 auto; padding: 0 24px;
}

.dc-app-head { margin-bottom: 28px; }
.dc-app-head h1 { font-size: calc(clamp(1.5rem, 3.3vw, 2.05rem) * var(--dc-h-scale)); line-height: 1.18; margin-bottom: 14px; }
.dc-app-head .dc-lede { font-size: 1rem; }

/* Errors */
.dc-app-errors {
  background: #FDECEA; border: var(--dc-border) solid #F0BFB9; border-left: 4px solid #A8332B;
  border-radius: var(--dc-radius); padding: 18px 22px; margin-bottom: 22px; color: #7E2620;
}
.dc-app-errors strong { display: block; margin-bottom: 8px; font-family: var(--dc-display); }
.dc-app-errors ul { list-style: disc; padding-left: 20px; margin: 0; }
.dc-app-errors li { font-size: .92rem; margin-bottom: 4px; }

/* Position block */
.dc-app-position { margin-bottom: 22px; }
.dc-app-position-locked {
  display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap;
  background: var(--dc-surface); border: var(--dc-border) solid var(--dc-line);
  border-left: 4px solid var(--dc-accent); border-radius: var(--dc-radius);
  padding: 20px 24px; box-shadow: var(--dc-shadow);
}
.dc-app-position-label { display: block; font-size: .68rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--dc-accent); margin-bottom: 5px; }
.dc-app-position-locked strong { display: block; font-family: var(--dc-display); font-size: 1.12rem; font-weight: 600; color: var(--dc-heading); line-height: 1.25; }
.dc-app-position-meta { display: block; font-size: .88rem; color: var(--dc-muted); margin-top: 4px; }
.dc-app-change { font-size: .86rem; font-weight: 600; color: var(--dc-brand); white-space: nowrap; }

/* Groups */
.dc-app-group {
  background: var(--dc-surface); border: var(--dc-border) solid var(--dc-line);
  border-radius: var(--dc-radius); padding: 26px 28px 22px; margin: 0 0 18px;
  box-shadow: var(--dc-shadow);
}
.dc-app-group legend {
  font-family: var(--dc-display); font-size: .76rem; font-weight: 700;
  letter-spacing: .13em; text-transform: uppercase; color: var(--dc-accent);
  padding: 0 0 16px; float: left; width: 100%;
}
.dc-app-group legend + .dc-app-grid { clear: both; }

.dc-app-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.dc-app-field--full { grid-column: span 6; }
.dc-app-field--half { grid-column: span 3; }
.dc-app-field--third { grid-column: span 2; }

.dc-app-field label {
  display: block; font-size: .8rem; font-weight: 600; color: var(--dc-heading);
  margin-bottom: 6px; letter-spacing: .01em;
}
.dc-req { color: #A8332B; font-weight: 700; }

.dc-app-field input[type="text"],
.dc-app-field input[type="email"],
.dc-app-field input[type="tel"],
.dc-app-field input[type="date"],
.dc-app-field input[type="number"],
.dc-app-field textarea,
.dc-app-field select {
  width: 100%; padding: 11px 13px; font: inherit; font-size: .94rem; color: var(--dc-text);
  background: var(--dc-bg); border: var(--dc-border) solid var(--dc-line);
  border-radius: var(--dc-radius-input); transition: border-color .15s ease, box-shadow .15s ease;
  -webkit-appearance: none; appearance: none;
}
.dc-app-field textarea { resize: vertical; min-height: 108px; }
.dc-app-field input:focus,
.dc-app-field textarea:focus,
.dc-app-field select:focus {
  outline: none; border-color: var(--dc-brand); background: var(--dc-surface);
  box-shadow: 0 0 0 3px rgba(47,107,87,.13);
}
.dc-app-field input:user-invalid,
.dc-app-field textarea:user-invalid { border-color: #C2695F; }

.dc-app-select { position: relative; }
.dc-app-select select { padding-right: 38px; cursor: pointer; }
.dc-app-select .dc-control-caret { position: absolute; right: 13px; top: 50%; transform: translateY(-50%); width: 15px; height: 15px; color: var(--dc-muted); pointer-events: none; }
.dc-app-help { display: block; font-size: .8rem; color: var(--dc-muted); margin-top: 6px; }

/* File inputs */
.dc-app-file { position: relative; }
.dc-app-file input[type="file"] {
  position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer;
}
.dc-app-file-face {
  display: flex; align-items: center; gap: 10px; padding: 13px 15px;
  background: var(--dc-bg); border: var(--dc-border) dashed var(--dc-line);
  border-radius: var(--dc-radius-input); font-size: .9rem; color: var(--dc-muted);
  transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}
.dc-app-file-face svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--dc-brand); }
.dc-app-file:hover .dc-app-file-face,
.dc-app-file input[type="file"]:focus + .dc-app-file-face { border-color: var(--dc-brand); color: var(--dc-heading); background: var(--dc-surface); }
.dc-app-file.has-file .dc-app-file-face { border-style: solid; border-color: var(--dc-brand); color: var(--dc-heading); background: var(--dc-surface); }

/* Consent + submit */
.dc-app-consent {
  display: flex; align-items: flex-start; gap: 12px; padding: 18px 22px; margin-bottom: 18px;
  background: var(--dc-surface); border: var(--dc-border) solid var(--dc-line);
  border-radius: var(--dc-radius); font-size: .92rem; box-shadow: var(--dc-shadow);
}
.dc-app-consent input[type="checkbox"] { width: 18px; height: 18px; margin-top: 2px; flex-shrink: 0; accent-color: var(--dc-brand); }

.dc-app-submit { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.dc-app-note { font-size: .82rem; color: var(--dc-muted); margin: 0; }
.dc-careers .dc-app-send[disabled] { opacity: .65; cursor: progress; }

.dc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Confirmation */
.dc-app-done {
  max-width: 640px; margin: 0 auto; text-align: center;
  background: var(--dc-surface); border: var(--dc-border) solid var(--dc-line);
  border-top: 4px solid var(--dc-brand); border-radius: var(--dc-radius);
  padding: 52px 34px; box-shadow: var(--dc-shadow);
}
.dc-app-done-mark {
  width: 58px; height: 58px; margin: 0 auto 20px; border-radius: 50%;
  background: rgba(47,107,87,.11); color: var(--dc-brand);
  display: flex; align-items: center; justify-content: center;
}
.dc-app-done-mark svg { width: 26px; height: 26px; }
.dc-app-done h2 { font-size: calc(1.4rem * var(--dc-h-scale)); margin-bottom: 12px; }
.dc-app-done-body p { color: var(--dc-muted); margin-bottom: .8em; }

@media (max-width: 760px) {
  .dc-app { padding: 0 16px; }
  .dc-app-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .dc-app-field--full, .dc-app-field--half { grid-column: span 2; }
  .dc-app-field--third { grid-column: span 1; }
  .dc-app-group { padding: 22px 20px 18px; }
  .dc-app-position-locked { padding: 18px 20px; }
  .dc-app-submit { flex-direction: column; align-items: stretch; }
  .dc-app-done { padding: 40px 22px; }
}

@media (max-width: 420px) {
  .dc-app-field--third { grid-column: span 2; }
}

/* ---- Inline validation ---- */
.dc-app-error {
  display: block; font-size: .82rem; font-weight: 500; color: #A8332B; margin-top: 6px;
  display: flex; align-items: flex-start; gap: 6px;
}
.dc-app-error::before {
  content: "!"; flex-shrink: 0;
  width: 15px; height: 15px; margin-top: 1px; border-radius: 50%;
  background: #A8332B; color: #fff; font-size: .68rem; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.dc-app-field.has-error input,
.dc-app-field.has-error textarea,
.dc-app-field.has-error select,
.dc-app-field.has-error .dc-app-file-face {
  border-color: #C2695F; background: #FEF7F6;
}
.dc-app-field.has-error input:focus,
.dc-app-field.has-error textarea:focus,
.dc-app-field.has-error select:focus { box-shadow: 0 0 0 3px rgba(168,51,43,.14); border-color: #A8332B; }
.dc-app-field.has-error > label { color: #8E2C25; }
.dc-app-consent-wrap.has-error .dc-app-consent { border-color: #C2695F; background: #FEF7F6; }
.dc-app-consent-wrap.has-error .dc-app-error { margin: 8px 0 0 4px; }
.dc-careers .dc-app-send.is-sending { opacity: .7; cursor: progress; }

.dc-app-done-meta {
  font-size: .8rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase;
  color: var(--dc-muted); margin: -4px 0 16px;
}
.dc-app-done-actions { margin-top: 26px; display: flex; justify-content: center; }
.dc-careers .dc-app-done-actions .dc-btn { min-width: 200px; }

@media (max-width: 520px) {
  .dc-careers .dc-app-done-actions .dc-btn { width: 100%; min-width: 0; }
}
