/* DGJ_SITE_V1: styles that the old page scripts added at run time, now one static file for the server pages (no visual change). */
/* page guide + FAQ block (was dgj-pagemap-v1.js) */
#dgj-pm-user{width:calc(100% - 2rem);max-width:76rem;margin:24px auto;box-sizing:border-box;background:hsl(var(--card));color:hsl(var(--card-foreground));border:1px solid hsl(var(--border));border-radius:1rem;padding:24px;line-height:1.65;font-family:inherit}
@media (min-width:640px){#dgj-pm-user{width:calc(100% - 3rem)}}
@media (min-width:1024px){#dgj-pm-user{width:calc(100% - 4rem)}}
#dgj-pm-user .lk a{display:inline-block;margin:4px 12px 4px 0;color:hsl(var(--primary));font-weight:500;text-decoration:none}
#dgj-pm-user .lk a:hover{text-decoration:underline}
/* employer badge, company link and "Report this job" (was dgj-job-trust-v1.js) */
#dgj-trust{margin:12px 0 0;font:13px/1.5 Inter,system-ui,sans-serif}
#dgj-trust .b{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-weight:700;font-size:12px;margin:0 6px 6px 0}
#dgj-trust .v{background:#dcfce7;color:#166534}
#dgj-trust .d{background:#dbeafe;color:#1e40af}
#dgj-trust a{color:#1d4ed8;text-decoration:none;font-weight:600}
#dgj-trust .r{display:block;margin-top:6px;color:#64748b;font-size:12px}
#dgj-trust .r button{background:none;border:0;color:#64748b;text-decoration:underline;cursor:pointer;font:inherit;padding:0}
html.dark #dgj-trust .r{color:#94a3b8}
html.dark #dgj-trust .v{background:#14532d;color:#dcfce7}
html.dark #dgj-trust .d{background:#1e3a8a;color:#dbeafe}
#dgj-report{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px}
#dgj-report .c{background:#fff;color:#0f172a;border-radius:16px;padding:22px;max-width:460px;width:100%;font:14px/1.5 Inter,system-ui,sans-serif}
html.dark #dgj-report .c{background:#0f1729;color:#f8fafc}
#dgj-report h3{margin:0 0 8px;font-size:17px}
#dgj-report select,#dgj-report textarea,#dgj-report input{width:100%;padding:9px;border:1px solid #cbd5e1;border-radius:9px;margin:6px 0;font:inherit;background:inherit;color:inherit}
#dgj-report .row{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}
#dgj-report button{padding:9px 14px;border-radius:9px;border:1px solid #cbd5e1;background:none;color:inherit;font:inherit;cursor:pointer}
#dgj-report button.p{background:#1d4ed8;color:#fff;border-color:#1d4ed8}
/* E57: the floating assistant button never covers the copyright line: the footer's bottom line gets room beside the button
   (dgj-footer-stable-v5 part, DGJ_FOOTER_V6); there is no blank space under the footer any more */
/* DGJ_SMARTHEADER_V1 (owner order 4 Oct 2026): the sticky header hides on scroll down and comes back on any scroll up; only transform moves
   it (no layout shift); anchors land below it */
html{scroll-padding-top:76px}
/* root cause of the header not staying (owner screenshot 4 Oct 2026): the page wrapper had overflow-x:hidden, which turns overflow-y into
   auto and makes the wrapper (not the window) the scroll box of the sticky header, so the header scrolled away. clip cuts the same sideways
   overflow without making a scroll box; a browser without clip keeps hidden (as before) */
div.flex.flex-col.min-h-screen.overflow-x-hidden{overflow-x:hidden;overflow-x:clip}
header[data-dgj-header]{transition:transform .22s ease,box-shadow .22s ease}
header[data-dgj-header].dgj-hdr-up{box-shadow:0 4px 14px rgba(15,23,42,.08)}
.dark header[data-dgj-header].dgj-hdr-up{box-shadow:0 4px 16px rgba(0,0,0,.45)}
header[data-dgj-header].dgj-hdr-hide{transform:translateY(-100%)}
@media (prefers-reduced-motion:reduce){header[data-dgj-header]{transition:none}}
/* DGJ_APPLYBAR_V1: mobile apply bar of the job page (phones and small tablets) */
#dgj-applybar{position:fixed;left:0;right:0;bottom:0;z-index:38;display:flex;align-items:center;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:hsl(var(--background));border-top:1px solid hsl(var(--border));box-shadow:0 -4px 14px rgba(15,23,42,.08)}
.dark #dgj-applybar{box-shadow:0 -4px 16px rgba(0,0,0,.45)}
#dgj-applybar[hidden]{display:none}
#dgj-applybar .dgj-ab-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;font-weight:600;color:hsl(var(--foreground))}
#dgj-applybar .dgj-ab-btn{width:auto!important;flex:none;padding-left:18px;padding-right:18px}
/* the same dark colour as the page's external Apply button (dgj-dark-v2), only when the bar copies that button */
html.dark #dgj-applybar .dgj-ab-btn[data-dgj-ab-src="button-apply-external"]{background:rgb(60,131,246)!important;border-color:rgb(60,131,246)!important;color:#fff!important}
@media (min-width:1024px){#dgj-applybar{display:none!important}}
/* DGJ_SEARCHCARD_V1 (e35, owner order 4 Oct 2026): the home search card (tabs Find jobs / Ask CSI, chips, question box). Only the site's own
   theme colours (CSS variables), so light and dark follow the theme; Tailwind classes that the fixed site build lacks are written here */
.dgj-sc-tab{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;margin-bottom:-1px;font-size:.875rem;font-weight:600;line-height:1.25rem;color:hsl(var(--muted-foreground));background:transparent;border:0;border-bottom:2px solid transparent;border-radius:.375rem .375rem 0 0;cursor:pointer}
.dgj-sc-tab:hover{color:hsl(var(--foreground))}
.dgj-sc-tab[aria-selected="true"]{color:hsl(var(--foreground));border-bottom-color:hsl(var(--primary))}
.dgj-sc-tab:focus-visible,.dgj-sc-ic:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}
/* the "New" pill and the pressed chips keep text contrast of 4.5:1 or more in light and dark (WCAG AA; checked by searchcard-test.cjs) */
.dgj-sc-new{font-size:10px;font-weight:600;line-height:1;padding:3px 6px;border-radius:999px;background:hsl(var(--primary));color:hsl(var(--primary-foreground))}
html.dgj-ask-first #dgj-panel-jobs{display:none}
html.dgj-ask-first #dgj-panel-csi[hidden]{display:block}
html.dgj-ask-first #dgj-tab-csi{color:hsl(var(--foreground));border-bottom-color:hsl(var(--primary))}
html.dgj-ask-first #dgj-tab-jobs{color:hsl(var(--muted-foreground));border-bottom-color:transparent}
.dgj-sc-chip[aria-pressed="true"]{background:hsl(var(--primary) / .1);border-color:hsl(var(--primary));color:hsl(var(--foreground))}
.dgj-sc-chip,[data-dgj-csi-sample]{border-radius:9999px}
.dgj-sc-ask{padding-right:.375rem}
.dgj-sc-ask:focus-within{border-color:hsl(var(--primary))}
.dgj-sc-q{border:0;outline:0;box-shadow:none;padding:0;color:hsl(var(--foreground))}
.dgj-sc-ic{flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:999px;background:transparent;color:hsl(var(--muted-foreground));cursor:pointer}
.dgj-sc-ic:hover{color:hsl(var(--primary));background:hsl(var(--primary) / .08)}
.dgj-sc-send,.dgj-sc-send:hover{color:hsl(var(--primary-foreground));background:hsl(var(--primary))}
.dgj-sc-foot{column-gap:1.25rem}
@media (min-width:640px){.dgj-sc-loc{max-width:260px}}
.dgj-tile{background:hsl(var(--primary) / .08)}
.dark .dgj-tile{background:hsl(var(--primary) / .15)}
html.dgj-sc-visible #dgjcsi-launch{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s}
html.dark .dgj-dark-fab{background:#0f1729!important;border:1px solid #334155!important;color:#e2e8f0!important;box-shadow:0 8px 22px -8px rgba(0,0,0,.7)!important}
/* the review button keeps the primary button text colour (the a11y part forces the foreground colour on every Trustpilot link, !important) */
[data-testid="dgj-review-card"] a[data-testid="link-write-review"],[data-testid="dgj-review-card"] a[data-testid="link-write-review"] *{color:hsl(var(--primary-foreground))!important}
/* DGJ_JOBPAGE_LAYOUT_V2 (owner order 10 Oct 2026, after the jp1 layout bugs on live): the job page grid has three parts (dgj-ssr/job.cjs):
   top (job card, description), side (Apply, alert, overview, listing) and rest (Similar, CSI questions, review). On a desktop top and rest form
   the main column (rows 1 and 2) and the side spans both rows, so the main column never ends far above the sidebar; on a phone the DOM order
   stands (top, side, rest). The second row is flexible, so a tall side never pushes rest away from top. */
@media (min-width:1024px){.dgj-jp-grid{grid-template-rows:auto 1fr;align-items:start}.dgj-jp-top{grid-column:1 / span 2;grid-row:1}.dgj-jp-rest{grid-column:1 / span 2;grid-row:2}.dgj-jp-side{grid-column:3;grid-row:1 / span 2}}
/* the review link of the job page has no round icon, so the three-column grid of growth-suite.css (34px icon, text, arrow) put its text into
   the 34 px column, one word per line: two columns here (text, arrow) */
.dgj-job-support-review .dgj-job-support-action{grid-template-columns:minmax(0,1fr) auto}
/* DGJ_HEADER_MENUS_V1 (owner order 13 Oct 2026): the cursor crosses the 8 px gap between a header menu button and its panel over an invisible
   bridge (the root cause of the closing submenus: the gap belonged to neither, so the menu closed before the cursor arrived); the long lists
   scroll inside the panel with the same height rule as the Countries list; nothing visible changes */
header nav>div.relative>div.absolute.top-full::before{content:"";position:absolute;left:0;right:0;top:-.5rem;height:.5rem}
header nav>div.relative>div.absolute.top-full .dgj-menu-scroll{max-height:min(60vh,540px);overflow-y:auto;overscroll-behavior:contain}
/* DGJ_FILTERS_V1 (e35c, owner order 4 Oct 2026): the one filter bar of the job lists, its panels, the phone filter panel, the chips, the place
   type-ahead and the home "Find jobs your way" picker. Only the site's theme variables (light and dark follow the theme); the buttons, inputs and
   cards keep the site's own classes. Tailwind classes that the fixed site build lacks are written here. Review e35c (WCAG AA 4.5:1 in dark mode): an
   active filter button, a pressed picker chip and the open e-mail button write their text in the foreground colour on the light primary tint (as the
   pressed chips of the e35a search card do). */
.dgj-fb-top{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
.dgj-fb-q{flex:1 1 220px;min-width:200px}
.dgj-fb-loc{flex:1 1 180px;min-width:160px}
@media (min-width:768px){.dgj-fb-loc{flex:0 1 240px}}
.dgj-fb-row{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem}
.dgj-fb-n{display:inline-flex;align-items:center;justify-content:center;min-width:1.125rem;height:1.125rem;padding:0 .3rem;margin-left:.375rem;border-radius:9999px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:10px;font-weight:600;line-height:1}
.dgj-fb-c{margin-left:.375rem;color:hsl(var(--muted-foreground));font-weight:500;font-variant-numeric:tabular-nums}
.dgj-fb-row .dgj-fb-pill.dgj-on{background:hsl(var(--primary) / .1);border-color:hsl(var(--primary));color:hsl(var(--foreground))}
.dgj-fb-row .dgj-fb-pill.dgj-on .dgj-fb-c{color:hsl(var(--foreground))}
.dgj-fb-row .dgj-fb-mob{display:none}
@media (max-width:767px){.dgj-fb-row .dgj-fb-pill{display:none}.dgj-fb-row .dgj-fb-mob{display:inline-flex}}
.dgj-fb-pop{position:absolute;z-index:45;width:18rem;max-width:calc(100vw - 2rem);display:flex;flex-direction:column;max-height:26rem;background:hsl(var(--popover));color:hsl(var(--popover-foreground));border:1px solid hsl(var(--popover-border));border-radius:.625rem;box-shadow:var(--shadow-xl)}
.dgj-fb-pop fieldset,.dgj-fb-sheet fieldset{border:0;margin:0;padding:0;min-width:0}
.dgj-fb-legend{display:block;width:100%;padding:.75rem .875rem .25rem;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:hsl(var(--muted-foreground))}
.dgj-fb-opts{overflow-y:auto;max-height:18rem;padding:.25rem .375rem .5rem}
.dgj-fb-opt{display:flex;align-items:center;gap:.625rem;padding:.5rem;border-radius:.375rem;font-size:.875rem;line-height:1.25rem;cursor:pointer;color:hsl(var(--foreground))}
.dgj-fb-opt:hover{background:hsl(var(--accent))}
.dgj-fb-opt:focus-within{outline:2px solid hsl(var(--ring));outline-offset:-2px}
.dgj-fb-opt input{flex:none;width:1rem;height:1rem;margin:0;accent-color:hsl(var(--primary))}
.dgj-fb-ol{flex:1;min-width:0}
.dgj-fb-oc{color:hsl(var(--muted-foreground));font-size:.75rem;font-variant-numeric:tabular-nums}
.dgj-fb-foot{display:flex;justify-content:flex-end;gap:.5rem;padding:.625rem .75rem;border-top:1px solid hsl(var(--border))}
.dgj-fb-foot [aria-busy="true"]{opacity:.7}
.dgj-fb-back{position:fixed;inset:0;z-index:70;background:rgba(15,23,42,.45)}
.dgj-fb-sheet{position:fixed;left:0;right:0;bottom:0;z-index:71;display:flex;flex-direction:column;max-height:85vh;background:hsl(var(--card));color:hsl(var(--card-foreground));border-top:1px solid hsl(var(--card-border));border-radius:1rem 1rem 0 0;box-shadow:var(--shadow-2xl);padding-bottom:env(safe-area-inset-bottom,0px)}
.dgj-fb-sh{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;border-bottom:1px solid hsl(var(--border))}
.dgj-fb-sh h2{font-size:1rem;line-height:1.5rem;font-weight:700;margin:0}
.dgj-fb-sb{flex:1;overflow-y:auto;padding:.25rem .5rem 1rem}
.dgj-fb-sg+.dgj-fb-sg{border-top:1px solid hsl(var(--border));margin-top:.25rem}
.dgj-fb-sheet .dgj-fb-foot{padding:.75rem 1rem}
.dgj-fb-sheet .dgj-fb-foot>*{flex:1}
html.dgj-fb-lock{overflow:hidden}
.dgj-fb-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem}
.dgj-fb-chip{gap:.25rem;padding:.25rem .25rem .25rem .75rem;font-weight:500}
.dgj-fb-x{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border:0;border-radius:9999px;background:transparent;color:hsl(var(--muted-foreground));cursor:pointer}
.dgj-fb-x:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}
.dgj-fb-x:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}
.dgj-fb-close{width:2.25rem;height:2.25rem}
.dgj-ta{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:46;margin:0;padding:.25rem;list-style:none;max-height:18rem;overflow-y:auto;background:hsl(var(--popover));color:hsl(var(--popover-foreground));border:1px solid hsl(var(--popover-border));border-radius:.5rem;box-shadow:var(--shadow-lg);text-align:left}
.dgj-ta[hidden]{display:none}
.dgj-ta li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .625rem;border-radius:.375rem;font-size:.875rem;cursor:pointer}
.dgj-ta li[aria-selected="true"],.dgj-ta li:hover{background:hsl(var(--accent))}
.dgj-ta small{color:hsl(var(--muted-foreground));font-size:.75rem}
.dgj-pick-chip{border-radius:9999px}
.dgj-pick-chip[aria-pressed="true"]{background:hsl(var(--primary) / .1);border-color:hsl(var(--primary));color:hsl(var(--foreground))}
.dgj-pick-mail{border-color:hsl(var(--primary));color:hsl(var(--primary))}
.dgj-pick-mail[aria-expanded="true"]{background:hsl(var(--primary) / .08);color:hsl(var(--foreground))}
@media (prefers-reduced-motion:reduce){.dgj-fb-pop,.dgj-fb-sheet{transition:none}}
/* DGJ_EN_HDRFIT_V1 (fx2, E214, owner order 752, 21 Oct 2026): from 1024 to 1107 px the English header row needs 1044 px of its 960 to 1043 px, so the light/dark and colour buttons ran past the window; there the compact header (the menu button and its panel, as below 1024 px) replaces the desktop nav; language pages already use it there (DGJ_LANG_HDRFIT_V1) */
@media (min-width:1024px) and (max-width:1107.98px){header[data-dgj-header] nav.lg\:flex{display:none}header[data-dgj-header] [data-testid="button-mobile-menu"]{display:inline-flex}}
